6 Commits

9 changed files with 1019 additions and 1105 deletions

View File

@ -10,7 +10,7 @@ jobs:
build: build:
runs-on: 'ubuntu-latest' runs-on: 'ubuntu-latest'
steps: steps:
- uses: 'actions/checkout@v3.5.2' - uses: 'actions/checkout@v3.5.3'
- name: 'Setup Node.js' - name: 'Setup Node.js'
uses: 'actions/setup-node@v3.6.0' uses: 'actions/setup-node@v3.6.0'

View File

@ -10,7 +10,7 @@ jobs:
lint: lint:
runs-on: 'ubuntu-latest' runs-on: 'ubuntu-latest'
steps: steps:
- uses: 'actions/checkout@v3.5.2' - uses: 'actions/checkout@v3.5.3'
- name: 'Setup Node.js' - name: 'Setup Node.js'
uses: 'actions/setup-node@v3.6.0' uses: 'actions/setup-node@v3.6.0'

View File

@ -8,7 +8,7 @@ jobs:
release: release:
runs-on: 'ubuntu-latest' runs-on: 'ubuntu-latest'
steps: steps:
- uses: 'actions/checkout@v3.5.2' - uses: 'actions/checkout@v3.5.3'
with: with:
fetch-depth: 0 fetch-depth: 0
persist-credentials: false persist-credentials: false

1
.swcrc
View File

