@ask-ell/back-end 0.2.5 → 0.2.6

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.
Files changed (155) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/package.json +2 -2
  3. package/src/http/index.d.ts +2 -0
  4. package/src/http/index.d.ts.map +1 -0
  5. package/src/http/index.js +4 -0
  6. package/src/http/types.d.ts +5 -0
  7. package/src/http/types.d.ts.map +1 -0
  8. package/src/http/types.js +2 -0
  9. package/src/{index.ts → index.d.ts} +1 -0
  10. package/src/index.d.ts.map +1 -0
  11. package/src/index.js +10 -0
  12. package/src/keyv.store.adapter.factory.d.ts +11 -0
  13. package/src/keyv.store.adapter.factory.d.ts.map +1 -0
  14. package/src/keyv.store.adapter.factory.js +44 -0
  15. package/src/nest/add-ons/add-on.interface.d.ts +5 -0
  16. package/src/nest/add-ons/add-on.interface.d.ts.map +1 -0
  17. package/src/nest/add-ons/add-on.interface.js +2 -0
  18. package/src/nest/add-ons/add-on.wrapper.d.ts +11 -0
  19. package/src/nest/add-ons/add-on.wrapper.d.ts.map +1 -0
  20. package/src/nest/add-ons/add-on.wrapper.js +29 -0
  21. package/src/nest/add-ons/implementations/security/security.add-on.d.ts +6 -0
  22. package/src/nest/add-ons/implementations/security/security.add-on.d.ts.map +1 -0
  23. package/src/nest/add-ons/implementations/security/security.add-on.js +16 -0
  24. package/src/nest/add-ons/implementations/sentry/sentry.add-on.d.ts +8 -0
  25. package/src/nest/add-ons/implementations/sentry/sentry.add-on.d.ts.map +1 -0
  26. package/src/nest/add-ons/implementations/sentry/{sentry.add-on.interface.ts → sentry.add-on.interface.d.ts} +3 -5
  27. package/src/nest/add-ons/implementations/sentry/sentry.add-on.interface.d.ts.map +1 -0
  28. package/src/nest/add-ons/implementations/sentry/sentry.add-on.interface.js +2 -0
  29. package/src/nest/add-ons/implementations/sentry/sentry.add-on.js +19 -0
  30. package/src/nest/add-ons/implementations/sentry/sentry.add-on.state.interface.d.ts +6 -0
  31. package/src/nest/add-ons/implementations/sentry/sentry.add-on.state.interface.d.ts.map +1 -0
  32. package/src/nest/add-ons/implementations/sentry/sentry.add-on.state.interface.js +2 -0
  33. package/src/nest/add-ons/implementations/swagger/swagger.add-on.d.ts +10 -0
  34. package/src/nest/add-ons/implementations/swagger/swagger.add-on.d.ts.map +1 -0
  35. package/src/nest/add-ons/implementations/swagger/{swagger.add-on.interface.ts → swagger.add-on.interface.d.ts} +3 -5
  36. package/src/nest/add-ons/implementations/swagger/swagger.add-on.interface.d.ts.map +1 -0
  37. package/src/nest/add-ons/implementations/swagger/swagger.add-on.interface.js +2 -0
  38. package/src/nest/add-ons/implementations/swagger/swagger.add-on.js +32 -0
  39. package/src/nest/add-ons/implementations/swagger/swagger.add-on.state.interface.d.ts +7 -0
  40. package/src/nest/add-ons/implementations/swagger/swagger.add-on.state.interface.d.ts.map +1 -0
  41. package/src/nest/add-ons/implementations/swagger/swagger.add-on.state.interface.js +2 -0
  42. package/src/nest/add-ons/implementations/swagger/{types.ts → types.d.ts} +1 -0
  43. package/src/nest/add-ons/implementations/swagger/types.d.ts.map +1 -0
  44. package/src/nest/add-ons/implementations/swagger/types.js +2 -0
  45. package/src/nest/add-ons/{index.ts → index.d.ts} +1 -0
  46. package/src/nest/add-ons/index.d.ts.map +1 -0
  47. package/src/nest/add-ons/index.js +9 -0
  48. package/src/nest/add-ons/{types.ts → types.d.ts} +3 -3
  49. package/src/nest/add-ons/types.d.ts.map +1 -0
  50. package/src/nest/add-ons/types.js +2 -0
  51. package/src/nest/application.base.d.ts +5 -0
  52. package/src/nest/application.base.d.ts.map +1 -0
  53. package/src/nest/application.base.js +34 -0
  54. package/src/nest/application.factory.d.ts +9 -0
  55. package/src/nest/application.factory.d.ts.map +1 -0
  56. package/src/nest/application.factory.js +15 -0
  57. package/src/nest/filters/http.exception.filter.d.ts +5 -0
  58. package/src/nest/filters/http.exception.filter.d.ts.map +1 -0
  59. package/src/nest/filters/http.exception.filter.js +32 -0
  60. package/src/nest/filters/{index.ts → index.d.ts} +1 -0
  61. package/src/nest/filters/index.d.ts.map +1 -0
  62. package/src/nest/filters/index.js +4 -0
  63. package/src/nest/{index.ts → index.d.ts} +1 -0
  64. package/src/nest/index.d.ts.map +1 -0
  65. package/src/nest/index.js +9 -0
  66. package/src/nest/interceptors/error.interceptor.d.ts +11 -0
  67. package/src/nest/interceptors/error.interceptor.d.ts.map +1 -0
  68. package/src/nest/interceptors/error.interceptor.js +17 -0
  69. package/src/nest/interceptors/{index.ts → index.d.ts} +1 -0
  70. package/src/nest/interceptors/index.d.ts.map +1 -0
  71. package/src/nest/interceptors/index.js +5 -0
  72. package/src/nest/interceptors/response.format.interceptor.d.ts +7 -0
  73. package/src/nest/interceptors/response.format.interceptor.d.ts.map +1 -0
  74. package/src/nest/interceptors/response.format.interceptor.js +30 -0
  75. package/src/nest/modules/health/health.module.d.ts +5 -0
  76. package/src/nest/modules/health/health.module.d.ts.map +1 -0
  77. package/src/nest/modules/health/health.module.js +32 -0
  78. package/src/nest/modules/health/index.d.ts +2 -0
  79. package/src/nest/modules/health/index.d.ts.map +1 -0
  80. package/src/nest/modules/health/index.js +4 -0
  81. package/src/nest/modules/health/middlewares/{index.ts → index.d.ts} +1 -0
  82. package/src/nest/modules/health/middlewares/index.d.ts.map +1 -0
  83. package/src/nest/modules/health/middlewares/index.js +4 -0
  84. package/src/nest/modules/health/middlewares/ping.middleware.d.ts +6 -0
  85. package/src/nest/modules/health/middlewares/ping.middleware.d.ts.map +1 -0
  86. package/src/nest/modules/health/middlewares/ping.middleware.js +26 -0
  87. package/src/nest/modules/{index.ts → index.d.ts} +1 -0
  88. package/src/nest/modules/index.d.ts.map +1 -0
  89. package/src/nest/modules/index.js +5 -0
  90. package/src/nest/modules/requirement/{index.ts → index.d.ts} +1 -0
  91. package/src/nest/modules/requirement/index.d.ts.map +1 -0
  92. package/src/nest/modules/requirement/index.js +4 -0
  93. package/src/nest/modules/requirement/requirement.module.d.ts +3 -0
  94. package/src/nest/modules/requirement/requirement.module.d.ts.map +1 -0
  95. package/src/nest/modules/requirement/requirement.module.js +72 -0
  96. package/src/scripts/{index.ts → index.d.ts} +1 -0
  97. package/src/scripts/index.d.ts.map +1 -0
  98. package/src/scripts/index.js +5 -0
  99. package/src/scripts/move-keyv-data.program.d.ts +6 -0
  100. package/src/scripts/move-keyv-data.program.d.ts.map +1 -0
  101. package/src/scripts/move-keyv-data.program.js +65 -0
  102. package/src/scripts/update-dependencies-versions.program.d.ts +32 -0
  103. package/src/scripts/update-dependencies-versions.program.d.ts.map +1 -0
  104. package/src/scripts/update-dependencies-versions.program.js +112 -0
  105. package/src/secrets/docker.secret.getter.d.ts +3 -0
  106. package/src/secrets/docker.secret.getter.d.ts.map +1 -0
  107. package/src/secrets/docker.secret.getter.js +6 -0
  108. package/src/secrets/file.secret.getter.d.ts +5 -0
  109. package/src/secrets/file.secret.getter.d.ts.map +1 -0
  110. package/src/secrets/file.secret.getter.js +20 -0
  111. package/src/secrets/{index.ts → index.d.ts} +1 -0
  112. package/src/secrets/index.d.ts.map +1 -0
  113. package/src/secrets/index.js +5 -0
  114. package/src/secrets/local.secret.getter.d.ts +3 -0
  115. package/src/secrets/local.secret.getter.d.ts.map +1 -0
  116. package/src/secrets/local.secret.getter.js +6 -0
  117. package/src/secrets/{types.ts → types.d.ts} +1 -0
  118. package/src/secrets/types.d.ts.map +1 -0
  119. package/src/secrets/types.js +2 -0
  120. package/src/tmp.d.ts +4 -0
  121. package/src/tmp.d.ts.map +1 -0
  122. package/src/tmp.js +16 -0
  123. package/.spec.swcrc +0 -22
  124. package/dist/tsconfig.lib.tsbuildinfo +0 -1
  125. package/eslint.config.mjs +0 -22
  126. package/jest.config.ts +0 -20
  127. package/project.json +0 -26
  128. package/src/http/index.ts +0 -1
  129. package/src/http/types.ts +0 -4
  130. package/src/keyv.store.adapter.factory.ts +0 -43
  131. package/src/nest/add-ons/add-on.interface.ts +0 -5
  132. package/src/nest/add-ons/add-on.wrapper.ts +0 -31
  133. package/src/nest/add-ons/implementations/security/security.add-on.ts +0 -17
  134. package/src/nest/add-ons/implementations/sentry/sentry.add-on.state.interface.ts +0 -5
  135. package/src/nest/add-ons/implementations/sentry/sentry.add-on.ts +0 -24
  136. package/src/nest/add-ons/implementations/swagger/swagger.add-on.state.interface.ts +0 -7
  137. package/src/nest/add-ons/implementations/swagger/swagger.add-on.ts +0 -59
  138. package/src/nest/application.base.ts +0 -18
  139. package/src/nest/application.factory.ts +0 -23
  140. package/src/nest/filters/http.exception.filter.ts +0 -23
  141. package/src/nest/interceptors/error.interceptor.ts +0 -25
  142. package/src/nest/interceptors/response.format.interceptor.ts +0 -29
  143. package/src/nest/modules/health/health.module.ts +0 -20
  144. package/src/nest/modules/health/index.ts +0 -1
  145. package/src/nest/modules/health/middlewares/ping.middleware.ts +0 -9
  146. package/src/nest/modules/requirement/requirement.module.ts +0 -56
  147. package/src/scripts/move-keyv-data.program.ts +0 -88
  148. package/src/scripts/update-dependencies-versions.program.ts +0 -201
  149. package/src/secrets/docker.secret.getter.ts +0 -9
  150. package/src/secrets/file.secret.getter.ts +0 -27
  151. package/src/secrets/local.secret.getter.ts +0 -9
  152. package/src/tmp.ts +0 -15
  153. package/tsconfig.json +0 -16
  154. package/tsconfig.lib.json +0 -18
  155. package/tsconfig.spec.json +0 -23
