diff --git a/app.js b/app.js index a32788a..855eb4a 100644 --- a/app.js +++ b/app.js @@ -1,13 +1,19 @@ const fastify = require('fastify'); const fastifySwagger = require('@fastify/swagger'); -const routes = require('./routes'); +const cors = require('@fastify/cors'); const swaggerDoc = require('./swagger'); +const routes = require('./routes'); function build(opts = {}) { const app = fastify(opts); - app.register(routes); + app.register(cors, { + origin: '*', + methods: ['GET', 'POST'], + allowedHeaders: ['Content-Type'], + }); app.register(fastifySwagger, swaggerDoc); + app.register(routes); return app; } diff --git a/package-lock.json b/package-lock.json index c8b2c68..eb52c47 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,8 @@ "license": "CeCILL", "dependencies": { "@elastic/elasticsearch": "^7.15.0", - "@fastify/swagger": "^6.0.0", + "@fastify/cors": "^7.0.0", + "@fastify/swagger": "^6.0.1", "config": "^3.3.7", "fastify": "^3.28.0", "fs-extra": "^10.1.0", @@ -674,13 +675,50 @@ "ajv": "^6.12.6" } }, - "node_modules/@fastify/swagger": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@fastify/swagger/-/swagger-6.0.0.tgz", - "integrity": "sha512-t8Bjxf3zY3B6YwASah/pUS4Xbq+Wa5Ol4ho0Y5HhQRR/fHPlF4xDxPExXVoT9rn7/NzjCwFkVo79kKUpds8hwA==", + "node_modules/@fastify/cors": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@fastify/cors/-/cors-7.0.0.tgz", + "integrity": "sha512-nlo6ScwagBNJacAZD3KX90xjWLIoV0vN9QqoX1wUE9ZeZMdvkVkMZCGlxEtr00NshV0X5wDge4w5rwox7rRzSg==", "dependencies": { "fastify-plugin": "^3.0.0", - "fastify-static": "^4.0.0", + "vary": "^1.1.2" + } + }, + "node_modules/@fastify/static": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@fastify/static/-/static-5.0.2.tgz", + "integrity": "sha512-HvyXZ5a7hUHoSBRq9jKUuKIUCkHMkCDcmiAeEmixXlGOx8pEWx3NYOIaiivcjWa6/NLvfdUT+t/jzfVQ2PA7Gw==", + "dependencies": { + "content-disposition": "^0.5.3", + "encoding-negotiator": "^2.0.1", + "fastify-plugin": "^3.0.0", + "glob": "^7.1.4", + "p-limit": "^3.1.0", + "readable-stream": "^3.4.0", + "send": "^0.17.1" + } + }, + "node_modules/@fastify/static/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@fastify/swagger": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@fastify/swagger/-/swagger-6.0.1.tgz", + "integrity": "sha512-6STMY44AA3Ks7/CYRSh3ocZCVUAHMO/ochtLkP1R7i0XMjpdKFpAEwdGffocjfeD0BRglC36Y22qLHw+YKMCtg==", + "dependencies": { + "@fastify/static": "^5.0.0", + "fastify-plugin": "^3.0.0", "js-yaml": "^4.0.0", "json-schema-resolver": "^1.3.0", "openapi-types": "^10.0.0", @@ -3245,34 +3283,6 @@ "resolved": "https://registry.npmjs.org/fastify-plugin/-/fastify-plugin-3.0.1.tgz", "integrity": "sha512-qKcDXmuZadJqdTm6vlCqioEbyewF60b/0LOFCcYN1B6BIZGlYJumWWOYs70SFYLDAH4YqdE1cxH/RKMG7rFxgA==" }, - "node_modules/fastify-static": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/fastify-static/-/fastify-static-4.6.1.tgz", - "integrity": "sha512-vy7N28U4AMhuOim12ZZWHulEE6OQKtzZbHgiB8Zj4llUuUQXPka0WHAQI3njm1jTCx4W6fixUHfpITxweMtAIA==", - "dependencies": { - "content-disposition": "^0.5.3", - "encoding-negotiator": "^2.0.1", - "fastify-plugin": "^3.0.0", - "glob": "^7.1.4", - "p-limit": "^3.1.0", - "readable-stream": "^3.4.0", - "send": "^0.17.1" - } - }, - "node_modules/fastify-static/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/fastify/node_modules/semver": { "version": "7.3.7", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", @@ -7147,6 +7157,14 @@ "node": ">= 8" } }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/w3c-hr-time": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", @@ -7896,13 +7914,46 @@ "ajv": "^6.12.6" } }, - "@fastify/swagger": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@fastify/swagger/-/swagger-6.0.0.tgz", - "integrity": "sha512-t8Bjxf3zY3B6YwASah/pUS4Xbq+Wa5Ol4ho0Y5HhQRR/fHPlF4xDxPExXVoT9rn7/NzjCwFkVo79kKUpds8hwA==", + "@fastify/cors": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@fastify/cors/-/cors-7.0.0.tgz", + "integrity": "sha512-nlo6ScwagBNJacAZD3KX90xjWLIoV0vN9QqoX1wUE9ZeZMdvkVkMZCGlxEtr00NshV0X5wDge4w5rwox7rRzSg==", "requires": { "fastify-plugin": "^3.0.0", - "fastify-static": "^4.0.0", + "vary": "^1.1.2" + } + }, + "@fastify/static": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@fastify/static/-/static-5.0.2.tgz", + "integrity": "sha512-HvyXZ5a7hUHoSBRq9jKUuKIUCkHMkCDcmiAeEmixXlGOx8pEWx3NYOIaiivcjWa6/NLvfdUT+t/jzfVQ2PA7Gw==", + "requires": { + "content-disposition": "^0.5.3", + "encoding-negotiator": "^2.0.1", + "fastify-plugin": "^3.0.0", + "glob": "^7.1.4", + "p-limit": "^3.1.0", + "readable-stream": "^3.4.0", + "send": "^0.17.1" + }, + "dependencies": { + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "requires": { + "yocto-queue": "^0.1.0" + } + } + } + }, + "@fastify/swagger": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@fastify/swagger/-/swagger-6.0.1.tgz", + "integrity": "sha512-6STMY44AA3Ks7/CYRSh3ocZCVUAHMO/ochtLkP1R7i0XMjpdKFpAEwdGffocjfeD0BRglC36Y22qLHw+YKMCtg==", + "requires": { + "@fastify/static": "^5.0.0", + "fastify-plugin": "^3.0.0", "js-yaml": "^4.0.0", "json-schema-resolver": "^1.3.0", "openapi-types": "^10.0.0", @@ -9893,30 +9944,6 @@ "resolved": "https://registry.npmjs.org/fastify-plugin/-/fastify-plugin-3.0.1.tgz", "integrity": "sha512-qKcDXmuZadJqdTm6vlCqioEbyewF60b/0LOFCcYN1B6BIZGlYJumWWOYs70SFYLDAH4YqdE1cxH/RKMG7rFxgA==" }, - "fastify-static": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/fastify-static/-/fastify-static-4.6.1.tgz", - "integrity": "sha512-vy7N28U4AMhuOim12ZZWHulEE6OQKtzZbHgiB8Zj4llUuUQXPka0WHAQI3njm1jTCx4W6fixUHfpITxweMtAIA==", - "requires": { - "content-disposition": "^0.5.3", - "encoding-negotiator": "^2.0.1", - "fastify-plugin": "^3.0.0", - "glob": "^7.1.4", - "p-limit": "^3.1.0", - "readable-stream": "^3.4.0", - "send": "^0.17.1" - }, - "dependencies": { - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "requires": { - "yocto-queue": "^0.1.0" - } - } - } - }, "fastq": { "version": "1.13.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", @@ -12846,6 +12873,11 @@ } } }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + }, "w3c-hr-time": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", diff --git a/package.json b/package.json index ddb0c2e..8ddf4d6 100644 --- a/package.json +++ b/package.json @@ -35,6 +35,7 @@ }, "dependencies": { "@elastic/elasticsearch": "^7.15.0", + "@fastify/cors": "^7.0.0", "@fastify/swagger": "^6.0.0", "config": "^3.3.7", "fastify": "^3.28.0",