@dismissible/nestjs-api 2.0.2-canary.2913ba8.0 → 2.0.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/package.json +22 -22
- package/src/app.setup.js +2 -2
- package/src/app.setup.js.map +1 -1
- package/src/cors/cors.factory.js +2 -3
- package/src/cors/cors.factory.js.map +1 -1
- package/src/dismissible-nest-factory.js +3 -1
- package/src/dismissible-nest-factory.js.map +1 -1
- package/src/helmet/helmet.factory.js +2 -3
- package/src/helmet/helmet.factory.js.map +1 -1
- package/src/swagger/swagger.factory.js +2 -3
- package/src/swagger/swagger.factory.js.map +1 -1
- package/src/validation/validation.factory.js +1 -2
- package/src/validation/validation.factory.js.map +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dismissible/nestjs-api",
|
|
3
|
-
"version": "2.0.2
|
|
3
|
+
"version": "2.0.2",
|
|
4
4
|
"description": "Dismissible API application",
|
|
5
5
|
"main": "./src/index.js",
|
|
6
6
|
"types": "./src/index.d.ts",
|
|
@@ -30,26 +30,26 @@
|
|
|
30
30
|
"storage:setup:dynamodb": "npx dismissible-dynamodb-setup"
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@dismissible/nestjs-core": "2.0.2
|
|
34
|
-
"@dismissible/nestjs-item": "2.0.2
|
|
35
|
-
"@dismissible/nestjs-jwt-auth-hook": "2.0.2
|
|
36
|
-
"@dismissible/nestjs-storage": "2.0.2
|
|
37
|
-
"@dismissible/nestjs-postgres-storage": "2.0.2
|
|
38
|
-
"@dismissible/nestjs-dynamodb-storage": "2.0.2
|
|
39
|
-
"@dismissible/nestjs-logger": "2.0.2
|
|
40
|
-
"@dismissible/nestjs-rate-limiter-hook": "2.0.2
|
|
41
|
-
"@nestjs/common": "11.1.11",
|
|
42
|
-
"@nestjs/core": "11.1.11",
|
|
43
|
-
"@nestjs/platform-fastify": "11.1.11",
|
|
44
|
-
"fastify": "5.6.2",
|
|
45
|
-
"@fastify/helmet": "13.0.2",
|
|
46
|
-
"@fastify/static": "8.3.0",
|
|
47
|
-
"@nestjs/swagger": "11.2.3",
|
|
48
|
-
"class-transformer": "0.5.1",
|
|
49
|
-
"class-validator": "0.14.3",
|
|
50
|
-
"nest-typed-config": "2.10.1",
|
|
51
|
-
"reflect-metadata": "0.2.2",
|
|
52
|
-
"rxjs": "7.8.2"
|
|
33
|
+
"@dismissible/nestjs-core": "^2.0.2",
|
|
34
|
+
"@dismissible/nestjs-item": "^2.0.2",
|
|
35
|
+
"@dismissible/nestjs-jwt-auth-hook": "^2.0.2",
|
|
36
|
+
"@dismissible/nestjs-storage": "^2.0.2",
|
|
37
|
+
"@dismissible/nestjs-postgres-storage": "^2.0.2",
|
|
38
|
+
"@dismissible/nestjs-dynamodb-storage": "^2.0.2",
|
|
39
|
+
"@dismissible/nestjs-logger": "^2.0.2",
|
|
40
|
+
"@dismissible/nestjs-rate-limiter-hook": "^2.0.2",
|
|
41
|
+
"@nestjs/common": "^11.1.11",
|
|
42
|
+
"@nestjs/core": "^11.1.11",
|
|
43
|
+
"@nestjs/platform-fastify": "^11.1.11",
|
|
44
|
+
"fastify": "^5.6.2",
|
|
45
|
+
"@fastify/helmet": "^13.0.2",
|
|
46
|
+
"@fastify/static": "^8.3.0",
|
|
47
|
+
"@nestjs/swagger": "^11.2.3",
|
|
48
|
+
"class-transformer": "^0.5.1",
|
|
49
|
+
"class-validator": "^0.14.3",
|
|
50
|
+
"nest-typed-config": "^2.10.1",
|
|
51
|
+
"reflect-metadata": "^0.2.2",
|
|
52
|
+
"rxjs": "^7.8.2"
|
|
53
53
|
},
|
|
54
54
|
"keywords": [
|
|
55
55
|
"nestjs",
|
|
@@ -65,4 +65,4 @@
|
|
|
65
65
|
"access": "public"
|
|
66
66
|
},
|
|
67
67
|
"type": "commonjs"
|
|
68
|
-
}
|
|
68
|
+
}
|
package/src/app.setup.js
CHANGED
|
@@ -8,8 +8,8 @@ const validation_1 = require("./validation");
|
|
|
8
8
|
const nestjs_logger_1 = require("@dismissible/nestjs-logger");
|
|
9
9
|
async function configureApp(app) {
|
|
10
10
|
const logger = app.get(nestjs_logger_1.DISMISSIBLE_LOGGER);
|
|
11
|
-
|
|
12
|
-
logger.
|
|
11
|
+
app.useLogger(logger);
|
|
12
|
+
logger.log('Configuring application');
|
|
13
13
|
await (0, helmet_1.configureAppWithHelmet)(app);
|
|
14
14
|
(0, cors_1.configureAppWithCors)(app);
|
|
15
15
|
(0, validation_1.configureAppWithValidation)(app);
|
package/src/app.setup.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.setup.js","sourceRoot":"","sources":["../../../api/src/app.setup.ts"],"names":[],"mappings":";;AAOA,oCASC;AAfD,uCAAoD;AACpD,iCAA8C;AAC9C,qCAAkD;AAClD,6CAA0D;AAC1D,8DAAoF;AAE7E,KAAK,UAAU,YAAY,CAAC,GAAqB;IACtD,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAqB,kCAAkB,CAAC,CAAC;IAC/D,
|
|
1
|
+
{"version":3,"file":"app.setup.js","sourceRoot":"","sources":["../../../api/src/app.setup.ts"],"names":[],"mappings":";;AAOA,oCASC;AAfD,uCAAoD;AACpD,iCAA8C;AAC9C,qCAAkD;AAClD,6CAA0D;AAC1D,8DAAoF;AAE7E,KAAK,UAAU,YAAY,CAAC,GAAqB;IACtD,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAqB,kCAAkB,CAAC,CAAC;IAC/D,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACtB,MAAM,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IAEtC,MAAM,IAAA,+BAAsB,EAAC,GAAG,CAAC,CAAC;IAClC,IAAA,2BAAoB,EAAC,GAAG,CAAC,CAAC;IAC1B,IAAA,uCAA0B,EAAC,GAAG,CAAC,CAAC;IAChC,IAAA,iCAAuB,EAAC,GAAG,CAAC,CAAC;AAC/B,CAAC"}
|
package/src/cors/cors.factory.js
CHANGED
|
@@ -5,7 +5,6 @@ const cors_config_1 = require("./cors.config");
|
|
|
5
5
|
const nestjs_logger_1 = require("@dismissible/nestjs-logger");
|
|
6
6
|
function configureAppWithCors(app) {
|
|
7
7
|
const logger = app.get(nestjs_logger_1.DISMISSIBLE_LOGGER);
|
|
8
|
-
logger.setContext('CORS');
|
|
9
8
|
const corsConfig = app.get(cors_config_1.CorsConfig);
|
|
10
9
|
if (corsConfig.enabled) {
|
|
11
10
|
// origins is guaranteed to be non-empty when enabled via @ValidateIf + @ArrayNotEmpty
|
|
@@ -20,10 +19,10 @@ function configureAppWithCors(app) {
|
|
|
20
19
|
credentials: corsConfig.credentials ?? true,
|
|
21
20
|
maxAge: corsConfig.maxAge ?? 86400,
|
|
22
21
|
});
|
|
23
|
-
logger.
|
|
22
|
+
logger.log('CORS is enabled', { corsConfig });
|
|
24
23
|
}
|
|
25
24
|
else {
|
|
26
|
-
logger.
|
|
25
|
+
logger.log('CORS is disabled');
|
|
27
26
|
}
|
|
28
27
|
}
|
|
29
28
|
//# sourceMappingURL=cors.factory.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cors.factory.js","sourceRoot":"","sources":["../../../../api/src/cors/cors.factory.ts"],"names":[],"mappings":";;AAIA,
|
|
1
|
+
{"version":3,"file":"cors.factory.js","sourceRoot":"","sources":["../../../../api/src/cors/cors.factory.ts"],"names":[],"mappings":";;AAIA,oDAqBC;AAxBD,+CAA2C;AAC3C,8DAAoF;AAEpF,SAAgB,oBAAoB,CAAC,GAAqB;IACxD,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAqB,kCAAkB,CAAC,CAAC;IAC/D,MAAM,UAAU,GAAG,GAAG,CAAC,GAAG,CAAC,wBAAU,CAAC,CAAC;IAEvC,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;QACvB,sFAAsF;QACtF,GAAG,CAAC,UAAU,CAAC;YACb,MAAM,EAAE,UAAU,CAAC,OAAQ;YAC3B,OAAO,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC;YACnE,cAAc,EAAE,UAAU,CAAC,cAAc,IAAI;gBAC3C,cAAc;gBACd,eAAe;gBACf,cAAc;aACf;YACD,WAAW,EAAE,UAAU,CAAC,WAAW,IAAI,IAAI;YAC3C,MAAM,EAAE,UAAU,CAAC,MAAM,IAAI,KAAK;SACnC,CAAC,CAAC;QACH,MAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;IAChD,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IACjC,CAAC;AACH,CAAC"}
|
|
@@ -6,15 +6,17 @@ const platform_fastify_1 = require("@nestjs/platform-fastify");
|
|
|
6
6
|
const app_module_1 = require("./app.module");
|
|
7
7
|
const server_config_1 = require("./server/server.config");
|
|
8
8
|
const app_setup_1 = require("./app.setup");
|
|
9
|
+
const nestjs_logger_1 = require("@dismissible/nestjs-logger");
|
|
9
10
|
class DismissibleNestApplication {
|
|
10
11
|
constructor(app) {
|
|
11
12
|
this.app = app;
|
|
12
13
|
}
|
|
13
14
|
async start() {
|
|
14
15
|
const serverConfig = this.app.get(server_config_1.ServerConfig);
|
|
16
|
+
const logger = this.app.get(nestjs_logger_1.DISMISSIBLE_LOGGER);
|
|
15
17
|
const port = serverConfig.port ?? 3000;
|
|
16
18
|
await this.app.listen(port, '0.0.0.0');
|
|
17
|
-
|
|
19
|
+
logger.log(`🚀 Application is running on: http://localhost:${port}`);
|
|
18
20
|
}
|
|
19
21
|
getNestApplication() {
|
|
20
22
|
return this.app;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dismissible-nest-factory.js","sourceRoot":"","sources":["../../../api/src/dismissible-nest-factory.ts"],"names":[],"mappings":";;;AACA,uCAA2C;AAC3C,+DAAkF;AAClF,6CAAyC;AACzC,0DAAsD;AACtD,2CAA2C;
|
|
1
|
+
{"version":3,"file":"dismissible-nest-factory.js","sourceRoot":"","sources":["../../../api/src/dismissible-nest-factory.ts"],"names":[],"mappings":";;;AACA,uCAA2C;AAC3C,+DAAkF;AAClF,6CAAyC;AACzC,0DAAsD;AACtD,2CAA2C;AAE3C,8DAAoF;AAmBpF,MAAM,0BAA0B;IAC9B,YAA6B,GAA2B;QAA3B,QAAG,GAAH,GAAG,CAAwB;IAAG,CAAC;IAE5D,KAAK,CAAC,KAAK;QACT,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,4BAAY,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,kCAAkB,CAAC,CAAC;QAChD,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,IAAI,IAAI,CAAC;QACvC,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACvC,MAAM,CAAC,GAAG,CAAC,kDAAkD,IAAI,EAAE,CAAC,CAAC;IACvE,CAAC;IAED,kBAAkB;QAChB,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;CACF;AAED,MAAa,sBAAsB;IACjC,MAAM,CAAC,KAAK,CAAC,MAAM,CACjB,OAAwC;QAExC,MAAM,GAAG,GAAG,MAAM,kBAAW,CAAC,MAAM,CAClC,sBAAS,CAAC,OAAO,CAAC,OAAO,CAAC,EAC1B,IAAI,iCAAc,CAAC;YACjB,SAAS,EAAE,EAAE,GAAG,IAAI,EAAE,OAAO;SAC9B,CAAC,CACH,CAAC;QACF,MAAM,IAAA,wBAAY,EAAC,GAAG,CAAC,CAAC;QAExB,OAAO,IAAI,0BAA0B,CAAC,GAAG,CAAC,CAAC;IAC7C,CAAC;CACF;AAdD,wDAcC"}
|
|
@@ -7,7 +7,6 @@ const helmet_config_1 = require("./helmet.config");
|
|
|
7
7
|
const nestjs_logger_1 = require("@dismissible/nestjs-logger");
|
|
8
8
|
async function configureAppWithHelmet(app) {
|
|
9
9
|
const logger = app.get(nestjs_logger_1.DISMISSIBLE_LOGGER);
|
|
10
|
-
logger.setContext('Helmet');
|
|
11
10
|
const helmetConfig = app.get(helmet_config_1.HelmetConfig);
|
|
12
11
|
if (helmetConfig.enabled) {
|
|
13
12
|
const fastifyApp = app;
|
|
@@ -20,10 +19,10 @@ async function configureAppWithHelmet(app) {
|
|
|
20
19
|
preload: helmetConfig.hstsPreload ?? false,
|
|
21
20
|
},
|
|
22
21
|
});
|
|
23
|
-
logger.
|
|
22
|
+
logger.log('Helmet is enabled', { helmetConfig });
|
|
24
23
|
}
|
|
25
24
|
else {
|
|
26
|
-
logger.
|
|
25
|
+
logger.log('Helmet is disabled');
|
|
27
26
|
}
|
|
28
27
|
}
|
|
29
28
|
//# sourceMappingURL=helmet.factory.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helmet.factory.js","sourceRoot":"","sources":["../../../../api/src/helmet/helmet.factory.ts"],"names":[],"mappings":";;AAMA,
|
|
1
|
+
{"version":3,"file":"helmet.factory.js","sourceRoot":"","sources":["../../../../api/src/helmet/helmet.factory.ts"],"names":[],"mappings":";;AAMA,wDAmBC;;AAvBD,qEAA4C;AAC5C,mDAA+C;AAC/C,8DAAoF;AAE7E,KAAK,UAAU,sBAAsB,CAAC,GAAqB;IAChE,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAqB,kCAAkB,CAAC,CAAC;IAC/D,MAAM,YAAY,GAAG,GAAG,CAAC,GAAG,CAAC,4BAAY,CAAC,CAAC;IAE3C,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;QACzB,MAAM,UAAU,GAAG,GAA6B,CAAC;QACjD,MAAM,UAAU,CAAC,QAAQ,CAAC,gBAAa,EAAE;YACvC,qBAAqB,EAAE,YAAY,CAAC,qBAAqB,IAAI,IAAI;YACjE,yBAAyB,EAAE,YAAY,CAAC,yBAAyB,IAAI,IAAI;YACzE,IAAI,EAAE;gBACJ,MAAM,EAAE,YAAY,CAAC,UAAU,IAAI,QAAQ;gBAC3C,iBAAiB,EAAE,YAAY,CAAC,qBAAqB,IAAI,IAAI;gBAC7D,OAAO,EAAE,YAAY,CAAC,WAAW,IAAI,KAAK;aAC3C;SACF,CAAC,CAAC;QACH,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC;IACpD,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IACnC,CAAC;AACH,CAAC"}
|
|
@@ -9,10 +9,9 @@ const swaggerDocumentOptions = {
|
|
|
9
9
|
};
|
|
10
10
|
function configureAppWithSwagger(app) {
|
|
11
11
|
const logger = app.get(nestjs_logger_1.DISMISSIBLE_LOGGER);
|
|
12
|
-
logger.setContext('Swagger');
|
|
13
12
|
const swaggerConfig = app.get(swagger_config_1.SwaggerConfig);
|
|
14
13
|
if (swaggerConfig.enabled) {
|
|
15
|
-
logger.
|
|
14
|
+
logger.log('Swagger is enabled', { swaggerConfig });
|
|
16
15
|
const { path = 'docs' } = swaggerConfig;
|
|
17
16
|
const config = new swagger_1.DocumentBuilder()
|
|
18
17
|
.setTitle('Dismissible')
|
|
@@ -25,7 +24,7 @@ function configureAppWithSwagger(app) {
|
|
|
25
24
|
});
|
|
26
25
|
}
|
|
27
26
|
else {
|
|
28
|
-
logger.
|
|
27
|
+
logger.log('Swagger is disabled');
|
|
29
28
|
}
|
|
30
29
|
}
|
|
31
30
|
//# sourceMappingURL=swagger.factory.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"swagger.factory.js","sourceRoot":"","sources":["../../../../api/src/swagger/swagger.factory.ts"],"names":[],"mappings":";;AASA,
|
|
1
|
+
{"version":3,"file":"swagger.factory.js","sourceRoot":"","sources":["../../../../api/src/swagger/swagger.factory.ts"],"names":[],"mappings":";;AASA,0DAqBC;AA7BD,6CAAyF;AACzF,qDAAiD;AACjD,8DAAoF;AAEpF,MAAM,sBAAsB,GAA2B;IACrD,kBAAkB,EAAE,CAAC,cAAsB,EAAE,SAAiB,EAAE,EAAE,CAAC,SAAS;CAC7E,CAAC;AAEF,SAAgB,uBAAuB,CAAC,GAAqB;IAC3D,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAqB,kCAAkB,CAAC,CAAC;IAC/D,MAAM,aAAa,GAAG,GAAG,CAAC,GAAG,CAAC,8BAAa,CAAC,CAAC;IAE7C,IAAI,aAAa,CAAC,OAAO,EAAE,CAAC;QAC1B,MAAM,CAAC,GAAG,CAAC,oBAAoB,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC;QACpD,MAAM,EAAE,IAAI,GAAG,MAAM,EAAE,GAAG,aAAa,CAAC;QAExC,MAAM,MAAM,GAAG,IAAI,yBAAe,EAAE;aACjC,QAAQ,CAAC,aAAa,CAAC;aACvB,cAAc,CAAC,8CAA8C,CAAC;aAC9D,UAAU,CAAC,KAAK,CAAC;aACjB,KAAK,EAAE,CAAC;QAEX,MAAM,eAAe,GAAG,GAAG,EAAE,CAAC,uBAAa,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,sBAAsB,CAAC,CAAC;QAChG,uBAAa,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,eAAe,EAAE;YAC9C,eAAe,EAAE,IAAI;SACtB,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IACpC,CAAC;AACH,CAAC"}
|
|
@@ -6,9 +6,8 @@ const validation_config_1 = require("./validation.config");
|
|
|
6
6
|
const nestjs_logger_1 = require("@dismissible/nestjs-logger");
|
|
7
7
|
function configureAppWithValidation(app) {
|
|
8
8
|
const logger = app.get(nestjs_logger_1.DISMISSIBLE_LOGGER);
|
|
9
|
-
logger.setContext('Validation');
|
|
10
9
|
const validationConfig = app.get(validation_config_1.ValidationConfig);
|
|
11
|
-
logger.
|
|
10
|
+
logger.log('Registering ValidationPipe', { validationConfig });
|
|
12
11
|
app.useGlobalPipes(new common_1.ValidationPipe({
|
|
13
12
|
whitelist: validationConfig.whitelist ?? true,
|
|
14
13
|
forbidNonWhitelisted: validationConfig.forbidNonWhitelisted ?? true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.factory.js","sourceRoot":"","sources":["../../../../api/src/validation/validation.factory.ts"],"names":[],"mappings":";;AAIA,
|
|
1
|
+
{"version":3,"file":"validation.factory.js","sourceRoot":"","sources":["../../../../api/src/validation/validation.factory.ts"],"names":[],"mappings":";;AAIA,gEAaC;AAjBD,2CAAkE;AAClE,2DAAuD;AACvD,8DAAoF;AAEpF,SAAgB,0BAA0B,CAAC,GAAqB;IAC9D,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAqB,kCAAkB,CAAC,CAAC;IAC/D,MAAM,gBAAgB,GAAG,GAAG,CAAC,GAAG,CAAC,oCAAgB,CAAC,CAAC;IAEnD,MAAM,CAAC,GAAG,CAAC,4BAA4B,EAAE,EAAE,gBAAgB,EAAE,CAAC,CAAC;IAC/D,GAAG,CAAC,cAAc,CAChB,IAAI,uBAAc,CAAC;QACjB,SAAS,EAAE,gBAAgB,CAAC,SAAS,IAAI,IAAI;QAC7C,oBAAoB,EAAE,gBAAgB,CAAC,oBAAoB,IAAI,IAAI;QACnE,SAAS,EAAE,gBAAgB,CAAC,SAAS,IAAI,IAAI;QAC7C,oBAAoB,EAAE,gBAAgB,CAAC,oBAAoB,IAAI,IAAI;KACpE,CAAC,CACH,CAAC;AACJ,CAAC"}
|