@@ -0,0 +1,11 @@
1
+ import { Entity, IResult } from '@ask-ell/core';
2
+ import { CallHandler, ExecutionContext, NestInterceptor } from '@nestjs/common';
3
+ import { Observable } from 'rxjs';
4
+ export type ErrorInterceptorProps = {
5
+ errorConvertor: (error: unknown) => unknown;
6
+ };
7
+ export declare class ErrorInterceptor extends Entity<ErrorInterceptorProps> implements NestInterceptor {
8
+ checkStateValidity(): IResult;
9
+ intercept(_: ExecutionContext, next: CallHandler): Observable<unknown>;
10
+ }
11
+ //# sourceMappingURL=error.interceptor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.interceptor.d.ts","sourceRoot":"","sources":["../../../../../../packages/back-end/src/nest/interceptors/error.interceptor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAM,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAChF,OAAO,EAAc,UAAU,EAAc,MAAM,MAAM,CAAC;AAE1D,MAAM,MAAM,qBAAqB,GAAG;IAClC,cAAc,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;CAC7C,CAAC;AAEF,qBAAa,gBACX,SAAQ,MAAM,CAAC,qBAAqB,CACpC,YAAW,eAAe;IAEjB,kBAAkB,IAAI,OAAO;IAItC,SAAS,CAAC,CAAC,EAAE,gBAAgB,EAAE,IAAI,EAAE,WAAW,GAAG,UAAU,CAAC,OAAO,CAAC;CAQvE"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ErrorInterceptor = void 0;
4
+ const core_1 = require("@ask-ell/core");
5
+ const rxjs_1 = require("rxjs");
6
+ class ErrorInterceptor extends core_1.Entity {
7
+ checkStateValidity() {
8
+ return (0, core_1.ok)();
9
+ }
10
+ intercept(_, next) {
11
+ const { errorConvertor } = this.getSnapshot();
12
+ return next.handle().pipe((0, rxjs_1.catchError)((error) => {
13
+ return (0, rxjs_1.throwError)(() => errorConvertor(error));
14
+ }));
15
+ }
16
+ }
17
+ exports.ErrorInterceptor = ErrorInterceptor;
@@ -1,2 +1,3 @@
1
1
  export * from './error.interceptor';
