@ask-ell/back-end 0.0.12 → 0.1.1

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 (90) hide show
  1. package/.spec.swcrc +22 -0
  2. package/dist/tsconfig.lib.tsbuildinfo +1 -0
  3. package/eslint.config.mjs +22 -0
  4. package/jest.config.ts +21 -0
  5. package/package.json +16 -17
  6. package/project.json +29 -0
  7. package/src/add-ons/add-on.interface.ts +5 -0
  8. package/src/add-ons/add-on.wrapper.ts +36 -0
  9. package/src/add-ons/implementations/security/security.add-on.ts +18 -0
  10. package/src/add-ons/implementations/sentry/{sentry.add-on.interface.d.ts → sentry.add-on.interface.ts} +5 -3
  11. package/src/add-ons/implementations/sentry/sentry.add-on.state.interface.ts +5 -0
  12. package/src/add-ons/implementations/sentry/sentry.add-on.ts +25 -0
  13. package/src/add-ons/implementations/swagger/{swagger.add-on.interface.d.ts → swagger.add-on.interface.ts} +4 -3
  14. package/src/add-ons/implementations/swagger/swagger.add-on.state.interface.ts +6 -0
  15. package/src/add-ons/implementations/swagger/swagger.add-on.ts +43 -0
  16. package/src/add-ons/implementations/swagger/types.ts +1 -0
  17. package/src/add-ons/index.ts +1 -0
  18. package/src/add-ons/{types.d.ts → types.ts} +2 -2
  19. package/src/application.base.ts +15 -0
  20. package/src/{index.d.ts → index.ts} +3 -1
  21. package/src/keyv.store.adapter.factory.ts +37 -0
  22. package/src/requirement.module.ts +57 -0
  23. package/src/scripts/index.ts +2 -0
  24. package/src/scripts/{move-keyv-data.script.js → move-keyv-data.script.ts} +32 -22
  25. package/src/scripts/update-dependencies-versions.script.ts +167 -0
  26. package/src/secrets/docker.secret.getter.ts +8 -0
  27. package/src/secrets/file.secret.getter.ts +24 -0
  28. package/src/secrets/index.ts +2 -0
  29. package/src/secrets/local.secret.getter.ts +8 -0
  30. package/src/secrets/types.ts +1 -0
  31. package/src/utils/index.ts +1 -0
  32. package/src/utils/tmp.ts +16 -0
  33. package/tsconfig.json +16 -0
  34. package/tsconfig.lib.json +18 -0
  35. package/tsconfig.spec.json +23 -0
  36. package/src/add-ons/add-on.interface.d.ts +0 -5
  37. package/src/add-ons/add-on.interface.d.ts.map +0 -1
  38. package/src/add-ons/add-on.interface.js +0 -2
  39. package/src/add-ons/add-on.wrapper.d.ts +0 -11
  40. package/src/add-ons/add-on.wrapper.d.ts.map +0 -1
  41. package/src/add-ons/add-on.wrapper.js +0 -31
  42. package/src/add-ons/implementations/security/security.add-on.d.ts +0 -6
  43. package/src/add-ons/implementations/security/security.add-on.d.ts.map +0 -1
  44. package/src/add-ons/implementations/security/security.add-on.js +0 -17
  45. package/src/add-ons/implementations/sentry/sentry.add-on.d.ts +0 -8
  46. package/src/add-ons/implementations/sentry/sentry.add-on.d.ts.map +0 -1
  47. package/src/add-ons/implementations/sentry/sentry.add-on.interface.d.ts.map +0 -1
  48. package/src/add-ons/implementations/sentry/sentry.add-on.interface.js +0 -2
  49. package/src/add-ons/implementations/sentry/sentry.add-on.js +0 -19
  50. package/src/add-ons/implementations/sentry/sentry.add-on.state.interface.d.ts +0 -6
  51. package/src/add-ons/implementations/sentry/sentry.add-on.state.interface.d.ts.map +0 -1
  52. package/src/add-ons/implementations/sentry/sentry.add-on.state.interface.js +0 -2
  53. package/src/add-ons/implementations/swagger/swagger.add-on.d.ts +0 -9
  54. package/src/add-ons/implementations/swagger/swagger.add-on.d.ts.map +0 -1
  55. package/src/add-ons/implementations/swagger/swagger.add-on.interface.d.ts.map +0 -1
  56. package/src/add-ons/implementations/swagger/swagger.add-on.interface.js +0 -2
  57. package/src/add-ons/implementations/swagger/swagger.add-on.js +0 -26
  58. package/src/add-ons/implementations/swagger/swagger.add-on.state.interface.d.ts +0 -6
  59. package/src/add-ons/implementations/swagger/swagger.add-on.state.interface.d.ts.map +0 -1
  60. package/src/add-ons/implementations/swagger/swagger.add-on.state.interface.js +0 -2
  61. package/src/add-ons/implementations/swagger/types.d.ts +0 -2
  62. package/src/add-ons/implementations/swagger/types.d.ts.map +0 -1
  63. package/src/add-ons/implementations/swagger/types.js +0 -2
  64. package/src/add-ons/index.d.ts +0 -2
  65. package/src/add-ons/index.d.ts.map +0 -1
  66. package/src/add-ons/index.js +0 -4
  67. package/src/add-ons/types.d.ts.map +0 -1
  68. package/src/add-ons/types.js +0 -2
  69. package/src/application.base.d.ts +0 -5
  70. package/src/application.base.d.ts.map +0 -1
  71. package/src/application.base.js +0 -16
  72. package/src/index.d.ts.map +0 -1
  73. package/src/index.js +0 -7
  74. package/src/keyv.store.adapter.factory.d.ts +0 -12
  75. package/src/keyv.store.adapter.factory.d.ts.map +0 -1
  76. package/src/keyv.store.adapter.factory.js +0 -44
  77. package/src/requirement.module.d.ts +0 -3
  78. package/src/requirement.module.d.ts.map +0 -1
  79. package/src/requirement.module.js +0 -71
  80. package/src/scripts/index.d.ts +0 -2
  81. package/src/scripts/index.d.ts.map +0 -1
  82. package/src/scripts/index.js +0 -4
  83. package/src/scripts/move-keyv-data.script.d.ts +0 -6
  84. package/src/scripts/move-keyv-data.script.d.ts.map +0 -1
  85. package/src/utils/index.d.ts +0 -2
  86. package/src/utils/index.d.ts.map +0 -1
  87. package/src/utils/index.js +0 -4
  88. package/src/utils/tmp.d.ts +0 -4
  89. package/src/utils/tmp.d.ts.map +0 -1
  90. package/src/utils/tmp.js +0 -16
