@ask-ell/back-end 0.2.5 → 1.0.0
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/CHANGELOG.md +16 -0
- package/package.json +2 -2
- package/src/http/index.d.ts +2 -0
- package/src/http/index.d.ts.map +1 -0
- package/src/http/index.js +4 -0
- package/src/http/types.d.ts +5 -0
- package/src/http/types.d.ts.map +1 -0
- package/src/http/types.js +2 -0
- package/src/{index.ts → index.d.ts} +2 -1
- package/src/index.d.ts.map +1 -0
- package/src/index.js +10 -0
- package/src/keyv/index.d.ts +3 -0
- package/src/keyv/index.d.ts.map +1 -0
- package/src/keyv/index.js +5 -0
- package/src/keyv/keyv.store.adapter.factory.d.ts +8 -0
- package/src/keyv/keyv.store.adapter.factory.d.ts.map +1 -0
- package/src/keyv/keyv.store.adapter.factory.interface.d.ts +8 -0
- package/src/keyv/keyv.store.adapter.factory.interface.d.ts.map +1 -0
- package/src/keyv/keyv.store.adapter.factory.interface.js +2 -0
- package/src/keyv/keyv.store.adapter.factory.js +28 -0
- package/src/nest/add-ons/add-on.interface.d.ts +5 -0
- package/src/nest/add-ons/add-on.interface.d.ts.map +1 -0
- package/src/nest/add-ons/add-on.interface.js +2 -0
- package/src/nest/add-ons/add-on.wrapper.d.ts +11 -0
- package/src/nest/add-ons/add-on.wrapper.d.ts.map +1 -0
- package/src/nest/add-ons/add-on.wrapper.js +29 -0
- package/src/nest/add-ons/implementations/security/security.add-on.d.ts +6 -0
- package/src/nest/add-ons/implementations/security/security.add-on.d.ts.map +1 -0
- package/src/nest/add-ons/implementations/security/security.add-on.js +16 -0
- package/src/nest/add-ons/implementations/sentry/sentry.add-on.d.ts +8 -0
- package/src/nest/add-ons/implementations/sentry/sentry.add-on.d.ts.map +1 -0
- package/src/nest/add-ons/implementations/sentry/{sentry.add-on.interface.ts → sentry.add-on.interface.d.ts} +3 -5
- package/src/nest/add-ons/implementations/sentry/sentry.add-on.interface.d.ts.map +1 -0
- package/src/nest/add-ons/implementations/sentry/sentry.add-on.interface.js +2 -0
- package/src/nest/add-ons/implementations/sentry/sentry.add-on.js +19 -0
- package/src/nest/add-ons/implementations/sentry/sentry.add-on.state.interface.d.ts +6 -0
- package/src/nest/add-ons/implementations/sentry/sentry.add-on.state.interface.d.ts.map +1 -0
- package/src/nest/add-ons/implementations/sentry/sentry.add-on.state.interface.js +2 -0
- package/src/nest/add-ons/implementations/swagger/swagger.add-on.d.ts +10 -0
- package/src/nest/add-ons/implementations/swagger/swagger.add-on.d.ts.map +1 -0
- package/src/nest/add-ons/implementations/swagger/{swagger.add-on.interface.ts → swagger.add-on.interface.d.ts} +3 -5
- package/src/nest/add-ons/implementations/swagger/swagger.add-on.interface.d.ts.map +1 -0
- package/src/nest/add-ons/implementations/swagger/swagger.add-on.interface.js +2 -0
- package/src/nest/add-ons/implementations/swagger/swagger.add-on.js +32 -0
- package/src/nest/add-ons/implementations/swagger/swagger.add-on.state.interface.d.ts +7 -0
- package/src/nest/add-ons/implementations/swagger/swagger.add-on.state.interface.d.ts.map +1 -0
- package/src/nest/add-ons/implementations/swagger/swagger.add-on.state.interface.js +2 -0
- package/src/nest/add-ons/implementations/swagger/{types.ts → types.d.ts} +1 -0
- package/src/nest/add-ons/implementations/swagger/types.d.ts.map +1 -0
- package/src/nest/add-ons/implementations/swagger/types.js +2 -0
- package/src/nest/add-ons/{index.ts → index.d.ts} +1 -0
- package/src/nest/add-ons/index.d.ts.map +1 -0
- package/src/nest/add-ons/index.js +9 -0
- package/src/nest/add-ons/{types.ts → types.d.ts} +3 -3
- package/src/nest/add-ons/types.d.ts.map +1 -0
- package/src/nest/add-ons/types.js +2 -0
- package/src/nest/application.factory.d.ts +9 -0
- package/src/nest/application.factory.d.ts.map +1 -0
- package/src/nest/application.factory.js +15 -0
- package/src/nest/core.module.d.ts +3 -0
- package/src/nest/core.module.d.ts.map +1 -0
- package/src/nest/core.module.js +75 -0
- package/src/nest/dynamic.module.factory.d.ts +5 -0
- package/src/nest/dynamic.module.factory.d.ts.map +1 -0
- package/src/nest/dynamic.module.factory.js +14 -0
- package/src/nest/filters/http.exception.filter.d.ts +5 -0
- package/src/nest/filters/http.exception.filter.d.ts.map +1 -0
- package/src/nest/filters/http.exception.filter.js +32 -0
- package/src/nest/filters/{index.ts → index.d.ts} +1 -0
- package/src/nest/filters/index.d.ts.map +1 -0
- package/src/nest/filters/index.js +4 -0
- package/src/nest/{index.ts → index.d.ts} +3 -2
- package/src/nest/index.d.ts.map +1 -0
- package/src/nest/index.js +9 -0
- package/src/nest/interceptors/error.interceptor.d.ts +11 -0
- package/src/nest/interceptors/error.interceptor.d.ts.map +1 -0
- package/src/nest/interceptors/error.interceptor.js +17 -0
- package/src/nest/interceptors/{index.ts → index.d.ts} +1 -0
- package/src/nest/interceptors/index.d.ts.map +1 -0
- package/src/nest/interceptors/index.js +5 -0
- package/src/nest/interceptors/response.format.interceptor.d.ts +7 -0
- package/src/nest/interceptors/response.format.interceptor.d.ts.map +1 -0
- package/src/nest/interceptors/response.format.interceptor.js +30 -0
- package/src/nest/modules/health/health.module.d.ts +5 -0
- package/src/nest/modules/health/health.module.d.ts.map +1 -0
- package/src/nest/modules/health/health.module.js +32 -0
- package/src/nest/modules/health/index.d.ts +2 -0
- package/src/nest/modules/health/index.d.ts.map +1 -0
- package/src/nest/modules/health/index.js +4 -0
- package/src/nest/modules/health/middlewares/{index.ts → index.d.ts} +1 -0
- package/src/nest/modules/health/middlewares/index.d.ts.map +1 -0
- package/src/nest/modules/health/middlewares/index.js +4 -0
- package/src/nest/modules/health/middlewares/ping.middleware.d.ts +6 -0
- package/src/nest/modules/health/middlewares/ping.middleware.d.ts.map +1 -0
- package/src/nest/modules/health/middlewares/ping.middleware.js +26 -0
- package/src/nest/modules/index.d.ts +2 -0
- package/src/nest/modules/index.d.ts.map +1 -0
- package/src/nest/modules/index.js +4 -0
- package/src/scripts/{index.ts → index.d.ts} +1 -0
- package/src/scripts/index.d.ts.map +1 -0
- package/src/scripts/index.js +5 -0
- package/src/scripts/move-keyv-data.program.d.ts +6 -0
- package/src/scripts/move-keyv-data.program.d.ts.map +1 -0
- package/src/scripts/move-keyv-data.program.js +65 -0
- package/src/scripts/update-dependencies-versions.program.d.ts +32 -0
- package/src/scripts/update-dependencies-versions.program.d.ts.map +1 -0
- package/src/scripts/update-dependencies-versions.program.js +112 -0
- package/src/secrets/docker.secret.getter.d.ts +3 -0
- package/src/secrets/docker.secret.getter.d.ts.map +1 -0
- package/src/secrets/docker.secret.getter.js +6 -0
- package/src/secrets/file.secret.getter.d.ts +5 -0
- package/src/secrets/file.secret.getter.d.ts.map +1 -0
- package/src/secrets/file.secret.getter.js +20 -0
- package/src/secrets/{index.ts → index.d.ts} +1 -0
- package/src/secrets/index.d.ts.map +1 -0
- package/src/secrets/index.js +5 -0
- package/src/secrets/local.secret.getter.d.ts +3 -0
- package/src/secrets/local.secret.getter.d.ts.map +1 -0
- package/src/secrets/local.secret.getter.js +6 -0
- package/src/secrets/{types.ts → types.d.ts} +1 -0
- package/src/secrets/types.d.ts.map +1 -0
- package/src/secrets/types.js +2 -0
- package/src/tmp.d.ts +4 -0
- package/src/tmp.d.ts.map +1 -0
- package/src/tmp.js +16 -0
- package/.spec.swcrc +0 -22
- package/dist/tsconfig.lib.tsbuildinfo +0 -1
- package/eslint.config.mjs +0 -22
- package/jest.config.ts +0 -20
- package/project.json +0 -26
- package/src/http/index.ts +0 -1
- package/src/http/types.ts +0 -4
- package/src/keyv.store.adapter.factory.ts +0 -43
- package/src/nest/add-ons/add-on.interface.ts +0 -5
- package/src/nest/add-ons/add-on.wrapper.ts +0 -31
- package/src/nest/add-ons/implementations/security/security.add-on.ts +0 -17
- package/src/nest/add-ons/implementations/sentry/sentry.add-on.state.interface.ts +0 -5
- package/src/nest/add-ons/implementations/sentry/sentry.add-on.ts +0 -24
- package/src/nest/add-ons/implementations/swagger/swagger.add-on.state.interface.ts +0 -7
- package/src/nest/add-ons/implementations/swagger/swagger.add-on.ts +0 -59
- package/src/nest/application.base.ts +0 -18
- package/src/nest/application.factory.ts +0 -23
- package/src/nest/filters/http.exception.filter.ts +0 -23
- package/src/nest/interceptors/error.interceptor.ts +0 -25
- package/src/nest/interceptors/response.format.interceptor.ts +0 -29
- package/src/nest/modules/health/health.module.ts +0 -20
- package/src/nest/modules/health/index.ts +0 -1
- package/src/nest/modules/health/middlewares/ping.middleware.ts +0 -9
- package/src/nest/modules/index.ts +0 -2
- package/src/nest/modules/requirement/index.ts +0 -1
- package/src/nest/modules/requirement/requirement.module.ts +0 -56
- package/src/scripts/move-keyv-data.program.ts +0 -88
- package/src/scripts/update-dependencies-versions.program.ts +0 -201
- package/src/secrets/docker.secret.getter.ts +0 -9
- package/src/secrets/file.secret.getter.ts +0 -27
- package/src/secrets/local.secret.getter.ts +0 -9
- package/src/tmp.ts +0 -15
- package/tsconfig.json +0 -16
- package/tsconfig.lib.json +0 -18
- package/tsconfig.spec.json +0 -23
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# @ask-ell/back-end
|
|
2
2
|
|
|
3
|
+
## 1.0.0
|
|
4
|
+
|
|
5
|
+
### Major Changes
|
|
6
|
+
|
|
7
|
+
- [`efd4b29`](https://github.com/ask-ell/stacks/commit/efd4b2958eaa6c597db05fc7e18a5c6b18530431) Thanks [@timbitwin](https://github.com/timbitwin)! - CoreModule created instead of ApplicationBase class
|
|
8
|
+
|
|
9
|
+
## 0.2.6
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- [`a15edf6`](https://github.com/ask-ell/stacks/commit/a15edf6a2deb914cadfbbaa3f95b45f7986dcec0) Thanks [@timbitwin](https://github.com/timbitwin)! - Forced publish
|
|
14
|
+
- Updated dependencies [[`a15edf6`](https://github.com/ask-ell/stacks/commit/a15edf6a2deb914cadfbbaa3f95b45f7986dcec0)]:
|
|
15
|
+
- @ask-ell/core@1.3.10
|
|
16
|
+
- @ask-ell/nest@0.0.17
|
|
17
|
+
- @ask-ell/node@0.1.3
|
|
18
|
+
|
|
3
19
|
## 0.2.5
|
|
4
20
|
|
|
5
21
|
### Patch Changes
|
package/package.json
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/back-end/src/http/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../packages/back-end/src/http/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,CAAC,IAAI,GAAG,OAAO,IAAI;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,IAAI,CAAC;CACb,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/back-end/src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,mCAAmC,CAAC"}
|
package/src/index.js
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
/**
|
|
5
|
+
* @module @ask-ell/back-end
|
|
6
|
+
*/
|
|
7
|
+
tslib_1.__exportStar(require("./scripts"), exports);
|
|
8
|
+
tslib_1.__exportStar(require("./http"), exports);
|
|
9
|
+
tslib_1.__exportStar(require("./nest"), exports);
|
|
10
|
+
tslib_1.__exportStar(require("./keyv/keyv.store.adapter.factory"), exports);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/back-end/src/keyv/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,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("./keyv.store.adapter.factory"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./keyv.store.adapter.factory.interface"), exports);
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { KeyvStoreAdapter } from 'keyv';
|
|
2
|
+
import { CreateKeyvStoreAdapterOptions, IKeyvStoreAdapterFactory } from './keyv.store.adapter.factory.interface';
|
|
3
|
+
export declare class KeyvStoreAdapterFactory implements IKeyvStoreAdapterFactory {
|
|
4
|
+
private logger;
|
|
5
|
+
create(options?: CreateKeyvStoreAdapterOptions): KeyvStoreAdapter;
|
|
6
|
+
private getKeyvStoreAdapter;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=keyv.store.adapter.factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keyv.store.adapter.factory.d.ts","sourceRoot":"","sources":["../../../../../packages/back-end/src/keyv/keyv.store.adapter.factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,MAAM,CAAC;AAQxC,OAAO,EACL,6BAA6B,EAC7B,wBAAwB,EACzB,MAAM,wCAAwC,CAAC;AAEhD,qBAAa,uBAAwB,YAAW,wBAAwB;IACtE,OAAO,CAAC,MAAM,CAA0D;IAExE,MAAM,CAAC,OAAO,CAAC,EAAE,6BAA6B,GAAG,gBAAgB;IAQjE,OAAO,CAAC,mBAAmB;CAiB5B"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { KeyvStoreAdapter } from 'keyv';
|
|
2
|
+
export type CreateKeyvStoreAdapterOptions = {
|
|
3
|
+
postgresUri?: string;
|
|
4
|
+
};
|
|
5
|
+
export interface IKeyvStoreAdapterFactory {
|
|
6
|
+
create(options?: CreateKeyvStoreAdapterOptions): KeyvStoreAdapter;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=keyv.store.adapter.factory.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keyv.store.adapter.factory.interface.d.ts","sourceRoot":"","sources":["../../../../../packages/back-end/src/keyv/keyv.store.adapter.factory.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,MAAM,CAAC;AAExC,MAAM,MAAM,6BAA6B,GAAG;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,WAAW,wBAAwB;IACvC,MAAM,CAAC,OAAO,CAAC,EAAE,6BAA6B,GAAG,gBAAgB,CAAC;CACnE"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.KeyvStoreAdapterFactory = void 0;
|
|
4
|
+
const sqlite_1 = require("@keyv/sqlite");
|
|
5
|
+
const postgres_1 = require("@keyv/postgres");
|
|
6
|
+
const nest_1 = require("@ask-ell/nest");
|
|
7
|
+
const node_path_1 = require("node:path");
|
|
8
|
+
const tmp_1 = require("../tmp");
|
|
9
|
+
class KeyvStoreAdapterFactory {
|
|
10
|
+
logger = nest_1.NestLogger.fromClass(KeyvStoreAdapterFactory);
|
|
11
|
+
create(options) {
|
|
12
|
+
const adapter = this.getKeyvStoreAdapter(options);
|
|
13
|
+
this.logger.log(`Connected to database with adapter "${adapter.constructor.name}"`);
|
|
14
|
+
return adapter;
|
|
15
|
+
}
|
|
16
|
+
getKeyvStoreAdapter(options) {
|
|
17
|
+
const { postgresUri } = options ?? { postgresUri: null };
|
|
18
|
+
if (postgresUri) {
|
|
19
|
+
return new postgres_1.default({
|
|
20
|
+
uri: postgresUri,
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
(0, tmp_1.createTmpFolder)(this.logger);
|
|
24
|
+
const localDatabaseFilePath = (0, node_path_1.join)(tmp_1.TMP_FOLDER_PATH, 'database.sqlite');
|
|
25
|
+
return new sqlite_1.default(localDatabaseFilePath);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
exports.KeyvStoreAdapterFactory = KeyvStoreAdapterFactory;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"add-on.interface.d.ts","sourceRoot":"","sources":["../../../../../../packages/back-end/src/nest/add-ons/add-on.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,MAAM,WAAW,MAAM,CAAC,CAAC;IACvB,KAAK,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;CAC/C"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { INestApplication } from '@nestjs/common';
|
|
2
|
+
import { IAddOn } from './add-on.interface';
|
|
3
|
+
import { AddOnWrapperParams } from './types';
|
|
4
|
+
export declare class AddOnWrapper<T> implements IAddOn<T> {
|
|
5
|
+
private params;
|
|
6
|
+
private implementations;
|
|
7
|
+
constructor(params: AddOnWrapperParams);
|
|
8
|
+
apply(application: INestApplication<T>): void;
|
|
9
|
+
private appendImplementations;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=add-on.wrapper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"add-on.wrapper.d.ts","sourceRoot":"","sources":["../../../../../../packages/back-end/src/nest/add-ons/add-on.wrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAI7C,qBAAa,YAAY,CAAC,CAAC,CAAE,YAAW,MAAM,CAAC,CAAC,CAAC;IAGnC,OAAO,CAAC,MAAM;IAF1B,OAAO,CAAC,eAAe,CAAsC;gBAEzC,MAAM,EAAE,kBAAkB;IAI9C,KAAK,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,IAAI;IAM7C,OAAO,CAAC,qBAAqB;CAS9B"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AddOnWrapper = void 0;
|
|
4
|
+
const security_add_on_1 = require("./implementations/security/security.add-on");
|
|
5
|
+
const swagger_add_on_1 = require("./implementations/swagger/swagger.add-on");
|
|
6
|
+
const sentry_add_on_1 = require("./implementations/sentry/sentry.add-on");
|
|
7
|
+
class AddOnWrapper {
|
|
8
|
+
params;
|
|
9
|
+
implementations = [new security_add_on_1.SecurityAddOn()];
|
|
10
|
+
constructor(params) {
|
|
11
|
+
this.params = params;
|
|
12
|
+
this.appendImplementations();
|
|
13
|
+
}
|
|
14
|
+
apply(application) {
|
|
15
|
+
this.implementations.forEach((addOn) => {
|
|
16
|
+
addOn.apply(application);
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
appendImplementations() {
|
|
20
|
+
const { sentry, swagger } = this.params;
|
|
21
|
+
if (swagger) {
|
|
22
|
+
this.implementations.push(new swagger_add_on_1.SwaggerAddon(swagger));
|
|
23
|
+
}
|
|
24
|
+
if (sentry) {
|
|
25
|
+
this.implementations.push(new sentry_add_on_1.SentryAddon(sentry));
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
exports.AddOnWrapper = AddOnWrapper;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"security.add-on.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/back-end/src/nest/add-ons/implementations/security/security.add-on.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAkB,MAAM,gBAAgB,CAAC;AAGlE,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAEhD,qBAAa,aAAa,CAAC,CAAC,CAAE,YAAW,MAAM,CAAC,CAAC,CAAC;IAChD,KAAK,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,IAAI;CAU9C"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SecurityAddOn = void 0;
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
|
+
const helmet_1 = require("helmet");
|
|
6
|
+
class SecurityAddOn {
|
|
7
|
+
apply(application) {
|
|
8
|
+
application.enableCors();
|
|
9
|
+
application.use((0, helmet_1.default)());
|
|
10
|
+
application.useGlobalPipes(new common_1.ValidationPipe({
|
|
11
|
+
transform: true,
|
|
12
|
+
whitelist: false,
|
|
13
|
+
}));
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.SecurityAddOn = SecurityAddOn;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Entity, type IResult } from '@ask-ell/core';
|
|
2
|
+
import { ISentryAddOnState } from './sentry.add-on.state.interface';
|
|
3
|
+
import { ISentryAddOn } from './sentry.add-on.interface';
|
|
4
|
+
export declare class SentryAddon<T> extends Entity<ISentryAddOnState> implements ISentryAddOn<T> {
|
|
5
|
+
checkStateValidity(): IResult<void>;
|
|
6
|
+
apply(): void;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=sentry.add-on.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sentry.add-on.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/back-end/src/nest/add-ons/implementations/sentry/sentry.add-on.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,OAAO,EAAM,MAAM,eAAe,CAAC;AAGzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,qBAAa,WAAW,CAAC,CAAC,CACxB,SAAQ,MAAM,CAAC,iBAAiB,CAChC,YAAW,YAAY,CAAC,CAAC,CAAC;IAE1B,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;IAInC,KAAK,IAAI,IAAI;CASd"}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import { IEntity } from '@ask-ell/core';
|
|
2
|
-
|
|
3
2
|
import { ISentryAddOnState } from './sentry.add-on.state.interface';
|
|
4
3
|
import { IAddOn } from '../../add-on.interface';
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
IAddOn<T> {}
|
|
4
|
+
export interface ISentryAddOn<T> extends IEntity<ISentryAddOnState>, IAddOn<T> {
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=sentry.add-on.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sentry.add-on.interface.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/back-end/src/nest/add-ons/implementations/sentry/sentry.add-on.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAEhD,MAAM,WAAW,YAAY,CAAC,CAAC,CAC7B,SAAQ,OAAO,CAAC,iBAAiB,CAAC,EAChC,MAAM,CAAC,CAAC,CAAC;CAAG"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SentryAddon = void 0;
|
|
4
|
+
const core_1 = require("@ask-ell/core");
|
|
5
|
+
const nest_1 = require("@ask-ell/nest");
|
|
6
|
+
class SentryAddon extends core_1.Entity {
|
|
7
|
+
checkStateValidity() {
|
|
8
|
+
return (0, core_1.ok)();
|
|
9
|
+
}
|
|
10
|
+
apply() {
|
|
11
|
+
const { host, projectId, publicKey } = this.getSnapshot();
|
|
12
|
+
new nest_1.NestSentryConfiguration({
|
|
13
|
+
publicKey,
|
|
14
|
+
host,
|
|
15
|
+
projectId,
|
|
16
|
+
}).init();
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
exports.SentryAddon = SentryAddon;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sentry.add-on.state.interface.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/back-end/src/nest/add-ons/implementations/sentry/sentry.add-on.state.interface.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Entity, type IResult } from '@ask-ell/core';
|
|
2
|
+
import { type INestApplication } from '@nestjs/common';
|
|
3
|
+
import { ISwaggerAddOnState } from './swagger.add-on.state.interface';
|
|
4
|
+
import { ISwaggerAddOn } from './swagger.add-on.interface';
|
|
5
|
+
export declare class SwaggerAddon<T> extends Entity<ISwaggerAddOnState> implements ISwaggerAddOn<T> {
|
|
6
|
+
private logger;
|
|
7
|
+
checkStateValidity(): IResult<void>;
|
|
8
|
+
apply(application: INestApplication<T>): void;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=swagger.add-on.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"swagger.add-on.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/back-end/src/nest/add-ons/implementations/swagger/swagger.add-on.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EAEN,KAAK,OAAO,EAGb,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAOvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAG3D,qBAAa,YAAY,CAAC,CAAC,CACzB,SAAQ,MAAM,CAAC,kBAAkB,CACjC,YAAW,aAAa,CAAC,CAAC,CAAC;IAE3B,OAAO,CAAC,MAAM,CAA+C;IAE7D,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;IAInC,KAAK,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,IAAI;CA6B9C"}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import { IEntity } from '@ask-ell/core';
|
|
2
|
-
|
|
3
2
|
import { ISwaggerAddOnState } from './swagger.add-on.state.interface';
|
|
4
3
|
import { IAddOn } from '../../add-on.interface';
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
IAddOn<T> {}
|
|
4
|
+
export interface ISwaggerAddOn<T> extends IEntity<ISwaggerAddOnState>, IAddOn<T> {
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=swagger.add-on.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"swagger.add-on.interface.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/back-end/src/nest/add-ons/implementations/swagger/swagger.add-on.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAEhD,MAAM,WAAW,aAAa,CAAC,CAAC,CAC9B,SAAQ,OAAO,CAAC,kBAAkB,CAAC,EACjC,MAAM,CAAC,CAAC,CAAC;CAAG"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SwaggerAddon = void 0;
|
|
4
|
+
const core_1 = require("@ask-ell/core");
|
|
5
|
+
const nest_1 = require("@ask-ell/nest");
|
|
6
|
+
const swagger_1 = require("@nestjs/swagger");
|
|
7
|
+
class SwaggerAddon extends core_1.Entity {
|
|
8
|
+
logger = nest_1.NestLogger.fromClass(SwaggerAddon);
|
|
9
|
+
checkStateValidity() {
|
|
10
|
+
return (0, core_1.ok)();
|
|
11
|
+
}
|
|
12
|
+
apply(application) {
|
|
13
|
+
const { title, auths, enabledInProduction } = this.getSnapshot();
|
|
14
|
+
if (!enabledInProduction && !(0, core_1.isOnDevelopmentMode)()) {
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
const documentBuilder = new swagger_1.DocumentBuilder().setTitle(title);
|
|
18
|
+
auths?.forEach((auth) => {
|
|
19
|
+
if (auth === 'bearer') {
|
|
20
|
+
documentBuilder.addBearerAuth();
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
const documentBuild = documentBuilder.build();
|
|
24
|
+
const documentFactory = () => swagger_1.SwaggerModule.createDocument(application, documentBuild);
|
|
25
|
+
swagger_1.SwaggerModule.setup('/swagger', application, documentFactory, {
|
|
26
|
+
customSiteTitle: title,
|
|
27
|
+
jsonDocumentUrl: '/swagger/json',
|
|
28
|
+
});
|
|
29
|
+
this.logger.log('Swagger initialized');
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.SwaggerAddon = SwaggerAddon;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"swagger.add-on.state.interface.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/back-end/src/nest/add-ons/implementations/swagger/swagger.add-on.state.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;IACrB,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/back-end/src/nest/add-ons/implementations/swagger/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,QAAQ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/back-end/src/nest/add-ons/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,SAAS,CAAC;AACxB,cAAc,wDAAwD,CAAC;AACvE,cAAc,0DAA0D,CAAC;AACzE,cAAc,iCAAiC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./add-on.interface"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./add-on.wrapper"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./types"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./implementations/sentry/sentry.add-on.state.interface"), exports);
|
|
8
|
+
tslib_1.__exportStar(require("./implementations/swagger/swagger.add-on.state.interface"), exports);
|
|
9
|
+
tslib_1.__exportStar(require("./implementations/swagger/types"), exports);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ISentryAddOnState } from './implementations/sentry/sentry.add-on.state.interface';
|
|
2
2
|
import { ISwaggerAddOnState } from './implementations/swagger/swagger.add-on.state.interface';
|
|
3
|
-
|
|
4
3
|
export type AddOnWrapperParams = Partial<{
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
swagger: ISwaggerAddOnState;
|
|
5
|
+
sentry: ISentryAddOnState;
|
|
7
6
|
}>;
|
|
7
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../packages/back-end/src/nest/add-ons/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wDAAwD,CAAC;AAC3F,OAAO,EAAE,kBAAkB,EAAE,MAAM,0DAA0D,CAAC;AAE9F,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC;IACvC,OAAO,EAAE,kBAAkB,CAAC;IAC5B,MAAM,EAAE,iBAAiB,CAAC;CAC3B,CAAC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { IEntryNestModule } from '@nestjs/core';
|
|
2
|
+
import { IServerProvider } from '@ask-ell/node';
|
|
3
|
+
import { AddOnWrapperParams } from './add-ons';
|
|
4
|
+
export type NestApplicationFactoryParams = {
|
|
5
|
+
addons: AddOnWrapperParams;
|
|
6
|
+
module: IEntryNestModule;
|
|
7
|
+
};
|
|
8
|
+
export declare function createNestApplication({ module, addons: addonsParams, }: NestApplicationFactoryParams): Promise<IServerProvider>;
|
|
9
|
+
//# sourceMappingURL=application.factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"application.factory.d.ts","sourceRoot":"","sources":["../../../../../packages/back-end/src/nest/application.factory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAe,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,OAAO,EAAgB,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE7D,MAAM,MAAM,4BAA4B,GAAG;IACzC,MAAM,EAAE,kBAAkB,CAAC;IAC3B,MAAM,EAAE,gBAAgB,CAAC;CAC1B,CAAC;AAEF,wBAAsB,qBAAqB,CAAC,EAC1C,MAAM,EACN,MAAM,EAAE,YAAY,GACrB,EAAE,4BAA4B,GAAG,OAAO,CAAC,eAAe,CAAC,CAQzD"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createNestApplication = createNestApplication;
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
|
+
const core_1 = require("@nestjs/core");
|
|
6
|
+
const add_ons_1 = require("./add-ons");
|
|
7
|
+
async function createNestApplication({ module, addons: addonsParams, }) {
|
|
8
|
+
const application = await core_1.NestFactory.create(module, {
|
|
9
|
+
logger: new common_1.ConsoleLogger({
|
|
10
|
+
json: true,
|
|
11
|
+
}),
|
|
12
|
+
});
|
|
13
|
+
new add_ons_1.AddOnWrapper(addonsParams).apply(application);
|
|
14
|
+
return application;
|
|
15
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core.module.d.ts","sourceRoot":"","sources":["../../../../../packages/back-end/src/nest/core.module.ts"],"names":[],"mappings":"AAgBA,qBA0Ca,UAAU;CAAG"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CoreModule = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const common_1 = require("@nestjs/common");
|
|
6
|
+
const core_1 = require("@nestjs/core");
|
|
7
|
+
const setup_1 = require("@sentry/nestjs/setup");
|
|
8
|
+
const throttler_1 = require("@nestjs/throttler");
|
|
9
|
+
const config_1 = require("@nestjs/config");
|
|
10
|
+
const nest_1 = require("@ask-ell/nest");
|
|
11
|
+
const modules_1 = require("./modules");
|
|
12
|
+
const interceptors_1 = require("./interceptors");
|
|
13
|
+
const filters_1 = require("./filters");
|
|
14
|
+
const secrets_1 = require("../secrets");
|
|
15
|
+
const keyv_1 = require("../keyv");
|
|
16
|
+
const configModuleLogger = nest_1.NestLogger.fromClass(config_1.ConfigModule);
|
|
17
|
+
let CoreModule = (() => {
|
|
18
|
+
let _classDecorators = [(0, common_1.Module)({
|
|
19
|
+
imports: [
|
|
20
|
+
modules_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
|
+
{
|
|
38
|
+
provide: core_1.APP_GUARD,
|
|
39
|
+
useClass: throttler_1.ThrottlerGuard,
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
provide: core_1.APP_INTERCEPTOR,
|
|
43
|
+
useClass: interceptors_1.ResponseFormatInterceptor,
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
provide: core_1.APP_FILTER,
|
|
47
|
+
useClass: filters_1.HttpExceptionFilter,
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
provide: core_1.APP_FILTER,
|
|
51
|
+
useClass: setup_1.SentryGlobalFilter,
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
provide: keyv_1.KeyvStoreAdapterFactory,
|
|
55
|
+
useClass: keyv_1.KeyvStoreAdapterFactory,
|
|
56
|
+
},
|
|
57
|
+
],
|
|
58
|
+
exports: [keyv_1.KeyvStoreAdapterFactory],
|
|
59
|
+
})];
|
|
60
|
+
let _classDescriptor;
|
|
61
|
+
let _classExtraInitializers = [];
|
|
62
|
+
let _classThis;
|
|
63
|
+
var CoreModule = class {
|
|
64
|
+
static { _classThis = this; }
|
|
65
|
+
static {
|
|
66
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
|
|
67
|
+
tslib_1.__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
68
|
+
CoreModule = _classThis = _classDescriptor.value;
|
|
69
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
70
|
+
tslib_1.__runInitializers(_classThis, _classExtraInitializers);
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
return CoreModule = _classThis;
|
|
74
|
+
})();
|
|
75
|
+
exports.CoreModule = CoreModule;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dynamic.module.factory.d.ts","sourceRoot":"","sources":["../../../../../packages/back-end/src/nest/dynamic.module.factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAEzD,qBAAa,oBAAoB;IAC/B,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,aAAa;CAQ3D"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DynamicModuleFactory = void 0;
|
|
4
|
+
class DynamicModuleFactory {
|
|
5
|
+
static withProviders(providers) {
|
|
6
|
+
const providersAndExports = [...providers];
|
|
7
|
+
return {
|
|
8
|
+
module: this,
|
|
9
|
+
providers: providersAndExports,
|
|
10
|
+
exports: providersAndExports,
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
exports.DynamicModuleFactory = DynamicModuleFactory;
|