2
2
  export * from './response.format.interceptor';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/back-end/src/nest/interceptors/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC"}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./error.interceptor"), exports);
5
+ tslib_1.__exportStar(require("./response.format.interceptor"), exports);
@@ -0,0 +1,7 @@
1
+ import { NestInterceptor, ExecutionContext, CallHandler } from '@nestjs/common';
2
+ import { Observable } from 'rxjs';
3
+ import { HttpResponseBody } from '../../http/types';
4
+ export declare class ResponseFormatInterceptor<T> implements NestInterceptor<T, HttpResponseBody<T>> {
5
+ intercept(_context: ExecutionContext, next: CallHandler): Observable<HttpResponseBody<T>>;
6
+ }
7
+ //# sourceMappingURL=response.format.interceptor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response.format.interceptor.d.ts","sourceRoot":"","sources":["../../../../../../packages/back-end/src/nest/interceptors/response.format.interceptor.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,eAAe,EACf,gBAAgB,EAChB,WAAW,EACZ,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAGlC,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,qBACa,yBAAyB,CAAC,CAAC,CACtC,YAAW,eAAe,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAElD,SAAS,CACP,QAAQ,EAAE,gBAAgB,EAC1B,IAAI,EAAE,WAAW,GAChB,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;CAUnC"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ResponseFormatInterceptor = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const common_1 = require("@nestjs/common");
6
+ const operators_1 = require("rxjs/operators");
7
+ let ResponseFormatInterceptor = (() => {
8
+ let _classDecorators = [(0, common_1.Injectable)()];
9
+ let _classDescriptor;
10
+ let _classExtraInitializers = [];
11
+ let _classThis;
12
+ var ResponseFormatInterceptor = class {
13
+ static { _classThis = this; }
14
+ static {
15
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
16
+ tslib_1.__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
17
+ ResponseFormatInterceptor = _classThis = _classDescriptor.value;
18
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
19
+ tslib_1.__runInitializers(_classThis, _classExtraInitializers);
20
+ }
21
+ intercept(_context, next) {
22
+ return next.handle().pipe((0, operators_1.map)((data) => ({
23
+ data,
24
+ message: 'ok',
25
+ })));
26
+ }
27
+ };
28
+ return ResponseFormatInterceptor = _classThis;
29
+ })();
30
+ exports.ResponseFormatInterceptor = ResponseFormatInterceptor;
@@ -0,0 +1,5 @@
1
+ import { MiddlewareConsumer, NestModule } from '@nestjs/common';
2
+ export declare class HealthModule implements NestModule {
3
+ configure(consumer: MiddlewareConsumer): void;
4
+ }
5
+ //# sourceMappingURL=health.module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health.module.d.ts","sourceRoot":"","sources":["../../../../../../../packages/back-end/src/nest/modules/health/health.module.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAElB,UAAU,EAEX,MAAM,gBAAgB,CAAC;AAIxB,qBAGa,YAAa,YAAW,UAAU;IAC7C,SAAS,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI;CAM9C"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HealthModule = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const common_1 = require("@nestjs/common");
6
+ const middlewares_1 = require("./middlewares");
7
+ let HealthModule = (() => {
8
+ let _classDecorators = [(0, common_1.Module)({
9
+ providers: [middlewares_1.PingMiddleware],
10
+ })];
11
+ let _classDescriptor;
12
+ let _classExtraInitializers = [];
13
+ let _classThis;
14
+ var HealthModule = class {
15
+ static { _classThis = this; }
16
+ static {
17
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
18
+ tslib_1.__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
19
+ HealthModule = _classThis = _classDescriptor.value;
20
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
21
+ tslib_1.__runInitializers(_classThis, _classExtraInitializers);
22
+ }
23
+ configure(consumer) {
24
+ consumer.apply(middlewares_1.PingMiddleware).forRoutes({
25
+ path: '/health/ping',
26
+ method: common_1.RequestMethod.GET,
27
+ });
28
+ }
29
+ };
30
+ return HealthModule = _classThis;
31
+ })();
32
+ exports.HealthModule = HealthModule;
@@ -0,0 +1,2 @@
1
+ export * from './health.module';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../packages/back-end/src/nest/modules/health/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./health.module"), exports);
@@ -1 +1,2 @@
1
1
  export * from './ping.middleware';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/back-end/src/nest/modules/health/middlewares/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./ping.middleware"), exports);