@@ -0,0 +1,167 @@
1
+ import { MaybeUndefined, StringDictionnary, UnknownEnvironmentVariableError } from "@ask-ell/core";
2
+ import { NestLogger } from "@ask-ell/nest";
3
+ import { ExecuteOptions, Script } from "@ask-ell/node";
4
+ import { spawnSync } from 'node:child_process';
5
+ import { writeFileSync } from "node:fs";
6
+ import { mkdir } from 'node:fs/promises';
7
+ import { join } from 'node:path';
8
+
9
+
10
+ const PROJECT_ROOT_PATH: MaybeUndefined<string> = process.env['PWD'];
11
+
12
+ function makeSureThatProjectRootPathIsDefined(projectRootPath: MaybeUndefined<string>): asserts projectRootPath is string {
13
+ if (!projectRootPath) {
14
+ throw new UnknownEnvironmentVariableError('PWD');
15
+ }
16
+ }
17
+
18
+ makeSureThatProjectRootPathIsDefined(PROJECT_ROOT_PATH);
19
+
20
+ const NX_GRAPH_FILE_PATH: string = join(PROJECT_ROOT_PATH, 'tmp/graph.json');
21
+
22
+ type PackageContent = {
23
+ version: string;
24
+ dependencies: StringDictionnary;
25
+ devDependencies: StringDictionnary;
26
+ };
27
+
28
+ const ROOT_PACKAGE_FILE_PATH: string = join(PROJECT_ROOT_PATH, `package.json`);
29
+ const ROOT_PACKAGE_CONTENT: PackageContent = require(ROOT_PACKAGE_FILE_PATH);
30
+
31
+
32
+ function getOrganisationPackageFile(packageId: string): PackageContent {
33
+ makeSureThatProjectRootPathIsDefined(PROJECT_ROOT_PATH);
34
+ const packageFilePath = join(PROJECT_ROOT_PATH, `packages/${packageId}/package.json`);
35
+ return require(packageFilePath);
36
+ }
37
+
38
+ type UpdateDependenciesVersionsScriptParams = {
39
+ organisationPackagePrefix: string;
40
+ blackListedPackages: string[];
41
+ }
42
+
43
+ type WorkspaceDependenciesMapElement = { id: string; dependencies: string[]; source: PackageContent };
44
+
45
+ type WorkspaceDependenciesMap = {
46
+ [id: string]: WorkspaceDependenciesMapElement;
47
+ };
48
+
49
+ export class UpdateDependenciesVersionsScript extends Script {
50
+ private organisationPackagePrefix: string;
51
+ private blackListedPackages: string[];
52
+ private workspaceDependenciesMap: WorkspaceDependenciesMap = this.getWorkspaceDependenciesMap();
53
+
54
+ constructor({
55
+ organisationPackagePrefix,
56
+ blackListedPackages
57
+ }: UpdateDependenciesVersionsScriptParams) {
58
+ super({
59
+ logger: NestLogger.fromClass(UpdateDependenciesVersionsScript),
60
+ arguments: [
61
+ {
62
+ name: 'targetedPackage',
63
+ description: "Target package"
64
+ }
65
+ ]
66
+ });
67
+ this.organisationPackagePrefix = organisationPackagePrefix;
68
+ this.blackListedPackages = blackListedPackages;
69
+ }
70
+
71
+ async execute({
72
+ logger,
73
+ arguments: {
74
+ targetedPackage
75
+ }
76
+ }: ExecuteOptions): Promise<void> {
77
+ const workspaceDependenciesMapElements: WorkspaceDependenciesMapElement[] = Object
78
+ .values(this.workspaceDependenciesMap)
79
+ .filter(({ id }: WorkspaceDependenciesMapElement): boolean => this.isTargetedPackage(targetedPackage)(id));
80
+
81
+ for (const { id, dependencies, source } of workspaceDependenciesMapElements) {
82
+ logger.log(`package.json file updating for project "${id}"...`);
83
+
84
+ if (!PROJECT_ROOT_PATH) {
85
+ throw new UnknownEnvironmentVariableError('PWD');
86
+ }
87
+ const packagePath: string = join(PROJECT_ROOT_PATH, `dist/packages/${id}`);
88
+
89
+ await mkdir(packagePath, { recursive: true });
90
+ const packageFilePath: string = join(PROJECT_ROOT_PATH, 'package.json');
91
+
92
+ const packageFileContent: PackageContent = { ...source };
93
+
94
+ if (dependencies.length && !packageFileContent.dependencies) {
95
+ packageFileContent.dependencies = {};
96
+ }
97
+
98
+ dependencies.forEach((dependency: string): void => {
99
+ const versionTag = this.isAOrganisationPackage(dependency)
100
+ ? `^${this.workspaceDependenciesMap[dependency.replace(this.organisationPackagePrefix, '')].source.version}`
101
+ : ROOT_PACKAGE_CONTENT.devDependencies[dependency];
102
+ packageFileContent.dependencies[dependency] = versionTag;
103
+ });
104
+
105
+ writeFileSync(
106
+ packageFilePath,
107
+ JSON.stringify(packageFileContent, null, 2) + '\n'
108
+ );
109
+
110
+ console.log(`package.json file updated for project "${id}"`);
111
+ }
112
+
113
+ console.log('Package files updated.')
114
+ }
115
+
116
+ getWorkspaceDependenciesMap(): WorkspaceDependenciesMap {
117
+ const workspaceDependenciesMap: WorkspaceDependenciesMap = {};
118
+
119
+ const nxGraphResult = spawnSync('npx', ['nx', 'graph', '--file', NX_GRAPH_FILE_PATH], { stdio: 'inherit' });
120
+ if (nxGraphResult.status !== 0) {
121
+ throw new Error(`"nx graph" failed with status ${nxGraphResult.status}`);
122
+ }
123
+ const nxGraph = require(NX_GRAPH_FILE_PATH);
124
+
125
+ const packageIds = Object.entries(nxGraph.graph.dependencies).map(([packageId]) => packageId);
126
+
127
+ for (const packageId of packageIds.filter(this.isNotBlackListed)) {
128
+ console.log(`Scanning dependencies for package ${packageId}...`)
129
+ const packageFileContent = getOrganisationPackageFile(packageId);
130
+ const dependencies = packageFileContent.dependencies ? Object.entries(packageFileContent.dependencies).map(([dependency]) => dependency) : [];
131
+
132
+ workspaceDependenciesMap[packageId] = {
133
+ id: packageId,
134
+ dependencies: [],
135
+ source: packageFileContent
136
+ }
137
+ if (packageFileContent.dependencies) {
138
+ for (const dependency of dependencies) {
139
+ workspaceDependenciesMap[packageId].dependencies.push(dependency);
140
+ }
141
+ }
142
+ }
143
+
144
+ console.log('Dependencies scan done.');
145
+
146
+ return workspaceDependenciesMap;
147
+ }
148
+
149
+ private isTargetedPackage = (targetPackageId: MaybeUndefined<string>) => (packageId: string) => {
150
+ if (targetPackageId) {
151
+ return packageId === targetPackageId;
152
+ }
153
+ return true;
154
+ }
155
+
156
+ private isAOrganisationPackage(packageName: string): boolean {
157
+ return packageName.includes(this.organisationPackagePrefix);
158
+ }
159
+
160
+ private isBlackListed(packageId: string): boolean {
161
+ return this.blackListedPackages.includes(packageId);
162
+ }
163
+
164
+ private isNotBlackListed(packageId: string): boolean {
165
+ return !this.isBlackListed(packageId);
166
+ }
167
+ }
@@ -0,0 +1,8 @@
1
+ import { FileSecretGetter, fileSecretGetter } from "./file.secret.getter";
2
+
3
+
4
+ const DOCKER_SECRETS_DIRECTORY = '/run/secrets';
5
+
6
+ export const dockerSecretGetter: FileSecretGetter = fileSecretGetter
7
+ (DOCKER_SECRETS_DIRECTORY)
8
+ ('Application is not running inside Docker container. Docker secrets will be unavailable.')
@@ -0,0 +1,24 @@
1
+ import { Dirent, existsSync, readdirSync, readFileSync } from "node:fs";
2
+ import { join } from "node:path";
3
+ import { ILogger } from "@ask-ell/core";
4
+
5
+ import { SecretGetter } from "./types";
6
+
7
+
8
+ export type FileSecretGetter = (logger: ILogger) => SecretGetter;
9
+
10
+ export const fileSecretGetter = (rootDirectoryPath: string) => (warningMessage: string): FileSecretGetter => (logger: ILogger): SecretGetter => (): object => {
11
+ const isDirectoryExists: boolean = existsSync(rootDirectoryPath);
12
+ if(!isDirectoryExists){
13
+ logger.warn(warningMessage);
14
+ return {};
15
+ }
16
+
17
+ return readdirSync(rootDirectoryPath, { withFileTypes: true })
18
+ .filter((entry: Dirent<string>): boolean => entry.isFile())
19
+ .reduce((secrets: Record<string, string>, entry): object => {
20
+ const filePath: string = join(rootDirectoryPath, entry.name);
21
+ secrets[entry.name] = readFileSync(filePath, 'utf-8').trim();
22
+ return secrets;
23
+ }, {});
24
+ }
@@ -0,0 +1,2 @@
1
+ export * from './docker.secret.getter'
2
+ export * from './local.secret.getter'
@@ -0,0 +1,8 @@
1
+ import { fileSecretGetter, FileSecretGetter } from "./file.secret.getter";
2
+
3
+
4
+ const LOCAL_SECRETS_DIRECTORY = '.secrets';
5
+
6
+ export const localSecretGetter: FileSecretGetter = fileSecretGetter
7
+ (LOCAL_SECRETS_DIRECTORY)
8
+ ('Secrets directory not exists on this project. Local secrets will be unavailable.');
@@ -0,0 +1 @@
1
+ export type SecretGetter = () => object;
@@ -0,0 +1 @@
1
+ export * from './tmp';
@@ -0,0 +1,16 @@
1
+ import { ILogger } from "@ask-ell/core";
2
+ import { existsSync, mkdirSync } from "node:fs";
3
+ import { join } from "node:path";
4
+
5
+
6
+ export const TMP_FOLDER_PATH: string = join(process.cwd(), 'tmp');
7
+
8
+ export const createTmpFolder = (logger: ILogger): void => {
9
+ const isTmpFolderExists: boolean = existsSync(TMP_FOLDER_PATH);
10
+ if(isTmpFolderExists){
11
+ logger.info(`"${TMP_FOLDER_PATH}" folder already exists.`);
12
+ return;
13
+ }
14
+ mkdirSync(TMP_FOLDER_PATH);
15
+ logger.info(`"${TMP_FOLDER_PATH}" folder created.`);
16
+ }
package/tsconfig.json ADDED
@@ -0,0 +1,16 @@
1
+ {
2
+ "extends": "../../tsconfig.base.json",
3
+ "files": [],
4
+ "include": [],
5
+ "references": [
6
+ {
7
+ "path": "./tsconfig.lib.json"
8
+ },
9
+ {
10
+ "path": "./tsconfig.spec.json"
11
+ }
12
+ ],
13
+ "compilerOptions": {
14
+ "ignoreDeprecations": "6.0"
15
+ }
16
+ }
@@ -0,0 +1,18 @@
1
+ {
2
+ "extends": "../../tsconfig.base.json",
3
+ "compilerOptions": {
4
+ "baseUrl": ".",
5
+ "rootDir": "src",
6
+ "outDir": "dist",
7
+ "tsBuildInfoFile": "dist/tsconfig.lib.tsbuildinfo",
8
+ "emitDeclarationOnly": false,
9
+ "module": "nodenext",
10
+ "moduleResolution": "nodenext",
11
+ "forceConsistentCasingInFileNames": true,
12
+ "types": ["node"],
13
+ "ignoreDeprecations": "6.0"
14
+ },
15
+ "include": ["src/**/*.ts"],
16
+ "references": [],
17
+ "exclude": ["jest.config.ts", "src/**/*.spec.ts", "src/**/*.test.ts"]
18
+ }
@@ -0,0 +1,23 @@
1
+ {
2
+ "extends": "../../tsconfig.base.json",
3
+ "compilerOptions": {
4
+ "outDir": "./out-tsc/jest",
5
+ "types": ["jest", "node"],
6
+ "module": "nodenext",
7
+ "moduleResolution": "nodenext",
8
+ "forceConsistentCasingInFileNames": true,
9
+ "ignoreDeprecations": "6.0",
10
+ "rootDir": "."
11
+ },
12
+ "include": [
13
+ "jest.config.ts",
14
+ "src/**/*.test.ts",
15
+ "src/**/*.spec.ts",
16
+ "src/**/*.d.ts"
17
+ ],
18
+ "references": [
19
+ {
20
+ "path": "./tsconfig.lib.json"
21
+ }
22
+ ]
23
+ }
@@ -1,5 +0,0 @@
1
- import { INestApplication } from "@nestjs/common";
2
- export interface IAddOn<T> {
3
- apply(application: INestApplication<T>): void;
4
- }
5
- //# sourceMappingURL=add-on.interface.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"add-on.interface.d.ts","sourceRoot":"","sources":["../../../../../packages/back-end/src/add-ons/add-on.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,MAAM,WAAW,MAAM,CAAC,CAAC;IACjB,KAAK,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;CACrD"}
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,11 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"add-on.wrapper.d.ts","sourceRoot":"","sources":["../../../../../packages/back-end/src/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;AAK7C,qBAAa,YAAY,CAAC,CAAC,CAAE,YAAW,MAAM,CAAC,CAAC,CAAC;IAMzC,OAAO,CAAC,MAAM;IALlB,OAAO,CAAC,eAAe,CAErB;gBAGU,MAAM,EAAE,kBAAkB;IAKtC,KAAK,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,IAAI;IAM7C,OAAO,CAAC,qBAAqB;CAShC"}
@@ -1,31 +0,0 @@
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 = [
10
- new security_add_on_1.SecurityAddOn()
11
- ];
12
- constructor(params) {
13
- this.params = params;
14
- this.appendImplementations();
15
- }
16
- apply(application) {
17
- this.implementations.forEach((addOn) => {
18
- addOn.apply(application);
19
- });
20
- }
21
- appendImplementations() {
22
- const { sentry, swagger } = this.params;
23
- if (swagger) {
24
- this.implementations.push(new swagger_add_on_1.SwaggerAddon(swagger));
25
- }
26
- if (sentry) {
27
- this.implementations.push(new sentry_add_on_1.SentryAddon(sentry));
28
- }
29
- }
30
- }
31
- exports.AddOnWrapper = AddOnWrapper;
@@ -1,6 +0,0 @@
1
- import { INestApplication } from "@nestjs/common";
2
- import { IAddOn } from "../../add-on.interface";
3
- export declare class SecurityAddOn<T> implements IAddOn<T> {
4
- apply(application: INestApplication<T>): void;
5
- }
6
- //# sourceMappingURL=security.add-on.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"security.add-on.d.ts","sourceRoot":"","sources":["../../../../../../../packages/back-end/src/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;AAGhD,qBAAa,aAAa,CAAC,CAAC,CAAE,YAAW,MAAM,CAAC,CAAC,CAAC;IAChD,KAAK,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,IAAI;CAU9C"}
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SecurityAddOn = void 0;
4
- const tslib_1 = require("tslib");
5
- const common_1 = require("@nestjs/common");
6
- const helmet_1 = tslib_1.__importDefault(require("helmet"));
7
- class SecurityAddOn {
8
- apply(application) {
9
- application.enableCors();
10
- application.use((0, helmet_1.default)());
11
- application.useGlobalPipes(new common_1.ValidationPipe({
12
- transform: true,
13
- whitelist: false
14
- }));
15
- }
16
- }
17
- exports.SecurityAddOn = SecurityAddOn;
@@ -1,8 +0,0 @@
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(_newState: ISentryAddOnState): IResult<void>;
6
- apply(): void;
7
- }
8
- //# sourceMappingURL=sentry.add-on.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sentry.add-on.d.ts","sourceRoot":"","sources":["../../../../../../../packages/back-end/src/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;AAGzD,qBAAa,WAAW,CAAC,CAAC,CACxB,SAAQ,MAAM,CAAC,iBAAiB,CAChC,YAAW,YAAY,CAAC,CAAC,CAAC;IAE1B,kBAAkB,CAAC,SAAS,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/D,KAAK,IAAI,IAAI;CASd"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"sentry.add-on.interface.d.ts","sourceRoot":"","sources":["../../../../../../../packages/back-end/src/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;AAGhD,MAAM,WAAW,YAAY,CAAC,CAAC,CAC7B,SAAQ,OAAO,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;CAAI"}
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,19 +0,0 @@
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(_newState) {
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;
@@ -1,6 +0,0 @@
1
- export interface ISentryAddOnState {
2
- publicKey: string;
3
- host: string;
4
- projectId: string;
5
- }
6
- //# sourceMappingURL=sentry.add-on.state.interface.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sentry.add-on.state.interface.d.ts","sourceRoot":"","sources":["../../../../../../../packages/back-end/src/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"}
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,9 +0,0 @@
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
- checkStateValidity(_newState: ISwaggerAddOnState): IResult<void>;
7
- apply(application: INestApplication<T>): void;
8
- }
9
- //# sourceMappingURL=swagger.add-on.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"swagger.add-on.d.ts","sourceRoot":"","sources":["../../../../../../../packages/back-end/src/add-ons/implementations/swagger/swagger.add-on.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,OAAO,EAAM,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAOvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAI3D,qBAAa,YAAY,CAAC,CAAC,CACzB,SAAQ,MAAM,CAAC,kBAAkB,CACjC,YAAW,aAAa,CAAC,CAAC,CAAC;IAE3B,kBAAkB,CAAC,SAAS,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhE,KAAK,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,IAAI;CAqB9C"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"swagger.add-on.interface.d.ts","sourceRoot":"","sources":["../../../../../../../packages/back-end/src/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,EAAE,MAAM,CAAC,CAAC,CAAC;CAAI"}
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,26 +0,0 @@
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 swagger_1 = require("@nestjs/swagger");
6
- class SwaggerAddon extends core_1.Entity {
7
- checkStateValidity(_newState) {
8
- return (0, core_1.ok)();
9
- }
10
- apply(application) {
11
- const { title, auths } = this.getSnapshot();
12
- const documentBuilder = new swagger_1.DocumentBuilder().setTitle(title);
13
- auths?.forEach((auth) => {
14
- if (auth === 'bearer') {
15
- documentBuilder.addBearerAuth();
16
- }
17
- });
18
- const documentBuild = documentBuilder.build();
19
- const documentFactory = () => swagger_1.SwaggerModule.createDocument(application, documentBuild);
20
- swagger_1.SwaggerModule.setup("/swagger", application, documentFactory, {
21
- customSiteTitle: title,
22
- jsonDocumentUrl: "/swagger/json",
23
- });
24
- }
25
- }
26
- exports.SwaggerAddon = SwaggerAddon;
@@ -1,6 +0,0 @@
1
- import { AuthMethod } from "./types";
2
- export interface ISwaggerAddOnState {
3
- title: string;
4
- auths?: AuthMethod[];
5
- }
6
- //# sourceMappingURL=swagger.add-on.state.interface.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"swagger.add-on.state.interface.d.ts","sourceRoot":"","sources":["../../../../../../../packages/back-end/src/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;CACtB"}
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,2 +0,0 @@
1
- export type AuthMethod = 'bearer' | 'cookie';
2
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../packages/back-end/src/add-ons/implementations/swagger/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,QAAQ,CAAC"}
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,2 +0,0 @@
1
- export * from './add-on.wrapper';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/back-end/src/add-ons/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA"}
@@ -1,4 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- tslib_1.__exportStar(require("./add-on.wrapper"), exports);
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../packages/back-end/src/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;IACrC,OAAO,EAAE,kBAAkB,CAAC;IAC5B,MAAM,EAAE,iBAAiB,CAAC;CAC7B,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,5 +0,0 @@
1
- import { DynamicModule, Provider } from "@nestjs/common";
2
- export declare class ApplicationBase {
3
- static withProviders(providers: Provider[]): DynamicModule;
4
- }
5
- //# sourceMappingURL=application.base.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"application.base.d.ts","sourceRoot":"","sources":["../../../../packages/back-end/src/application.base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAIzD,qBAAa,eAAe;IACxB,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,aAAa;CAS7D"}
@@ -1,16 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ApplicationBase = void 0;
4
- const requirement_module_1 = require("./requirement.module");
5
- class ApplicationBase {
6
- static withProviders(providers) {
7
- const providersAndExports = [...providers];
8
- return {
9
- module: this,
10
- imports: [requirement_module_1.RequirementModule],
11
- providers: providersAndExports,
12
- exports: [...providersAndExports]
13
- };
14
- }
15
- }
16
- exports.ApplicationBase = ApplicationBase;
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/back-end/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oBAAoB,CAAC"}
package/src/index.js DELETED
@@ -1,7 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- tslib_1.__exportStar(require("./add-ons"), exports);
5
- tslib_1.__exportStar(require("./scripts"), exports);
6
- tslib_1.__exportStar(require("./keyv.store.adapter.factory"), exports);
7
- tslib_1.__exportStar(require("./application.base"), exports);
@@ -1,12 +0,0 @@
1
- import { KeyvStoreAdapter } from "keyv";
2
- import { MaybeUndefined } from "@ask-ell/core";
3
- type CreateKeyvStoreAdapterOptions = {
4
- postgresUri: MaybeUndefined<string>;
5
- };
6
- export declare class KeyvStoreAdapterFactory {
7
- private logger;
8
- create(options: CreateKeyvStoreAdapterOptions): KeyvStoreAdapter;
9
- private getKeyvStoreAdapter;
10
- }
11
- export {};
12
- //# sourceMappingURL=keyv.store.adapter.factory.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"keyv.store.adapter.factory.d.ts","sourceRoot":"","sources":["../../../../packages/back-end/src/keyv.store.adapter.factory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,MAAM,CAAC;AAGxC,OAAO,EAAW,cAAc,EAAE,MAAM,eAAe,CAAC;AAOxD,KAAK,6BAA6B,GAAG;IACjC,WAAW,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;CACvC,CAAA;AAED,qBACa,uBAAuB;IAChC,OAAO,CAAC,MAAM,CAA0D;IAExE,MAAM,CAAC,OAAO,EAAE,6BAA6B,GAAG,gBAAgB;IAMhE,OAAO,CAAC,mBAAmB;CAW9B"}