@volcanicminds/backend 0.5.1 → 0.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +27 -27
- package/dist/index.js.map +1 -1
- package/dist/package.json +21 -21
- package/index.ts +29 -29
- package/package.json +21 -21
package/dist/index.js
CHANGED
|
@@ -64,38 +64,38 @@ const context_1 = require("./lib/apollo/context");
|
|
|
64
64
|
const resolvers_1 = __importDefault(require("./lib/apollo/resolvers"));
|
|
65
65
|
const type_defs_1 = __importDefault(require("./lib/apollo/type-defs"));
|
|
66
66
|
global.log = logger_1.default;
|
|
67
|
-
function attachApollo(
|
|
67
|
+
function attachApollo(server) {
|
|
68
68
|
return __awaiter(this, void 0, void 0, function* () {
|
|
69
69
|
log.info('Attach ApolloServer to Fastify');
|
|
70
70
|
const apollo = new server_1.ApolloServer({
|
|
71
71
|
typeDefs: type_defs_1.default,
|
|
72
72
|
resolvers: resolvers_1.default,
|
|
73
|
-
plugins: [(0, fastify_2.fastifyApolloDrainPlugin)(
|
|
73
|
+
plugins: [(0, fastify_2.fastifyApolloDrainPlugin)(server)]
|
|
74
74
|
});
|
|
75
75
|
yield apollo.start();
|
|
76
76
|
return apollo;
|
|
77
77
|
});
|
|
78
78
|
}
|
|
79
|
-
function addApolloRouting(
|
|
79
|
+
function addApolloRouting(server, apollo) {
|
|
80
80
|
return __awaiter(this, void 0, void 0, function* () {
|
|
81
81
|
if (apollo) {
|
|
82
82
|
log.trace('Add graphql routes');
|
|
83
|
-
yield
|
|
83
|
+
yield server.register((0, fastify_2.default)(apollo), {
|
|
84
84
|
context: context_1.myContextFunction
|
|
85
85
|
});
|
|
86
86
|
}
|
|
87
87
|
});
|
|
88
88
|
}
|
|
89
|
-
function addFastifyRouting(
|
|
89
|
+
function addFastifyRouting(server) {
|
|
90
90
|
return __awaiter(this, void 0, void 0, function* () {
|
|
91
|
-
log.trace('Add
|
|
92
|
-
loaderHooks.apply(
|
|
93
|
-
loaderSchemas.apply(
|
|
91
|
+
log.trace('Add server routes');
|
|
92
|
+
loaderHooks.apply(server);
|
|
93
|
+
loaderSchemas.apply(server);
|
|
94
94
|
const routes = loaderRouter.load();
|
|
95
|
-
routes && loaderRouter.apply(
|
|
95
|
+
routes && loaderRouter.apply(server, routes);
|
|
96
96
|
});
|
|
97
97
|
}
|
|
98
|
-
function addFastifySwagger(
|
|
98
|
+
function addFastifySwagger(server) {
|
|
99
99
|
return __awaiter(this, void 0, void 0, function* () {
|
|
100
100
|
const { SWAGGER, SWAGGER_TITLE, SWAGGER_DESCRIPTION, SWAGGER_VERSION, SWAGGER_PREFIX_URL, SWAGGER_HOST } = process.env;
|
|
101
101
|
const loadSwagger = (0, yn_1.default)(SWAGGER, false);
|
|
@@ -103,7 +103,7 @@ function addFastifySwagger(fastify) {
|
|
|
103
103
|
log.trace('Add swagger plugin');
|
|
104
104
|
const fs = require('fs');
|
|
105
105
|
const contents = fs.readFileSync('logo-dark.png', { encoding: 'base64' });
|
|
106
|
-
yield
|
|
106
|
+
yield server.register(swagger_1.default, {
|
|
107
107
|
swagger: {
|
|
108
108
|
info: {
|
|
109
109
|
title: SWAGGER_TITLE || 'Volcanic API Documentation',
|
|
@@ -136,7 +136,7 @@ function addFastifySwagger(fastify) {
|
|
|
136
136
|
}
|
|
137
137
|
}
|
|
138
138
|
});
|
|
139
|
-
yield
|
|
139
|
+
yield server.register(swagger_ui_1.default, {
|
|
140
140
|
routePrefix: SWAGGER_PREFIX_URL || '/documentation',
|
|
141
141
|
uiConfig: {
|
|
142
142
|
docExpansion: 'list',
|
|
@@ -160,32 +160,32 @@ const start = (decorators) => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
160
160
|
global.roles = loaderRoles.load();
|
|
161
161
|
global.t = loaderTranslation.load();
|
|
162
162
|
const opts = (0, yn_1.default)(process.env.LOG_FASTIFY, false) ? { logger: logger_1.default } : {};
|
|
163
|
-
const
|
|
163
|
+
const server = (0, fastify_1.default)();
|
|
164
164
|
const { HOST: host = '0.0.0.0', PORT: port = '2230', GRAPHQL } = process.env;
|
|
165
165
|
const { JWT_SECRET = '', JWT_EXPIRES_IN = '15d', JWT_REFRESH = 'true', JWT_REFRESH_SECRET = '', JWT_REFRESH_EXPIRES_IN = '180d' } = process.env;
|
|
166
166
|
const loadRefreshJWT = (0, yn_1.default)(JWT_REFRESH, true);
|
|
167
167
|
const loadApollo = (0, yn_1.default)(GRAPHQL, false);
|
|
168
168
|
const plugins = loaderPlugins.load();
|
|
169
|
-
!loadApollo && (plugins === null || plugins === void 0 ? void 0 : plugins.helmet) && (yield
|
|
170
|
-
(plugins === null || plugins === void 0 ? void 0 : plugins.rateLimit) && (yield
|
|
171
|
-
(plugins === null || plugins === void 0 ? void 0 : plugins.cors) && (yield
|
|
172
|
-
(plugins === null || plugins === void 0 ? void 0 : plugins.compress) && (yield
|
|
169
|
+
!loadApollo && (plugins === null || plugins === void 0 ? void 0 : plugins.helmet) && (yield server.register(helmet_1.default));
|
|
170
|
+
(plugins === null || plugins === void 0 ? void 0 : plugins.rateLimit) && (yield server.register(rate_limit_1.default));
|
|
171
|
+
(plugins === null || plugins === void 0 ? void 0 : plugins.cors) && (yield server.register(cors_1.default, plugins.cors || {}));
|
|
172
|
+
(plugins === null || plugins === void 0 ? void 0 : plugins.compress) && (yield server.register(compress_1.default));
|
|
173
173
|
log.t && log.trace(`Add JWT - expiresIn: ${JWT_EXPIRES_IN}`);
|
|
174
|
-
yield
|
|
174
|
+
yield server.register(jwt_1.default, {
|
|
175
175
|
secret: JWT_SECRET,
|
|
176
176
|
sign: { expiresIn: JWT_EXPIRES_IN }
|
|
177
177
|
});
|
|
178
178
|
if (loadRefreshJWT) {
|
|
179
|
-
yield
|
|
179
|
+
yield server.register(jwt_1.default, {
|
|
180
180
|
namespace: 'refreshToken',
|
|
181
181
|
secret: JWT_REFRESH_SECRET || JWT_SECRET,
|
|
182
182
|
sign: { expiresIn: JWT_REFRESH_EXPIRES_IN }
|
|
183
183
|
});
|
|
184
184
|
}
|
|
185
|
-
const apollo = loadApollo ? yield attachApollo(
|
|
186
|
-
yield addFastifySwagger(
|
|
187
|
-
yield addApolloRouting(
|
|
188
|
-
yield addFastifyRouting(
|
|
185
|
+
const apollo = loadApollo ? yield attachApollo(server) : null;
|
|
186
|
+
yield addFastifySwagger(server);
|
|
187
|
+
yield addApolloRouting(server, apollo);
|
|
188
|
+
yield addFastifyRouting(server);
|
|
189
189
|
decorators = Object.assign({ userManager: {
|
|
190
190
|
isImplemented() {
|
|
191
191
|
return false;
|
|
@@ -293,9 +293,9 @@ const start = (decorators) => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
293
293
|
}
|
|
294
294
|
} }, decorators);
|
|
295
295
|
yield Promise.all(Object.keys(decorators || {}).map((key) => __awaiter(void 0, void 0, void 0, function* () {
|
|
296
|
-
yield
|
|
296
|
+
yield server.decorate(key, decorators[key]);
|
|
297
297
|
})));
|
|
298
|
-
yield
|
|
298
|
+
yield server
|
|
299
299
|
.listen({
|
|
300
300
|
port: Number(port),
|
|
301
301
|
host: host
|
|
@@ -307,8 +307,8 @@ const start = (decorators) => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
307
307
|
const loadSwagger = (0, yn_1.default)(process.env.SWAGGER, false);
|
|
308
308
|
loadSwagger && log.info(`Swagger ready ✨ at ${address}${process.env.SWAGGER_PREFIX_URL || '/documentation'}`);
|
|
309
309
|
});
|
|
310
|
-
global.server =
|
|
311
|
-
return
|
|
310
|
+
global.server = server;
|
|
311
|
+
return server;
|
|
312
312
|
});
|
|
313
313
|
exports.start = start;
|
|
314
314
|
module.exports = { yn: yn_1.default, start, TranslatedError: errors_1.TranslatedError };
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEZ,oDAA2B;AAC3B,gBAAM,CAAC,MAAM,EAAE,CAAA;AAEf,uDAA8B;AAwVrB,aAxVF,YAAE,CAwVE;AAvVX,+DAAsC;AACtC,sDAAuC;AACvC,8CAAmD;AAqV/B,gGArVX,wBAAe,OAqVW;AApVnC,oEAAqD;AACrD,gEAAiD;AACjD,kEAAmD;AACnD,gEAAiD;AACjD,oEAAqD;AACrD,4EAA6D;AAE7D,sDAAkD;AAClD,uDAAuC;AACvC,+DAAsC;AACtC,qEAA2C;AAE3C,yDAAgC;AAChC,6DAAoC;AACpC,iEAAwC;AACxC,qEAA2C;AAE3C,2CAA6C;AAC7C,oEAAkF;AAClF,kDAAmE;AACnE,uEAA8C;AAC9C,uEAA6C;AAG7C,MAAM,CAAC,GAAG,GAAG,gBAAM,CAAA;AAEnB,SAAe,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
|
package/dist/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@volcanicminds/backend",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.2",
|
|
4
4
|
"codename": "turin",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"description": "The volcanic (minds) backend",
|
|
@@ -50,36 +50,36 @@
|
|
|
50
50
|
"upgrade-deps": "yarn upgrade-interactive"
|
|
51
51
|
},
|
|
52
52
|
"dependencies": {
|
|
53
|
-
"@apollo/server": "^4.
|
|
54
|
-
"@as-integrations/fastify": "^1.2
|
|
55
|
-
"@fastify/compress": "^6.
|
|
56
|
-
"@fastify/cors": "^8.
|
|
57
|
-
"@fastify/helmet": "^10.1.
|
|
58
|
-
"@fastify/jwt": "^6.
|
|
53
|
+
"@apollo/server": "^4.9.3",
|
|
54
|
+
"@as-integrations/fastify": "^1.3.2",
|
|
55
|
+
"@fastify/compress": "^6.4.0",
|
|
56
|
+
"@fastify/cors": "^8.4.0",
|
|
57
|
+
"@fastify/helmet": "^10.1.1",
|
|
58
|
+
"@fastify/jwt": "^6.7.1",
|
|
59
59
|
"@fastify/rate-limit": "^7.6.0",
|
|
60
|
-
"@fastify/swagger": "^8.
|
|
61
|
-
"@fastify/swagger-ui": "^1.3
|
|
62
|
-
"@types/node": "^20.
|
|
63
|
-
"dotenv": "^16.
|
|
64
|
-
"fastify": "^4.
|
|
65
|
-
"glob": "^8.0
|
|
66
|
-
"graphql": "^16.
|
|
60
|
+
"@fastify/swagger": "^8.10.1",
|
|
61
|
+
"@fastify/swagger-ui": "^1.9.3",
|
|
62
|
+
"@types/node": "^20.7.0",
|
|
63
|
+
"dotenv": "^16.3.1",
|
|
64
|
+
"fastify": "^4.23.2",
|
|
65
|
+
"glob": "^8.1.0",
|
|
66
|
+
"graphql": "^16.8.1",
|
|
67
67
|
"i18n": "^0.15.1",
|
|
68
|
-
"nanoid": "^4.0.
|
|
68
|
+
"nanoid": "^4.0.2",
|
|
69
69
|
"object-sizeof": "^1.6.3",
|
|
70
|
-
"pino": "^8.
|
|
71
|
-
"pino-pretty": "^9.
|
|
70
|
+
"pino": "^8.15.1",
|
|
71
|
+
"pino-pretty": "^9.4.1",
|
|
72
72
|
"root-require": "^0.3.1",
|
|
73
|
-
"semver": "^7.
|
|
73
|
+
"semver": "^7.5.4"
|
|
74
74
|
},
|
|
75
75
|
"devDependencies": {
|
|
76
76
|
"@types/mocha": "^10.0.1",
|
|
77
77
|
"cross-env": "^7.0.3",
|
|
78
|
-
"expect": "^29.
|
|
78
|
+
"expect": "^29.7.0",
|
|
79
79
|
"mocha": "^10.2.0",
|
|
80
|
-
"nodemon": "^2.0.
|
|
80
|
+
"nodemon": "^2.0.22",
|
|
81
81
|
"ts-node": "^10.9.1",
|
|
82
|
-
"typescript": "^4.9.
|
|
82
|
+
"typescript": "^4.9.5"
|
|
83
83
|
},
|
|
84
84
|
"repository": {
|
|
85
85
|
"type": "git",
|
package/index.ts
CHANGED
|
@@ -14,7 +14,7 @@ import * as loaderHooks from './lib/loader/hooks'
|
|
|
14
14
|
import * as loaderSchemas from './lib/loader/schemas'
|
|
15
15
|
import * as loaderTranslation from './lib/loader/translation'
|
|
16
16
|
|
|
17
|
-
import
|
|
17
|
+
import fastify, { FastifyInstance } from 'fastify'
|
|
18
18
|
import jwtValidator from '@fastify/jwt'
|
|
19
19
|
import swagger from '@fastify/swagger'
|
|
20
20
|
import swaggerUI from '@fastify/swagger-ui'
|
|
@@ -33,12 +33,12 @@ import { UserManagement, TokenManagement, DataBaseManagement } from './types/glo
|
|
|
33
33
|
|
|
34
34
|
global.log = logger
|
|
35
35
|
|
|
36
|
-
async function attachApollo(
|
|
36
|
+
async function attachApollo(server: FastifyInstance) {
|
|
37
37
|
log.info('Attach ApolloServer to Fastify')
|
|
38
38
|
const apollo = new ApolloServer<MyContext>({
|
|
39
39
|
typeDefs,
|
|
40
40
|
resolvers,
|
|
41
|
-
plugins: [fastifyApolloDrainPlugin(
|
|
41
|
+
plugins: [fastifyApolloDrainPlugin(server)]
|
|
42
42
|
})
|
|
43
43
|
|
|
44
44
|
await apollo.start()
|
|
@@ -46,15 +46,15 @@ async function attachApollo(fastify: FastifyInstance) {
|
|
|
46
46
|
return apollo
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
-
async function addApolloRouting(
|
|
49
|
+
async function addApolloRouting(server: FastifyInstance, apollo: ApolloServer<MyContext> | null) {
|
|
50
50
|
if (apollo) {
|
|
51
51
|
log.trace('Add graphql routes')
|
|
52
|
-
await
|
|
52
|
+
await server.register(fastifyApollo(apollo), {
|
|
53
53
|
context: myContextFunction
|
|
54
54
|
})
|
|
55
55
|
|
|
56
56
|
// // OR
|
|
57
|
-
//
|
|
57
|
+
// server.post(
|
|
58
58
|
// '/graphql-alt',
|
|
59
59
|
// fastifyApolloHandler(apollo, {
|
|
60
60
|
// context: myContextFunction
|
|
@@ -63,17 +63,17 @@ async function addApolloRouting(fastify: FastifyInstance, apollo: ApolloServer<M
|
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
65
|
|
|
66
|
-
async function addFastifyRouting(
|
|
67
|
-
log.trace('Add
|
|
66
|
+
async function addFastifyRouting(server: FastifyInstance) {
|
|
67
|
+
log.trace('Add server routes')
|
|
68
68
|
|
|
69
|
-
loaderHooks.apply(
|
|
70
|
-
loaderSchemas.apply(
|
|
69
|
+
loaderHooks.apply(server)
|
|
70
|
+
loaderSchemas.apply(server)
|
|
71
71
|
|
|
72
72
|
const routes = loaderRouter.load()
|
|
73
|
-
routes && loaderRouter.apply(
|
|
73
|
+
routes && loaderRouter.apply(server, routes)
|
|
74
74
|
}
|
|
75
75
|
|
|
76
|
-
async function addFastifySwagger(
|
|
76
|
+
async function addFastifySwagger(server: FastifyInstance) {
|
|
77
77
|
const { SWAGGER, SWAGGER_TITLE, SWAGGER_DESCRIPTION, SWAGGER_VERSION, SWAGGER_PREFIX_URL, SWAGGER_HOST } = process.env
|
|
78
78
|
|
|
79
79
|
const loadSwagger = yn(SWAGGER, false)
|
|
@@ -83,7 +83,7 @@ async function addFastifySwagger(fastify: FastifyInstance) {
|
|
|
83
83
|
const fs = require('fs')
|
|
84
84
|
const contents = fs.readFileSync('logo-dark.png', { encoding: 'base64' })
|
|
85
85
|
|
|
86
|
-
await
|
|
86
|
+
await server.register(swagger, {
|
|
87
87
|
swagger: {
|
|
88
88
|
info: {
|
|
89
89
|
title: SWAGGER_TITLE || 'Volcanic API Documentation',
|
|
@@ -117,7 +117,7 @@ async function addFastifySwagger(fastify: FastifyInstance) {
|
|
|
117
117
|
}
|
|
118
118
|
})
|
|
119
119
|
|
|
120
|
-
await
|
|
120
|
+
await server.register(swaggerUI, {
|
|
121
121
|
routePrefix: SWAGGER_PREFIX_URL || '/documentation',
|
|
122
122
|
uiConfig: {
|
|
123
123
|
docExpansion: 'list',
|
|
@@ -142,7 +142,7 @@ const start = async (decorators) => {
|
|
|
142
142
|
global.t = loaderTranslation.load()
|
|
143
143
|
|
|
144
144
|
const opts = yn(process.env.LOG_FASTIFY, false) ? { logger: logger } : {}
|
|
145
|
-
const
|
|
145
|
+
const server: FastifyInstance = fastify()
|
|
146
146
|
|
|
147
147
|
const { HOST: host = '0.0.0.0', PORT: port = '2230', GRAPHQL } = process.env
|
|
148
148
|
const {
|
|
@@ -158,30 +158,30 @@ const start = async (decorators) => {
|
|
|
158
158
|
const plugins = loaderPlugins.load()
|
|
159
159
|
|
|
160
160
|
// Helmet is not usable with Apollo Server
|
|
161
|
-
!loadApollo && plugins?.helmet && (await
|
|
162
|
-
plugins?.rateLimit && (await
|
|
163
|
-
plugins?.cors && (await
|
|
164
|
-
plugins?.compress && (await
|
|
161
|
+
!loadApollo && plugins?.helmet && (await server.register(helmet))
|
|
162
|
+
plugins?.rateLimit && (await server.register(rateLimit))
|
|
163
|
+
plugins?.cors && (await server.register(cors, plugins.cors || {}))
|
|
164
|
+
plugins?.compress && (await server.register(compress))
|
|
165
165
|
|
|
166
166
|
// JWT Validator
|
|
167
167
|
log.t && log.trace(`Add JWT - expiresIn: ${JWT_EXPIRES_IN}`)
|
|
168
|
-
await
|
|
168
|
+
await server.register(jwtValidator, {
|
|
169
169
|
secret: JWT_SECRET,
|
|
170
170
|
sign: { expiresIn: JWT_EXPIRES_IN }
|
|
171
171
|
})
|
|
172
172
|
|
|
173
173
|
if (loadRefreshJWT) {
|
|
174
|
-
await
|
|
174
|
+
await server.register(jwtValidator, {
|
|
175
175
|
namespace: 'refreshToken',
|
|
176
176
|
secret: JWT_REFRESH_SECRET || JWT_SECRET,
|
|
177
177
|
sign: { expiresIn: JWT_REFRESH_EXPIRES_IN }
|
|
178
178
|
})
|
|
179
179
|
}
|
|
180
180
|
|
|
181
|
-
const apollo = loadApollo ? await attachApollo(
|
|
182
|
-
await addFastifySwagger(
|
|
183
|
-
await addApolloRouting(
|
|
184
|
-
await addFastifyRouting(
|
|
181
|
+
const apollo = loadApollo ? await attachApollo(server) : null
|
|
182
|
+
await addFastifySwagger(server)
|
|
183
|
+
await addApolloRouting(server, apollo)
|
|
184
|
+
await addFastifyRouting(server)
|
|
185
185
|
|
|
186
186
|
// defaults
|
|
187
187
|
decorators = {
|
|
@@ -298,11 +298,11 @@ const start = async (decorators) => {
|
|
|
298
298
|
|
|
299
299
|
await Promise.all(
|
|
300
300
|
Object.keys(decorators || {}).map(async (key) => {
|
|
301
|
-
await
|
|
301
|
+
await server.decorate(key, decorators[key])
|
|
302
302
|
})
|
|
303
303
|
)
|
|
304
304
|
|
|
305
|
-
await
|
|
305
|
+
await server
|
|
306
306
|
.listen({
|
|
307
307
|
port: Number(port),
|
|
308
308
|
host: host
|
|
@@ -316,8 +316,8 @@ const start = async (decorators) => {
|
|
|
316
316
|
loadSwagger && log.info(`Swagger ready ✨ at ${address}${process.env.SWAGGER_PREFIX_URL || '/documentation'}`)
|
|
317
317
|
})
|
|
318
318
|
|
|
319
|
-
global.server =
|
|
320
|
-
return
|
|
319
|
+
global.server = server
|
|
320
|
+
return server
|
|
321
321
|
}
|
|
322
322
|
|
|
323
323
|
export {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@volcanicminds/backend",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.2",
|
|
4
4
|
"codename": "turin",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"description": "The volcanic (minds) backend",
|
|
@@ -50,36 +50,36 @@
|
|
|
50
50
|
"upgrade-deps": "yarn upgrade-interactive"
|
|
51
51
|
},
|
|
52
52
|
"dependencies": {
|
|
53
|
-
"@apollo/server": "^4.
|
|
54
|
-
"@as-integrations/fastify": "^1.2
|
|
55
|
-
"@fastify/compress": "^6.
|
|
56
|
-
"@fastify/cors": "^8.
|
|
57
|
-
"@fastify/helmet": "^10.1.
|
|
58
|
-
"@fastify/jwt": "^6.
|
|
53
|
+
"@apollo/server": "^4.9.3",
|
|
54
|
+
"@as-integrations/fastify": "^1.3.2",
|
|
55
|
+
"@fastify/compress": "^6.4.0",
|
|
56
|
+
"@fastify/cors": "^8.4.0",
|
|
57
|
+
"@fastify/helmet": "^10.1.1",
|
|
58
|
+
"@fastify/jwt": "^6.7.1",
|
|
59
59
|
"@fastify/rate-limit": "^7.6.0",
|
|
60
|
-
"@fastify/swagger": "^8.
|
|
61
|
-
"@fastify/swagger-ui": "^1.3
|
|
62
|
-
"@types/node": "^20.
|
|
63
|
-
"dotenv": "^16.
|
|
64
|
-
"fastify": "^4.
|
|
65
|
-
"glob": "^8.0
|
|
66
|
-
"graphql": "^16.
|
|
60
|
+
"@fastify/swagger": "^8.10.1",
|
|
61
|
+
"@fastify/swagger-ui": "^1.9.3",
|
|
62
|
+
"@types/node": "^20.7.0",
|
|
63
|
+
"dotenv": "^16.3.1",
|
|
64
|
+
"fastify": "^4.23.2",
|
|
65
|
+
"glob": "^8.1.0",
|
|
66
|
+
"graphql": "^16.8.1",
|
|
67
67
|
"i18n": "^0.15.1",
|
|
68
|
-
"nanoid": "^4.0.
|
|
68
|
+
"nanoid": "^4.0.2",
|
|
69
69
|
"object-sizeof": "^1.6.3",
|
|
70
|
-
"pino": "^8.
|
|
71
|
-
"pino-pretty": "^9.
|
|
70
|
+
"pino": "^8.15.1",
|
|
71
|
+
"pino-pretty": "^9.4.1",
|
|
72
72
|
"root-require": "^0.3.1",
|
|
73
|
-
"semver": "^7.
|
|
73
|
+
"semver": "^7.5.4"
|
|
74
74
|
},
|
|
75
75
|
"devDependencies": {
|
|
76
76
|
"@types/mocha": "^10.0.1",
|
|
77
77
|
"cross-env": "^7.0.3",
|
|
78
|
-
"expect": "^29.
|
|
78
|
+
"expect": "^29.7.0",
|
|
79
79
|
"mocha": "^10.2.0",
|
|
80
|
-
"nodemon": "^2.0.
|
|
80
|
+
"nodemon": "^2.0.22",
|
|
81
81
|
"ts-node": "^10.9.1",
|
|
82
|
-
"typescript": "^4.9.
|
|
82
|
+
"typescript": "^4.9.5"
|
|
83
83
|
},
|
|
84
84
|
"repository": {
|
|
85
85
|
"type": "git",
|