@@ -0,0 +1,6 @@
1
+ import { NestMiddleware } from '@nestjs/common';
2
+ import type { Request, Response } from 'express';
3
+ export declare class PingMiddleware implements NestMiddleware {
4
+ use(_request: Request, response: Response): void;
5
+ }
6
+ //# sourceMappingURL=ping.middleware.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ping.middleware.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/back-end/src/nest/modules/health/middlewares/ping.middleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEjD,qBACa,cAAe,YAAW,cAAc;IACnD,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;CAGjD"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PingMiddleware = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const common_1 = require("@nestjs/common");
6
+ let PingMiddleware = (() => {
7
+ let _classDecorators = [(0, common_1.Injectable)()];
8
+ let _classDescriptor;
9
+ let _classExtraInitializers = [];
10
+ let _classThis;
11
+ var PingMiddleware = class {
12
+ static { _classThis = this; }
13
+ static {
14
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
15
+ tslib_1.__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
16
+ PingMiddleware = _classThis = _classDescriptor.value;
17
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
18
+ tslib_1.__runInitializers(_classThis, _classExtraInitializers);
19
+ }
20
+ use(_request, response) {
21
+ response.end('Pong');
22
+ }
23
+ };
24
+ return PingMiddleware = _classThis;
25
+ })();
26
+ exports.PingMiddleware = PingMiddleware;
@@ -1,2 +1,3 @@
1
1
  export * from './health';
2
2
  export * from './requirement';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/back-end/src/nest/modules/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC"}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./health"), exports);