@ -1,4 +1,5 @@
{ {
"sourceMaps": true,
"jsc": { "jsc": {
"parser": { "parser": {
"syntax": "typescript", "syntax": "typescript",

View File

@ -60,7 +60,7 @@ representative at an online or offline event.
Instances of abusive, harassing, or otherwise unacceptable behavior may be Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at reported to the community leaders responsible for enforcement at
<contact@divlo.fr>. <contact@theoludwig.fr>.
All complaints will be reviewed and investigated promptly and fairly. All complaints will be reviewed and investigated promptly and fairly.
All community leaders are obligated to respect the privacy and security of the All community leaders are obligated to respect the privacy and security of the

View File

@ -27,7 +27,7 @@ Thream's application programming interface (API) to upload files.
```sh ```sh
# Clone the repository # Clone the repository
git clone https://github.com/Thream/file-uploads-api.git git clone git@github.com:Thream/file-uploads-api.git
# Go to the project root # Go to the project root
cd file-uploads-api cd file-uploads-api
@ -50,7 +50,7 @@ npm run dev
#### Services started #### Services started
- `file-uploads-api`: <http://localhost:8000> - `file-uploads-api`: <http://127.0.0.1:8000>
## 💡 Contributing ## 💡 Contributing

2048
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
{ {
"name": "@thream/file-uploads-api", "name": "@thream/file-uploads-api",
"version": "1.1.4", "version": "1.1.5",
"description": "Thream's application programming interface to upload files.", "description": "Thream's application programming interface to upload files.",
"private": true, "private": true,
"type": "module", "type": "module",
@ -16,63 +16,62 @@
"build": "rimraf ./build && swc ./src --out-dir ./build", "build": "rimraf ./build && swc ./src --out-dir ./build",
"build:dev": "swc ./src --out-dir ./build --watch", "build:dev": "swc ./src --out-dir ./build --watch",
"build:typescript": "tsc", "build:typescript": "tsc",
"start": "node build/index.js", "start": "node --enable-source-maps build/index.js",
"dev": "concurrently -k -n \"TypeScript,Node\" -p \"[{name}]\" -c \"blue,green\" \"npm run build:dev\" \"cross-env NODE_ENV=development nodemon build/index.js\"", "dev": "concurrently -k -n \"TypeScript,Node\" -p \"[{name}]\" -c \"blue,green\" \"npm run build:dev\" \"cross-env NODE_ENV=development node --watch --enable-source-maps build/index.js\"",
"lint:commit": "commitlint", "lint:commit": "commitlint",
"lint:editorconfig": "editorconfig-checker", "lint:editorconfig": "editorconfig-checker",
"lint:markdown": "markdownlint-cli2", "lint:markdown": "markdownlint-cli2",
"lint:eslint": "eslint \".\" --ignore-path \".gitignore\"", "lint:eslint": "eslint . --ignore-path .gitignore",
"lint:prettier": "prettier \".\" --check --ignore-path \".gitignore\"", "lint:prettier": "prettier . --check --ignore-path .gitignore",
"lint:staged": "lint-staged", "lint:staged": "lint-staged",
"release": "semantic-release", "release": "semantic-release",
"postinstall": "husky install" "postinstall": "husky install"
}, },
"dependencies": { "dependencies": {
"@fastify/cors": "8.2.1", "@fastify/cors": "8.3.0",
"@fastify/helmet": "10.1.1", "@fastify/helmet": "11.0.0",
"@fastify/multipart": "7.6.0", "@fastify/multipart": "7.7.0",
"@fastify/rate-limit": "8.0.0", "@fastify/rate-limit": "8.0.1",
"@fastify/sensible": "5.2.0", "@fastify/sensible": "5.2.0",
"@fastify/static": "6.10.1", "@fastify/static": "6.10.2",
"@fastify/swagger": "8.3.1", "@fastify/swagger": "8.6.0",
"@fastify/swagger-ui": "1.8.1", "@fastify/swagger-ui": "1.9.2",
"@sinclair/typebox": "0.28.10", "@sinclair/typebox": "0.29.0",
"dotenv": "16.0.3", "dotenv": "16.3.1",
"fastify": "4.17.0", "fastify": "4.19.1",
"fastify-plugin": "4.5.0", "fastify-plugin": "4.5.0",
"http-errors": "2.0.0", "http-errors": "2.0.0",
"read-pkg": "8.0.0" "read-pkg": "8.0.0"
}, },
"devDependencies": { "devDependencies": {
"@commitlint/cli": "17.6.3", "@commitlint/cli": "17.6.6",
"@commitlint/config-conventional": "17.6.3", "@commitlint/config-conventional": "17.6.6",
"@saithodev/semantic-release-backmerge": "3.2.0", "@saithodev/semantic-release-backmerge": "3.2.0",
"@semantic-release/git": "10.0.1", "@semantic-release/git": "10.0.1",
"@swc/cli": "0.1.62", "@swc/cli": "0.1.62",
"@swc/core": "1.3.57", "@swc/core": "1.3.67",
"@tsconfig/strictest": "2.0.1", "@tsconfig/strictest": "2.0.1",
"@types/busboy": "1.5.0", "@types/busboy": "1.5.0",
"@types/http-errors": "2.0.1", "@types/http-errors": "2.0.1",
"@types/node": "20.1.4", "@types/node": "20.3.3",
"@typescript-eslint/eslint-plugin": "5.59.5", "@typescript-eslint/eslint-plugin": "5.60.1",
"concurrently": "8.0.1", "concurrently": "8.2.0",
"cross-env": "7.0.3", "cross-env": "7.0.3",
"editorconfig-checker": "5.0.1", "editorconfig-checker": "5.1.1",
"eslint": "8.40.0", "eslint": "8.44.0",
"eslint-config-conventions": "9.0.0", "eslint-config-conventions": "10.0.0",
"eslint-config-prettier": "8.8.0", "eslint-config-prettier": "8.8.0",
"eslint-plugin-import": "2.27.5", "eslint-plugin-import": "2.27.5",
"eslint-plugin-prettier": "4.2.1", "eslint-plugin-prettier": "4.2.1",
"eslint-plugin-promise": "6.1.1", "eslint-plugin-promise": "6.1.1",
"eslint-plugin-unicorn": "47.0.0", "eslint-plugin-unicorn": "47.0.0",
"husky": "8.0.3", "husky": "8.0.3",
"lint-staged": "13.2.2", "lint-staged": "13.2.3",
"markdownlint-cli2": "0.7.1", "markdownlint-cli2": "0.8.1",
"markdownlint-rule-relative-links": "1.2.0", "markdownlint-rule-relative-links": "2.1.0",
"nodemon": "2.0.22",
"prettier": "2.8.8", "prettier": "2.8.8",
"rimraf": "5.0.0", "rimraf": "5.0.1",
"semantic-release": "21.0.2", "semantic-release": "21.0.6",
"typescript": "5.0.4" "typescript": "5.0.4"
} }
} }

View File

@ -13,8 +13,8 @@ declare module 'fastify' {
export default fastifyPlugin( export default fastifyPlugin(
async (fastify) => { async (fastify) => {
await fastify.decorateRequest('apiKey', null) fastify.decorateRequest('apiKey', undefined)
await fastify.addHook('onRequest', async (request) => { fastify.addHook('onRequest', async (request) => {
const apiKey = request.headers['x-api-key'] const apiKey = request.headers['x-api-key']
if (apiKey == null || typeof apiKey !== 'string') { if (apiKey == null || typeof apiKey !== 'string') {
throw new Unauthorized() throw new Unauthorized()