5
+ tslib_1.__exportStar(require("./requirement"), exports);
@@ -1 +1,2 @@
1
1
  export * from './requirement.module';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../packages/back-end/src/nest/modules/requirement/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC"}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./requirement.module"), exports);
@@ -0,0 +1,3 @@
1
+ export declare class RequirementModule {
2
+ }
3
+ //# sourceMappingURL=requirement.module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requirement.module.d.ts","sourceRoot":"","sources":["../../../../../../../packages/back-end/src/nest/modules/requirement/requirement.module.ts"],"names":[],"mappings":"AAgBA,qBAuCa,iBAAiB;CAAG"}
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RequirementModule = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const common_1 = require("@nestjs/common");
6
+ const config_1 = require("@nestjs/config");
7
+ const core_1 = require("@nestjs/core");
8
+ const throttler_1 = require("@nestjs/throttler");
9
+ const nest_1 = require("@ask-ell/nest");
10
+ const setup_1 = require("@sentry/nestjs/setup");
11
+ const keyv_store_adapter_factory_1 = require("../../../keyv.store.adapter.factory");
12
+ const secrets_1 = require("../../../secrets");
13
+ const health_1 = require("../health");
14
+ const interceptors_1 = require("../../interceptors");
15
+ const filters_1 = require("../../filters");
16
+ const configModuleLogger = nest_1.NestLogger.fromClass(config_1.ConfigModule);
17
+ let RequirementModule = (() => {
18
+ let _classDecorators = [(0, common_1.Module)({
19
+ imports: [
20
+ health_1.HealthModule,
21
+ setup_1.SentryModule.forRoot(),
22
+ throttler_1.ThrottlerModule.forRoot([
23
+ {
24
+ ttl: 60000,
25
+ limit: 30,
26
+ },
27
+ ]),
28
+ config_1.ConfigModule.forRoot({
29
+ isGlobal: true,
30
+ load: [
31
+ (0, secrets_1.dockerSecretGetter)(configModuleLogger),
32
+ (0, secrets_1.localSecretGetter)(configModuleLogger),
33
+ ],
34
+ }),
35
+ ],
36
+ providers: [
37
+ keyv_store_adapter_factory_1.KeyvStoreAdapterFactory,
38
+ {
39
+ provide: core_1.APP_GUARD,
40
+ useClass: throttler_1.ThrottlerGuard,
41
+ },
42
+ {
43
+ provide: core_1.APP_INTERCEPTOR,
44
+ useClass: interceptors_1.ResponseFormatInterceptor,
45
+ },
46
+ {
47
+ provide: core_1.APP_FILTER,
48
+ useClass: filters_1.HttpExceptionFilter,
49
+ },
50
+ {
51
+ provide: core_1.APP_FILTER,
52
+ useClass: setup_1.SentryGlobalFilter,
53
+ },
54
+ ],
55
+ exports: [config_1.ConfigModule, setup_1.SentryModule, keyv_store_adapter_factory_1.KeyvStoreAdapterFactory],
56
+ })];
57
+ let _classDescriptor;
58
+ let _classExtraInitializers = [];
59
+ let _classThis;
60
+ var RequirementModule = class {
61
+ static { _classThis = this; }
62
+ static {
63
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
64
+ tslib_1.__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
65
+ RequirementModule = _classThis = _classDescriptor.value;
66
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
67
+ tslib_1.__runInitializers(_classThis, _classExtraInitializers);
68
+ }
69
+ };
70
+ return RequirementModule = _classThis;
71
+ })();
72
+ exports.RequirementModule = RequirementModule;
@@ -1,2 +1,3 @@
1
1
  export * from './move-keyv-data.program';
2
2
  export * from './update-dependencies-versions.program';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/back-end/src/scripts/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,wCAAwC,CAAC"}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./move-keyv-data.program"), exports);
5
+ tslib_1.__exportStar(require("./update-dependencies-versions.program"), exports);
@@ -0,0 +1,6 @@
1
+ import { Program, ProgramExecutionOptions } from '@ask-ell/node';
2
+ export declare class MoveKeyvDataProgram extends Program {
3
+ constructor();
4
+ execute({ logger, arguments: { origin, target }, prompts: { confirm }, }: ProgramExecutionOptions): Promise<void>;
5
+ }
6
+ //# sourceMappingURL=move-keyv-data.program.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"move-keyv-data.program.d.ts","sourceRoot":"","sources":["../../../../../packages/back-end/src/scripts/move-keyv-data.program.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AASjE,qBAAa,mBAAoB,SAAQ,OAAO;;IAmBxC,OAAO,CAAC,EACZ,MAAM,EACN,SAAS,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAC7B,OAAO,EAAE,EAAE,OAAO,EAAE,GACrB,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC;CAsD3C"}
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MoveKeyvDataProgram = void 0;
4
+ const core_1 = require("@ask-ell/core");
5
+ const node_1 = require("@ask-ell/node");
6
+ const nest_1 = require("@ask-ell/nest");
7
+ const pg_1 = require("pg");
8
+ class MoveKeyvDataProgram extends node_1.Program {
9
+ constructor() {
10
+ super({
11
+ arguments: [
12
+ {
13
+ name: 'origin',
14
+ description: 'Origin Postgres database URI',
15
+ required: true,
16
+ },
17
+ {
18
+ name: 'target',
19
+ description: 'Target Postgres database URI',
20
+ required: true,
21
+ },
22
+ ],
23
+ logger: nest_1.NestLogger.fromClass(MoveKeyvDataProgram),
24
+ });
25
+ }
26
+ async execute({ logger, arguments: { origin, target }, prompts: { confirm }, }) {
27
+ const originPostgresClient = new pg_1.Client(origin);
28
+ const targetPostgresClient = new pg_1.Client(target);
29
+ logger.log('Reading databases...');
30
+ await Promise.all([
31
+ originPostgresClient.connect(),
32
+ targetPostgresClient.connect(),
33
+ ]);
34
+ try {
35
+ const { rows } = await originPostgresClient.query('SELECT * FROM keyv');
36
+ const rowsCount = rows.length;
37
+ logger.log(`You're going to insert ${rowsCount} keyv entries from the original database to the target database.`);
38
+ const confirmed = await confirm('Are you sure you want to proceed?');
39
+ if (confirmed) {
40
+ logger.log('Inserting entries into the target database...');
41
+ const incrementor = new core_1.PercentageIncrementor(rowsCount);
42
+ incrementor.onIncrement(({ achivmentOnPercent }) => {
43
+ logger.log(`Progress: ${achivmentOnPercent}%`);
44
+ });
45
+ for (const { key, value } of rows) {
46
+ await targetPostgresClient.query('INSERT INTO keyv (key, value) VALUES ($1, $2)', [key, value]);
47
+ incrementor.increment();
48
+ }
49
+ logger.log(`${rowsCount} entries inserted into the target database.`);
50
+ logger.log('Migration completed successfully.');
51
+ }
52
+ else {
53
+ logger.log('Migration cancelled.');
54
+ }
55
+ }
56
+ finally {
57
+ await Promise.all([
58
+ originPostgresClient.end(),
59
+ targetPostgresClient.end(),
60
+ ]);
61
+ logger.log('Database connections closed.');
62
+ }
63
+ }
64
+ }
65
+ exports.MoveKeyvDataProgram = MoveKeyvDataProgram;
@@ -0,0 +1,32 @@
1
+ import { StringDictionnary } from '@ask-ell/core';
2
+ import { ProgramExecutionOptions, Program } from '@ask-ell/node';
3
+ export type PackageContent = {
4
+ version: string;
5
+ dependencies: StringDictionnary;
6
+ devDependencies: StringDictionnary;
7
+ };
8
+ export type UpdateDependenciesVersionsProgramParams = {
9
+ organisationPackagePrefix: string;
10
+ blackListedPackages: string[];
11
+ };
12
+ export type WorkspaceDependenciesMapElement = {
13
+ id: string;
14
+ dependencies: string[];
15
+ source: PackageContent;
16
+ };
17
+ export type WorkspaceDependenciesMap = {
18
+ [id: string]: WorkspaceDependenciesMapElement;
19
+ };
20
+ export declare class UpdateDependenciesVersionsProgram extends Program {
21
+ private organisationPackagePrefix;
22
+ private blackListedPackages;
23
+ private workspaceDependenciesMap;
24
+ constructor({ organisationPackagePrefix, blackListedPackages, }: UpdateDependenciesVersionsProgramParams);
25
+ execute({ logger, arguments: { targetedPackage }, }: ProgramExecutionOptions): Promise<void>;
26
+ getWorkspaceDependenciesMap(): WorkspaceDependenciesMap;
27
+ private isTargetedPackage;
28
+ private isAOrganisationPackage;
29
+ private isBlackListed;
30
+ private isNotBlackListed;
31
+ }
32
+ //# sourceMappingURL=update-dependencies-versions.program.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-dependencies-versions.program.d.ts","sourceRoot":"","sources":["../../../../../packages/back-end/src/scripts/update-dependencies-versions.program.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,iBAAiB,EAElB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,uBAAuB,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAoBjE,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,iBAAiB,CAAC;IAChC,eAAe,EAAE,iBAAiB,CAAC;CACpC,CAAC;AAcF,MAAM,MAAM,uCAAuC,GAAG;IACpD,yBAAyB,EAAE,MAAM,CAAC;IAClC,mBAAmB,EAAE,MAAM,EAAE,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,+BAA+B,GAAG;IAC5C,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,MAAM,EAAE,cAAc,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,CAAC,EAAE,EAAE,MAAM,GAAG,+BAA+B,CAAC;CAC/C,CAAC;AAEF,qBAAa,iCAAkC,SAAQ,OAAO;IAC5D,OAAO,CAAC,yBAAyB,CAAS;IAC1C,OAAO,CAAC,mBAAmB,CAAW;IACtC,OAAO,CAAC,wBAAwB,CACK;gBAEzB,EACV,yBAAyB,EACzB,mBAAmB,GACpB,EAAE,uCAAuC;IAcpC,OAAO,CAAC,EACZ,MAAM,EACN,SAAS,EAAE,EAAE,eAAe,EAAE,GAC/B,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC;IAqD1C,2BAA2B,IAAI,wBAAwB;IA2CvD,OAAO,CAAC,iBAAiB,CAMrB;IAEJ,OAAO,CAAC,sBAAsB;IAI9B,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,gBAAgB;CAGzB"}
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UpdateDependenciesVersionsProgram = void 0;
4
+ const core_1 = require("@ask-ell/core");
5
+ const nest_1 = require("@ask-ell/nest");
6
+ const node_1 = require("@ask-ell/node");
7
+ const node_child_process_1 = require("node:child_process");
8
+ const node_fs_1 = require("node:fs");
9
+ const promises_1 = require("node:fs/promises");
10
+ const node_path_1 = require("node:path");
11
+ const PROJECT_ROOT_PATH = process.env['PWD'];
12
+ function makeSureThatProjectRootPathIsDefined(projectRootPath) {
13
+ if (!projectRootPath) {
14
+ throw new core_1.UnknownEnvironmentVariableError('PWD');
15
+ }
16
+ }
17
+ makeSureThatProjectRootPathIsDefined(PROJECT_ROOT_PATH);
18
+ const NX_GRAPH_FILE_PATH = (0, node_path_1.join)(PROJECT_ROOT_PATH, 'tmp/graph.json');
19
+ const ROOT_PACKAGE_FILE_PATH = (0, node_path_1.join)(PROJECT_ROOT_PATH, `package.json`);
20
+ const ROOT_PACKAGE_CONTENT = require(ROOT_PACKAGE_FILE_PATH);
21
+ function getOrganisationPackageFile(packageId) {
22
+ makeSureThatProjectRootPathIsDefined(PROJECT_ROOT_PATH);
23
+ const packageFilePath = (0, node_path_1.join)(PROJECT_ROOT_PATH, `packages/${packageId}/package.json`);
24
+ return require(packageFilePath);
25
+ }
26
+ class UpdateDependenciesVersionsProgram extends node_1.Program {
27
+ organisationPackagePrefix;
28
+ blackListedPackages;
29
+ workspaceDependenciesMap = this.getWorkspaceDependenciesMap();
30
+ constructor({ organisationPackagePrefix, blackListedPackages, }) {
31
+ super({
32
+ logger: nest_1.NestLogger.fromClass(UpdateDependenciesVersionsProgram),
33
+ arguments: [
34
+ {
35
+ name: 'targetedPackage',
36
+ description: 'Target package',
37
+ },
38
+ ],
39
+ });
40
+ this.organisationPackagePrefix = organisationPackagePrefix;
41
+ this.blackListedPackages = blackListedPackages;
42
+ }
43
+ async execute({ logger, arguments: { targetedPackage }, }) {
44
+ const workspaceDependenciesMapElements = Object.values(this.workspaceDependenciesMap).filter(({ id }) => this.isTargetedPackage(targetedPackage)(id));
45
+ for (const { id, dependencies, source, } of workspaceDependenciesMapElements) {
46
+ logger.log(`package.json file updating for project "${id}"...`);
47
+ if (!PROJECT_ROOT_PATH) {
48
+ throw new core_1.UnknownEnvironmentVariableError('PWD');
49
+ }
50
+ const packagePath = (0, node_path_1.join)(PROJECT_ROOT_PATH, `dist/packages/${id}`);
51
+ await (0, promises_1.mkdir)(packagePath, { recursive: true });
52
+ const packageFilePath = (0, node_path_1.join)(PROJECT_ROOT_PATH, 'package.json');
53
+ const packageFileContent = { ...source };
54
+ if (dependencies.length && !packageFileContent.dependencies) {
55
+ packageFileContent.dependencies = {};
56
+ }
57
+ dependencies.forEach((dependency) => {
58
+ const versionTag = this.isAOrganisationPackage(dependency)
59
+ ? `^${this.workspaceDependenciesMap[dependency.replace(this.organisationPackagePrefix, '')].source.version}`
60
+ : ROOT_PACKAGE_CONTENT.devDependencies[dependency];
61
+ packageFileContent.dependencies[dependency] = versionTag;
62
+ });
63
+ (0, node_fs_1.writeFileSync)(packageFilePath, JSON.stringify(packageFileContent, null, 2) + '\n');
64
+ console.log(`package.json file updated for project "${id}"`);
65
+ }
66
+ console.log('Package files updated.');
67
+ }
68
+ getWorkspaceDependenciesMap() {
69
+ const workspaceDependenciesMap = {};
70
+ const nxGraphResult = (0, node_child_process_1.spawnSync)('npx', ['nx', 'graph', '--file', NX_GRAPH_FILE_PATH], { stdio: 'inherit' });
71
+ if (nxGraphResult.status !== 0) {
72
+ throw new Error(`"nx graph" failed with status ${nxGraphResult.status}`);
73
+ }
74
+ const nxGraph = require(NX_GRAPH_FILE_PATH);
75
+ const packageIds = Object.entries(nxGraph.graph.dependencies).map(([packageId]) => packageId);
76
+ for (const packageId of packageIds.filter(this.isNotBlackListed)) {
77
+ console.log(`Scanning dependencies for package ${packageId}...`);
78
+ const packageFileContent = getOrganisationPackageFile(packageId);
79
+ const dependencies = packageFileContent.dependencies
80
+ ? Object.entries(packageFileContent.dependencies).map(([dependency]) => dependency)
81
+ : [];
82
+ workspaceDependenciesMap[packageId] = {
83
+ id: packageId,
84
+ dependencies: [],
85
+ source: packageFileContent,
86
+ };
87
+ if (packageFileContent.dependencies) {
88
+ for (const dependency of dependencies) {
89
+ workspaceDependenciesMap[packageId].dependencies.push(dependency);
90
+ }
91
+ }
92
+ }
93
+ console.log('Dependencies scan done.');
94
+ return workspaceDependenciesMap;
95
+ }
96
+ isTargetedPackage = (targetPackageId) => (packageId) => {
97
+ if (targetPackageId) {
98
+ return packageId === targetPackageId;
99
+ }
100
+ return true;
101
+ };
102
+ isAOrganisationPackage(packageName) {
103
+ return packageName.includes(this.organisationPackagePrefix);
104
+ }
105
+ isBlackListed(packageId) {
106
+ return this.blackListedPackages.includes(packageId);
107
+ }
108
+ isNotBlackListed(packageId) {
109
+ return !this.isBlackListed(packageId);
110
+ }
111
+ }
112
+ exports.UpdateDependenciesVersionsProgram = UpdateDependenciesVersionsProgram;
@@ -0,0 +1,3 @@
1
+ import { FileSecretGetter } from './file.secret.getter';
2
+ export declare const dockerSecretGetter: FileSecretGetter;
3
+ //# sourceMappingURL=docker.secret.getter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docker.secret.getter.d.ts","sourceRoot":"","sources":["../../../../../packages/back-end/src/secrets/docker.secret.getter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAoB,MAAM,sBAAsB,CAAC;AAI1E,eAAO,MAAM,kBAAkB,EAAE,gBAIhC,CAAC"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.dockerSecretGetter = void 0;
4
+ const file_secret_getter_1 = require("./file.secret.getter");
5
+ const DOCKER_SECRETS_DIRECTORY = '/run/secrets';
6
+ exports.dockerSecretGetter = (0, file_secret_getter_1.fileSecretGetter)(DOCKER_SECRETS_DIRECTORY)('Application is not running inside Docker container. Docker secrets will be unavailable.');
@@ -0,0 +1,5 @@
1
+ import { ILogger } from '@ask-ell/core';
2
+ import { SecretGetter } from './types';
3
+ export type FileSecretGetter = (logger: ILogger) => SecretGetter;
4
+ export declare const fileSecretGetter: (rootDirectoryPath: string) => (warningMessage: string) => FileSecretGetter;
5
+ //# sourceMappingURL=file.secret.getter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file.secret.getter.d.ts","sourceRoot":"","sources":["../../../../../packages/back-end/src/secrets/file.secret.getter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,MAAM,MAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE,OAAO,KAAK,YAAY,CAAC;AAEjE,eAAO,MAAM,gBAAgB,GAC1B,mBAAmB,MAAM,MACzB,gBAAgB,MAAM,KAAG,gBAgBzB,CAAC"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.fileSecretGetter = void 0;
4
+ const node_fs_1 = require("node:fs");
5
+ const node_path_1 = require("node:path");
6
+ const fileSecretGetter = (rootDirectoryPath) => (warningMessage) => (logger) => () => {
7
+ const isDirectoryExists = (0, node_fs_1.existsSync)(rootDirectoryPath);
8
+ if (!isDirectoryExists) {
9
+ logger.warn(warningMessage);
10
+ return {};
11
+ }
12
+ return (0, node_fs_1.readdirSync)(rootDirectoryPath, { withFileTypes: true })
13
+ .filter((entry) => entry.isFile())
14
+ .reduce((secrets, entry) => {
15
+ const filePath = (0, node_path_1.join)(rootDirectoryPath, entry.name);
16
+ secrets[entry.name] = (0, node_fs_1.readFileSync)(filePath, 'utf-8').trim();
17
+ return secrets;
18
+ }, {});
19
+ };
20
+ exports.fileSecretGetter = fileSecretGetter;
@@ -1,2 +1,3 @@
1
1
  export * from './docker.secret.getter';
2
2
  export * from './local.secret.getter';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/back-end/src/secrets/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./docker.secret.getter"), exports);
5
+ tslib_1.__exportStar(require("./local.secret.getter"), exports);