@solidxai/core 0.1.5-beta.2 → 0.1.5-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/info.command.d.ts +3 -1
- package/dist/commands/info.command.d.ts.map +1 -1
- package/dist/commands/info.command.js +6 -2
- package/dist/commands/info.command.js.map +1 -1
- package/dist/controllers/info.controller.d.ts +7 -0
- package/dist/controllers/info.controller.d.ts.map +1 -0
- package/dist/controllers/info.controller.js +39 -0
- package/dist/controllers/info.controller.js.map +1 -0
- package/dist/entities/ai-interaction.entity.d.ts.map +1 -1
- package/dist/entities/ai-interaction.entity.js +1 -1
- package/dist/entities/ai-interaction.entity.js.map +1 -1
- package/dist/entities/dashboard-question-sql-dataset-config.entity.d.ts.map +1 -1
- package/dist/entities/dashboard-question-sql-dataset-config.entity.js.map +1 -1
- package/dist/entities/dashboard-question.entity.d.ts.map +1 -1
- package/dist/entities/dashboard-question.entity.js.map +1 -1
- package/dist/entities/dashboard-variable.entity.d.ts.map +1 -1
- package/dist/entities/dashboard-variable.entity.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/interfaces.d.ts +1 -0
- package/dist/interfaces.d.ts.map +1 -1
- package/dist/interfaces.js.map +1 -1
- package/dist/seeders/seed-data/solid-core-metadata.json +1 -1
- package/dist/services/info.service.d.ts +18 -0
- package/dist/services/info.service.d.ts.map +1 -0
- package/dist/services/info.service.js +96 -0
- package/dist/services/info.service.js.map +1 -0
- package/dist/services/queues/rabbitmq-subscriber.service.d.ts.map +1 -1
- package/dist/services/queues/rabbitmq-subscriber.service.js +6 -1
- package/dist/services/queues/rabbitmq-subscriber.service.js.map +1 -1
- package/dist/solid-core.module.d.ts.map +1 -1
- package/dist/solid-core.module.js +4 -0
- package/dist/solid-core.module.js.map +1 -1
- package/dist/testing/runner/run-from-metadata.d.ts.map +1 -1
- package/dist/testing/runner/run-from-metadata.js +35 -2
- package/dist/testing/runner/run-from-metadata.js.map +1 -1
- package/package.json +1 -1
- package/src/commands/info.command.ts +3 -0
- package/src/controllers/info.controller.ts +15 -0
- package/src/entities/ai-interaction.entity.ts +17 -2
- package/src/entities/dashboard-question-sql-dataset-config.entity.ts +9 -1
- package/src/entities/dashboard-question.entity.ts +10 -0
- package/src/entities/dashboard-variable.entity.ts +9 -0
- package/src/index.ts +2 -0
- package/src/interfaces.ts +1 -0
- package/src/seeders/seed-data/solid-core-metadata.json +1 -1
- package/src/services/info.service.ts +60 -0
- package/src/services/queues/rabbitmq-subscriber.service.ts +7 -1
- package/src/solid-core.module.ts +4 -0
- package/src/testing/runner/run-from-metadata.ts +1 -1
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
interface PackageVersionInfo {
|
|
2
|
+
repo: 'local' | 'npm';
|
|
3
|
+
version: string;
|
|
4
|
+
}
|
|
5
|
+
export interface SolidVersionsInfo {
|
|
6
|
+
'solid-core': PackageVersionInfo;
|
|
7
|
+
'solid-core-ui': PackageVersionInfo;
|
|
8
|
+
'solid-code-builder': PackageVersionInfo;
|
|
9
|
+
}
|
|
10
|
+
export declare class InfoService {
|
|
11
|
+
private readonly logger;
|
|
12
|
+
getPackageVersions(): SolidVersionsInfo;
|
|
13
|
+
private getPackageInfo;
|
|
14
|
+
private resolvePackageJson;
|
|
15
|
+
private readPackageJson;
|
|
16
|
+
}
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=info.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"info.service.d.ts","sourceRoot":"","sources":["../../src/services/info.service.ts"],"names":[],"mappings":"AAIA,UAAU,kBAAkB;IACxB,IAAI,EAAE,OAAO,GAAG,KAAK,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAC9B,YAAY,EAAE,kBAAkB,CAAC;IACjC,eAAe,EAAE,kBAAkB,CAAC;IACpC,oBAAoB,EAAE,kBAAkB,CAAC;CAC5C;AAED,qBACa,WAAW;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgC;IAEvD,kBAAkB,IAAI,iBAAiB;IAQvC,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,eAAe;CAW1B"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
19
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
20
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
21
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
22
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
23
|
+
};
|
|
24
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
25
|
+
var ownKeys = function(o) {
|
|
26
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
27
|
+
var ar = [];
|
|
28
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
29
|
+
return ar;
|
|
30
|
+
};
|
|
31
|
+
return ownKeys(o);
|
|
32
|
+
};
|
|
33
|
+
return function (mod) {
|
|
34
|
+
if (mod && mod.__esModule) return mod;
|
|
35
|
+
var result = {};
|
|
36
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
37
|
+
__setModuleDefault(result, mod);
|
|
38
|
+
return result;
|
|
39
|
+
};
|
|
40
|
+
})();
|
|
41
|
+
var InfoService_1;
|
|
42
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
43
|
+
exports.InfoService = void 0;
|
|
44
|
+
const common_1 = require("@nestjs/common");
|
|
45
|
+
const fs = __importStar(require("fs"));
|
|
46
|
+
const path = __importStar(require("path"));
|
|
47
|
+
let InfoService = InfoService_1 = class InfoService {
|
|
48
|
+
constructor() {
|
|
49
|
+
this.logger = new common_1.Logger(InfoService_1.name);
|
|
50
|
+
}
|
|
51
|
+
getPackageVersions() {
|
|
52
|
+
return {
|
|
53
|
+
'solid-core': this.getPackageInfo('@solidxai/core'),
|
|
54
|
+
'solid-core-ui': this.getPackageInfo('@solidxai/core-ui'),
|
|
55
|
+
'solid-code-builder': this.getPackageInfo('@solidxai/code-builder'),
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
getPackageInfo(packageName) {
|
|
59
|
+
const result = this.resolvePackageJson(packageName);
|
|
60
|
+
if (result)
|
|
61
|
+
return result;
|
|
62
|
+
const siblingUiPath = path.resolve(process.cwd(), '..', 'solid-ui', 'node_modules', packageName, 'package.json');
|
|
63
|
+
const siblingResult = this.readPackageJson(siblingUiPath);
|
|
64
|
+
if (siblingResult)
|
|
65
|
+
return siblingResult;
|
|
66
|
+
this.logger.warn(`Could not resolve package: ${packageName}`);
|
|
67
|
+
return { repo: 'npm', version: 'not installed' };
|
|
68
|
+
}
|
|
69
|
+
resolvePackageJson(packageName) {
|
|
70
|
+
try {
|
|
71
|
+
const pkgJsonPath = require.resolve(`${packageName}/package.json`);
|
|
72
|
+
return this.readPackageJson(pkgJsonPath);
|
|
73
|
+
}
|
|
74
|
+
catch {
|
|
75
|
+
return null;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
readPackageJson(pkgJsonPath) {
|
|
79
|
+
try {
|
|
80
|
+
if (!fs.existsSync(pkgJsonPath))
|
|
81
|
+
return null;
|
|
82
|
+
const pkgJson = JSON.parse(fs.readFileSync(pkgJsonPath, 'utf-8'));
|
|
83
|
+
const version = pkgJson.version ? `v${pkgJson.version}` : 'unknown';
|
|
84
|
+
const repo = pkgJsonPath.includes(path.sep + 'node_modules' + path.sep) ? 'npm' : 'local';
|
|
85
|
+
return { repo, version };
|
|
86
|
+
}
|
|
87
|
+
catch {
|
|
88
|
+
return null;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
exports.InfoService = InfoService;
|
|
93
|
+
exports.InfoService = InfoService = InfoService_1 = __decorate([
|
|
94
|
+
(0, common_1.Injectable)()
|
|
95
|
+
], InfoService);
|
|
96
|
+
//# sourceMappingURL=info.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"info.service.js","sourceRoot":"","sources":["../../src/services/info.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAAoD;AACpD,uCAAyB;AACzB,2CAA6B;AActB,IAAM,WAAW,mBAAjB,MAAM,WAAW;IAAjB;QACc,WAAM,GAAG,IAAI,eAAM,CAAC,aAAW,CAAC,IAAI,CAAC,CAAC;IA0C3D,CAAC;IAxCG,kBAAkB;QACd,OAAO;YACH,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC;YACnD,eAAe,EAAE,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC;YACzD,oBAAoB,EAAE,IAAI,CAAC,cAAc,CAAC,wBAAwB,CAAC;SACtE,CAAC;IACN,CAAC;IAEO,cAAc,CAAC,WAAmB;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;QACpD,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAE1B,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,cAAc,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;QACjH,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;QAC1D,IAAI,aAAa;YAAE,OAAO,aAAa,CAAC;QAExC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8BAA8B,WAAW,EAAE,CAAC,CAAC;QAC9D,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC;IACrD,CAAC;IAEO,kBAAkB,CAAC,WAAmB;QAC1C,IAAI,CAAC;YACD,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,WAAW,eAAe,CAAC,CAAC;YACnE,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QAC7C,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,IAAI,CAAC;QAChB,CAAC;IACL,CAAC;IAEO,eAAe,CAAC,WAAmB;QACvC,IAAI,CAAC;YACD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;YAClE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;YACpE,MAAM,IAAI,GAAG,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,GAAG,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC;YAC1F,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QAC7B,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,IAAI,CAAC;QAChB,CAAC;IACL,CAAC;CACJ,CAAA;AA3CY,kCAAW;sBAAX,WAAW;IADvB,IAAA,mBAAU,GAAE;GACA,WAAW,CA2CvB","sourcesContent":["import { Injectable, Logger } from '@nestjs/common';\nimport * as fs from 'fs';\nimport * as path from 'path';\n\ninterface PackageVersionInfo {\n repo: 'local' | 'npm';\n version: string;\n}\n\nexport interface SolidVersionsInfo {\n 'solid-core': PackageVersionInfo;\n 'solid-core-ui': PackageVersionInfo;\n 'solid-code-builder': PackageVersionInfo;\n}\n\n@Injectable()\nexport class InfoService {\n private readonly logger = new Logger(InfoService.name);\n\n getPackageVersions(): SolidVersionsInfo {\n return {\n 'solid-core': this.getPackageInfo('@solidxai/core'),\n 'solid-core-ui': this.getPackageInfo('@solidxai/core-ui'),\n 'solid-code-builder': this.getPackageInfo('@solidxai/code-builder'),\n };\n }\n\n private getPackageInfo(packageName: string): PackageVersionInfo {\n const result = this.resolvePackageJson(packageName);\n if (result) return result;\n\n const siblingUiPath = path.resolve(process.cwd(), '..', 'solid-ui', 'node_modules', packageName, 'package.json');\n const siblingResult = this.readPackageJson(siblingUiPath);\n if (siblingResult) return siblingResult;\n\n this.logger.warn(`Could not resolve package: ${packageName}`);\n return { repo: 'npm', version: 'not installed' };\n }\n\n private resolvePackageJson(packageName: string): PackageVersionInfo | null {\n try {\n const pkgJsonPath = require.resolve(`${packageName}/package.json`);\n return this.readPackageJson(pkgJsonPath);\n } catch {\n return null;\n }\n }\n\n private readPackageJson(pkgJsonPath: string): PackageVersionInfo | null {\n try {\n if (!fs.existsSync(pkgJsonPath)) return null;\n const pkgJson = JSON.parse(fs.readFileSync(pkgJsonPath, 'utf-8'));\n const version = pkgJson.version ? `v${pkgJson.version}` : 'unknown';\n const repo = pkgJsonPath.includes(path.sep + 'node_modules' + path.sep) ? 'npm' : 'local';\n return { repo, version };\n } catch {\n return null;\n }\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rabbitmq-subscriber.service.d.ts","sourceRoot":"","sources":["../../../src/services/queues/rabbitmq-subscriber.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,KAAK,IAAI,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAIzD,8BAAsB,kBAAkB,CAAC,CAAC,CAAE,YAAW,YAAY,EAAE,eAAe,CAAC,CAAC,CAAC;IAWvE,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB;IAAE,SAAS,CAAC,QAAQ,CAAC,qBAAqB,EAAE,qBAAqB;IAVlI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuC;IAC9D,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,UAAU,CAAgC;IAClD,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,gBAAgB,CAA8B;IACtD,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,QAAQ,CAAS;gBAEM,gBAAgB,EAAE,gBAAgB,EAAqB,qBAAqB,EAAE,qBAAqB;IAYlI,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;IAE3C,QAAQ,CAAC,OAAO,IAAI,mBAAmB;IAEjC,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;IAsB/C,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;YAqCrB,iBAAiB;
|
|
1
|
+
{"version":3,"file":"rabbitmq-subscriber.service.d.ts","sourceRoot":"","sources":["../../../src/services/queues/rabbitmq-subscriber.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,KAAK,IAAI,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAIzD,8BAAsB,kBAAkB,CAAC,CAAC,CAAE,YAAW,YAAY,EAAE,eAAe,CAAC,CAAC,CAAC;IAWvE,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB;IAAE,SAAS,CAAC,QAAQ,CAAC,qBAAqB,EAAE,qBAAqB;IAVlI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuC;IAC9D,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,UAAU,CAAgC;IAClD,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,gBAAgB,CAA8B;IACtD,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,QAAQ,CAAS;gBAEM,gBAAgB,EAAE,gBAAgB,EAAqB,qBAAqB,EAAE,qBAAqB;IAYlI,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;IAE3C,QAAQ,CAAC,OAAO,IAAI,mBAAmB;IAEjC,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;IAsB/C,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;YAqCrB,iBAAiB;YA0GjB,qBAAqB;YA8BrB,oBAAoB;IAclC,OAAO,CAAC,gBAAgB;YAWV,aAAa;YAkBb,OAAO;IAkCrB,OAAO,CAAC,KAAK;IAKb,OAAO,CAAC,OAAO;cAWC,cAAc,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,UAAU,KAAA,EAAE,OAAO,KAAA,GAAG,OAAO,CAAC,IAAI,CAAC;YAc9E,sBAAsB;CAkCvC"}
|
|
@@ -104,6 +104,11 @@ class RabbitMqSubscriber {
|
|
|
104
104
|
async connectAndConsume(queueName) {
|
|
105
105
|
await this.cleanup();
|
|
106
106
|
this.logger.log(`RabbitMqSubscriber in connectAndConsume for queue: ${queueName} and url: ${this.url}`);
|
|
107
|
+
const options = this.options();
|
|
108
|
+
const prefetch = options.prefetch ?? 1;
|
|
109
|
+
if (prefetch < 1) {
|
|
110
|
+
throw new Error(`RabbitMqSubscriber prefetch must be >= 1 for queue ${queueName}`);
|
|
111
|
+
}
|
|
107
112
|
let connection;
|
|
108
113
|
try {
|
|
109
114
|
connection = await this.establishConnection();
|
|
@@ -137,7 +142,7 @@ class RabbitMqSubscriber {
|
|
|
137
142
|
this.logger.warn(`RabbitMqSubscriber channel closed for queue ${queueName}`);
|
|
138
143
|
this.triggerReconnect(queueName, 'channel closed');
|
|
139
144
|
});
|
|
140
|
-
await channel.prefetch(
|
|
145
|
+
await channel.prefetch(prefetch);
|
|
141
146
|
const exchangeName = `${queueName}.exchange`;
|
|
142
147
|
const routingKey = `${queueName}.routing-key`;
|
|
143
148
|
const retryQueue = `${queueName}.retry`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rabbitmq-subscriber.service.js","sourceRoot":"","sources":["../../../src/services/queues/rabbitmq-subscriber.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAAsD;AACtD,8CAAgC;AAKhC,qCAAoD;AAGpD,MAAsB,kBAAkB;IAWpC,YAA+B,gBAAkC,EAAqB,qBAA4C;QAAnG,qBAAgB,GAAhB,gBAAgB,CAAkB;QAAqB,0BAAqB,GAArB,qBAAqB,CAAuB;QAVjH,WAAM,GAAG,IAAI,eAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAGtD,eAAU,GAA2B,IAAI,CAAC;QAC1C,YAAO,GAAwB,IAAI,CAAC;QACpC,gBAAW,GAAkB,IAAI,CAAC;QAClC,qBAAgB,GAAyB,IAAI,CAAC;QAC9C,qBAAgB,GAAG,CAAC,CAAC;QACrB,aAAQ,GAAG,KAAK,CAAC;QAGrB,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;QAC5C,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;QACnD,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACZ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mEAAmE,CAAC,CAAC;QAC3F,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACpB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gEAAgE,CAAC,CAAC;QACxF,CAAC;IAEL,CAAC;IAMD,KAAK,CAAC,mBAAmB;QAErB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAO9B,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC;YAClC,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;YACvC,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;YACxB,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,QAAQ,EAAE,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC;YAC1C,QAAQ,EAAE,MAAM;YAChB,SAAS,EAAE,EAAE;SAChB,CAAC,CAAC;QAEH,OAAO,UAAU,CAAA;IACrB,CAAC;IAED,KAAK,CAAC,YAAY;QAGd,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,UAAU,CAAC;QACtE,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,OAAO,CAAC;QACjE,MAAM,cAAc,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,iCAAiC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAGpF,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,eAAe,KAAK,OAAO,IAAI,aAAa,KAAK,UAAU,EAAE,CAAC;YAC/H,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YAC/B,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;YAEpC,IAAI,cAAc,IAAI,cAAc,KAAK,KAAK,EAAE,CAAC;gBAC7C,IAAI,CAAC;oBACD,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,cAAc,CAAC,CAAC;oBACzC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;wBACzB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,gCAAgC,SAAS,4EAA4E,cAAc,EAAE,CAAC,CAAC;wBACvJ,OAAO;oBACX,CAAC;gBACL,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oDAAoD,cAAc,2BAA2B,SAAS,kBAAkB,CAAC,CAAC;oBAC5I,OAAO;gBACX,CAAC;YACL,CAAC;YAED,MAAM,mBAAmB,GAAG,IAAA,iCAAwB,EAAC,SAAS,CAAC,CAAC;YAChE,IAAI,CAAC;gBACD,MAAM,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;YACtD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACX,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2CAA2C,mBAAmB,KAAM,GAAa,CAAC,OAAO,EAAE,EAAG,GAAa,CAAC,KAAK,CAAC,CAAC;gBACrI,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,4BAA4B,CAAC,CAAC;YAC7E,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,iDAAiD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,aAAa,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QACrH,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,SAAiB;QAC7C,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACrB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,sDAAsD,SAAS,aAAa,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAExG,IAAI,UAA2B,CAAC;QAChC,IAAI,CAAC;YACD,UAAU,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAClD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2CAA2C,SAAS,KAAM,GAAa,CAAC,OAAO,EAAE,EAAG,GAAa,CAAC,KAAK,CAAC,CAAC;YAC3H,MAAM,GAAG,CAAC;QACd,CAAC;QAED,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAE7B,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YAC3B,IAAI,UAAU,KAAK,IAAI,CAAC,UAAU;gBAAE,OAAO;YAC3C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iDAAiD,SAAS,KAAM,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/G,CAAC,CAAC,CAAC;QAEH,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACxB,IAAI,UAAU,KAAK,IAAI,CAAC,UAAU;gBAAE,OAAO;YAC3C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kDAAkD,SAAS,EAAE,CAAC,CAAC;YAChF,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,aAAa,EAAE,CAAC;QACjD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACxB,IAAI,OAAO,KAAK,IAAI,CAAC,OAAO;gBAAE,OAAO;YACrC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,8CAA8C,SAAS,KAAM,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5G,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACrB,IAAI,OAAO,KAAK,IAAI,CAAC,OAAO;gBAAE,OAAO;YACrC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+CAA+C,SAAS,EAAE,CAAC,CAAC;YAC7E,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QAGH,MAAM,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAG1B,MAAM,YAAY,GAAG,GAAG,SAAS,WAAW,CAAC;QAC7C,MAAM,UAAU,GAAG,GAAG,SAAS,cAAc,CAAC;QAC9C,MAAM,UAAU,GAAG,GAAG,SAAS,QAAQ,CAAC;QACxC,MAAM,WAAW,GAAG,GAAG,SAAS,SAAS,CAAC;QAE1C,MAAM,OAAO,CAAC,cAAc,CAAC,YAAY,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;QACzD,MAAM,OAAO,CAAC,WAAW,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QACzC,MAAM,OAAO,CAAC,SAAS,CAAC,SAAS,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;QAG7D,MAAM,OAAO,CAAC,WAAW,CAAC,UAAU,EAAE;YAClC,SAAS,EAAE;gBACP,wBAAwB,EAAE,YAAY;gBACtC,2BAA2B,EAAE,UAAU;aAC1C;SACJ,CAAC,CAAC;QAEH,MAAM,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAE3C,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,OAAO,CACvC,SAAS,EACT,KAAK,EAAE,UAAU,EAAE,EAAE;YACjB,IAAI,CAAC,UAAU,EAAE,CAAC;gBACd,OAAO;YACX,CAAC;YAED,IAAI,OAAO,GAAoB,IAAI,CAAC;YAEpC,IAAI,CAAC;gBACD,MAAM,oBAAoB,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;gBAC3D,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAoB,CAAC;gBAC9D,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iDAAiD,OAAO,CAAC,SAAS,cAAc,SAAS,EAAE,CAAC,CAAC;YACnH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iCAAiC,SAAS,KAAM,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC7F,MAAM,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;gBAC/E,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBACxB,OAAO;YACX,CAAC;YAED,IAAI,CAAC,OAAO,CAAC,UAAU;gBAAE,OAAO,CAAC,UAAU,GAAG,CAAC,CAAC;YAChD,IAAI,CAAC,OAAO,CAAC,aAAa;gBAAE,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;YACzD,IAAI,CAAC,OAAO,CAAC,YAAY;gBAAE,OAAO,CAAC,YAAY,GAAG,CAAC,CAAC;YAEpD,IAAI,CAAC;gBACD,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;YAC5D,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;YACrF,CAAC;QACL,CAAC,EAED,EAAE,KAAK,EAAE,KAAK,EAAE,CACnB,CAAC;QAEF,IAAI,CAAC,WAAW,GAAG,aAAa,CAAC,WAAW,CAAC;IACjD,CAAC;IAGO,KAAK,CAAC,qBAAqB,CAAC,OAAwB,EAAE,UAA+B,EAAE,OAAqB,EAAE,KAAU,EAAE,SAAiB;QAC/I,MAAM,YAAY,GAAI,KAAe,EAAE,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;QAChE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qCAAqC,SAAS,KAAK,YAAY,EAAE,CAAC,CAAC;QAErF,IAAI,OAAO,CAAC,YAAY,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;YAC5C,MAAM,IAAI,CAAC,sBAAsB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAEvD,OAAO,CAAC,YAAY,EAAE,CAAC;YACvB,MAAM,UAAU,GAAG,GAAG,SAAS,QAAQ,CAAC;YACxC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;YAGrD,OAAO,CAAC,WAAW,CAAC,UAAU,EAAE,OAAO,EAAE;gBACrC,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC;gBACjD,OAAO,EAAE;oBACL,SAAS,EAAE,YAAY;iBAC1B;aACJ,CAAC,CAAC;YAEH,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACxB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,UAAU,WAAW,OAAO,CAAC,aAAa,eAAe,SAAS,EAAE,CAAC,CAAC;YAC5I,OAAO;QACX,CAAC;QAED,MAAM,IAAI,CAAC,sBAAsB,CAAC,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC;QACvE,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACxB,MAAM,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;QACjG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,OAAO,CAAC,UAAU,sBAAsB,SAAS,KAAK,YAAY,EAAE,CAAC,CAAC;IACpH,CAAC;IAEO,KAAK,CAAC,oBAAoB,CAAC,SAAiB,EAAE,OAAwB,EAAE,OAAqB,EAAE,KAAW;QAC9G,MAAM,WAAW,GAAG,GAAG,SAAS,SAAS,CAAC;QAC1C,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvE,MAAM,YAAY,GAAI,KAAe,EAAE,OAAO,IAAI,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QAEtE,IAAI,CAAC;YACD,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC;gBAClD,OAAO,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE;aACvC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACnB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qCAAqC,WAAW,KAAM,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QACrG,CAAC;IACL,CAAC;IAEO,gBAAgB,CAAC,SAAiB,EAAE,MAAc;QACtD,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC1B,IAAI,IAAI,CAAC,gBAAgB;YAAE,OAAO;QAElC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,MAAM,CAAC;aACxD,OAAO,CAAC,GAAG,EAAE;YACV,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QACjC,CAAC,CAAC,CAAC;IACX,CAAC;IAGO,KAAK,CAAC,aAAa,CAAC,SAAiB,EAAE,MAAc;QACzD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6CAA6C,SAAS,KAAK,MAAM,EAAE,CAAC,CAAC;QAEtF,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpB,IAAI,CAAC;gBACD,MAAM,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;gBACxC,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;gBAC1B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,4CAA4C,SAAS,EAAE,CAAC,CAAC;gBACzE,OAAO;YACX,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACX,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAC;gBAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC7B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iDAAiD,SAAS,iBAAiB,KAAK,IAAI,CAAC,CAAC;gBACvG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC5B,CAAC;QACL,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,OAAO;QACjB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAErC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAExB,IAAI,OAAO,EAAE,CAAC;YACV,IAAI,CAAC;gBACD,IAAI,WAAW,EAAE,CAAC;oBACd,MAAM,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;gBACtC,CAAC;YACL,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;YAEb,CAAC;YAED,IAAI,CAAC;gBACD,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;YAC1B,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;YAEb,CAAC;QACL,CAAC;QAED,IAAI,UAAU,EAAE,CAAC;YACb,IAAI,CAAC;gBACD,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC;YAC7B,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;YAEb,CAAC;QACL,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,EAAU;QACpB,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IAC3D,CAAC;IAGO,OAAO;QACX,MAAM,MAAM,GAAG,IAAI,CAAC;QACpB,MAAM,KAAK,GAAG,MAAM,CAAC;QACrB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;QACzE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;QACvD,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM,CAAC,CAAC;IACzC,CAAC;IAKS,KAAK,CAAC,cAAc,CAAC,OAAwB,EAAE,UAAU,EAAE,OAAO;QACxE,MAAM,IAAI,CAAC,sBAAsB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAGtD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAG7C,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAGxB,MAAM,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAE/G,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAAC,KAAa,EAAE,OAAwB,EAAE,QAAgB,EAAE,EAAE,SAAiB,EAAE;QAGjH,IAAI,CAAC;YAED,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC;gBACvD,KAAK,EAAE;oBACH,SAAS,EAAE,OAAO,CAAC,SAAS;iBAC/B;aACJ,CAAC,CAAC;YAEH,IAAI,SAAS,EAAE,CAAC;gBACZ,MAAM,aAAa,GAAG;oBAClB,KAAK,EAAE,KAAK;iBACf,CAAC;gBACF,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,WAAW,EAAE,CAAC;oBAC9C,aAAa,CAAC,YAAY,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;oBACzC,aAAa,CAAC,eAAe,CAAC,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;gBAC3G,CAAC;gBACD,IAAI,KAAK,KAAK,WAAW,EAAE,CAAC;oBACxB,aAAa,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;gBACrC,CAAC;gBACD,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;oBACrB,aAAa,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;gBACnC,CAAC;gBACD,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;YACzE,CAAC;QACL,CAAC;QACD,OAAO,KAAK,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAClD,CAAC;IAEL,CAAC;CAEJ;AArWD,gDAqWC","sourcesContent":["import { Logger, OnModuleInit } from '@nestjs/common';\nimport * as amqp from 'amqplib';\nimport { QueuesModuleOptions } from \"../../interfaces\";\nimport { QueueMessage, QueueSubscriber } from '../../interfaces/mq';\nimport { MqMessageQueueService } from '../mq-message-queue.service';\nimport { MqMessageService } from '../mq-message.service';\nimport { buildNamespacedQueueName } from './common';\n\n\nexport abstract class RabbitMqSubscriber<T> implements OnModuleInit, QueueSubscriber<T> { // TODO This can be made a generic type for better type visibility\n private readonly logger = new Logger(RabbitMqSubscriber.name);\n private readonly url: string;\n private readonly serviceRole: string;\n private connection: amqp.Connection | null = null;\n private channel: amqp.Channel | null = null;\n private consumerTag: string | null = null;\n private reconnectPromise: Promise<void> | null = null;\n private reconnectAttempt = 0;\n private stopping = false;\n\n constructor(protected readonly mqMessageService: MqMessageService, protected readonly mqMessageQueueService: MqMessageQueueService) {\n this.url = process.env.QUEUES_RABBIT_MQ_URL;\n this.serviceRole = process.env.QUEUES_SERVICE_ROLE;\n if (!this.url) {\n this.logger.debug('RabbitMqPublisher url is not defined in the environment variables');\n }\n if (!this.serviceRole) {\n this.logger.debug('Queue service Role is not defined in the environment variables');\n }\n // this.logger.debug(`RabbitMqSubscriber instance created with options: ${JSON.stringify(this.options())} and url: ${this.url}`);\n }\n\n abstract subscribe(message: QueueMessage<T>);\n\n abstract options(): QueuesModuleOptions;\n\n async establishConnection(): Promise<amqp.Connection> {\n\n const url = new URL(this.url);\n\n // this.logger.debug(`user: ${url.username}`);\n // // just for local debug, don’t log in prod\n // this.logger.debug(`pass: ${url.password}`);\n // this.logger.debug(`path (vhost): ${url.pathname}`);\n\n const connection = await amqp.connect({\n protocol: url.protocol.replace(':', ''),\n hostname: url.hostname,\n port: parseInt(url.port),\n username: url.username,\n password: decodeURIComponent(url.password),\n frameMax: 131072,\n heartbeat: 30,\n });\n\n return connection\n }\n\n async onModuleInit(): Promise<void> {\n // Not using SettingService here as that will necessitate all implementors of RabbitMqSubscriber to also inject SettingService which is not ideal. \n // Instead we directly read the environment variables here.\n const defaultBroker = process.env.QUEUES_DEFAULT_BROKER || 'rabbitmq';\n const solidCliRunning = process.env.SOLID_CLI_RUNNING || \"false\";\n const queueNameRegex = (process.env.QUEUES_QUEUE_NAME_REGEX_TO_ENABLE || '').trim();\n\n // we will start subscriber only if the current service role is subscriber. \n if (this.url && ['both', 'subscriber'].includes(this.serviceRole) && solidCliRunning === \"false\" && defaultBroker === 'rabbitmq') {\n const options = this.options();\n const queueName = options.queueName;\n\n if (queueNameRegex && queueNameRegex !== \"all\") {\n try {\n const regex = new RegExp(queueNameRegex);\n if (!regex.test(queueName)) {\n this.logger.log(`RabbitMqSubscriber for queue ${queueName} is disabled because it does not match QUEUES_QUEUE_NAME_REGEX_TO_ENABLE=${queueNameRegex}`);\n return;\n }\n } catch (error) {\n this.logger.error(`Invalid QUEUES_QUEUE_NAME_REGEX_TO_ENABLE regex \"${queueNameRegex}\". Subscriber for queue ${queueName} will not start.`);\n return;\n }\n }\n\n const namespacedQueueName = buildNamespacedQueueName(queueName);\n try {\n await this.connectAndConsume(namespacedQueueName);\n } catch (err) {\n this.logger.error(`Failed to connect to RabbitMQ for queue ${namespacedQueueName}: ${(err as Error).message}`, (err as Error).stack);\n this.triggerReconnect(namespacedQueueName, 'initial connection failure');\n }\n\n this.logger.log(`RabbitMqSubscriber ready to consume messages: ${JSON.stringify(options)} and url: ${this.url}`);\n }\n }\n\n private async connectAndConsume(queueName: string): Promise<void> {\n await this.cleanup();\n this.logger.log(`RabbitMqSubscriber in connectAndConsume for queue: ${queueName} and url: ${this.url}`);\n\n let connection: amqp.Connection;\n try {\n connection = await this.establishConnection();\n } catch (err) {\n this.logger.error(`Failed to connect to RabbitMQ for queue ${queueName}: ${(err as Error).message}`, (err as Error).stack);\n throw err;\n }\n\n this.connection = connection;\n\n connection.on('error', (err) => {\n if (connection !== this.connection) return;\n this.logger.error(`RabbitMqSubscriber connection error for queue ${queueName}: ${(err as Error).message}`);\n });\n\n connection.on('close', () => {\n if (connection !== this.connection) return;\n this.logger.warn(`RabbitMqSubscriber connection closed for queue ${queueName}`);\n this.triggerReconnect(queueName, 'connection closed');\n });\n\n const channel = await connection.createChannel();\n this.channel = channel;\n\n channel.on('error', (err) => {\n if (channel !== this.channel) return;\n this.logger.error(`RabbitMqSubscriber channel error for queue ${queueName}: ${(err as Error).message}`);\n });\n\n channel.on('close', () => {\n if (channel !== this.channel) return;\n this.logger.warn(`RabbitMqSubscriber channel closed for queue ${queueName}`);\n this.triggerReconnect(queueName, 'channel closed');\n });\n\n // Process one message at a time per consumer to avoid parallel work on the same subscriber instance.\n await channel.prefetch(1);\n\n // Use a direct exchange with a stable routing key so retry DLX can route back to the main queue.\n const exchangeName = `${queueName}.exchange`;\n const routingKey = `${queueName}.routing-key`;\n const retryQueue = `${queueName}.retry`;\n const failedQueue = `${queueName}.failed`;\n\n await channel.assertExchange(exchangeName, 'direct', {});\n await channel.assertQueue(queueName, {});\n await channel.bindQueue(queueName, exchangeName, routingKey);\n\n // Retry queue uses DLX to route expired messages back to the main exchange/routing key.\n await channel.assertQueue(retryQueue, {\n arguments: {\n 'x-dead-letter-exchange': exchangeName,\n 'x-dead-letter-routing-key': routingKey,\n }\n });\n\n await channel.assertQueue(failedQueue, {});\n\n const consumeResult = await channel.consume(\n queueName,\n async (rawMessage) => {\n if (!rawMessage) {\n return;\n }\n\n let message: QueueMessage<T> = null;\n\n try {\n const messageContentString = rawMessage.content.toString();\n message = JSON.parse(messageContentString) as QueueMessage<T>;\n this.logger.debug(`rabbitmq subscriber received message with id: ${message.messageId} for queue ${queueName}`);\n } catch (error) {\n this.logger.error(`Invalid JSON message on queue ${queueName}: ${(error as Error).message}`);\n await this.publishToFailedQueue(queueName, rawMessage.content, channel, error);\n channel.ack(rawMessage);\n return;\n }\n\n if (!message.retryCount) message.retryCount = 0;\n if (!message.retryInterval) message.retryInterval = 1000;\n if (!message.currentRetry) message.currentRetry = 0;\n\n try {\n await this.processMessage(message, rawMessage, channel);\n } catch (error) {\n await this.handleProcessingError(message, rawMessage, channel, error, queueName);\n }\n },\n // Explicit ack enables reliable processing and retry routing.\n { noAck: false },\n );\n\n this.consumerTag = consumeResult.consumerTag;\n }\n\n // Retry flow: update DB -> increment retry -> send to retry queue with per-message expiration -> ack original.\n private async handleProcessingError(message: QueueMessage<T>, rawMessage: amqp.ConsumeMessage, channel: amqp.Channel, error: any, queueName: string): Promise<void> {\n const errorMessage = (error as Error)?.message || String(error);\n this.logger.error(`Error processing message on queue ${queueName}: ${errorMessage}`);\n\n if (message.currentRetry < message.retryCount) {\n await this.updateStatusInDatabase('retrying', message);\n\n message.currentRetry++;\n const retryQueue = `${queueName}.retry`;\n const payload = Buffer.from(JSON.stringify(message));\n\n // Per-message expiration keeps the message in the retry queue until TTL, then DLX routes it back.\n channel.sendToQueue(retryQueue, payload, {\n expiration: String(message.retryInterval || 1000),\n headers: {\n 'x-error': errorMessage,\n }\n });\n\n channel.ack(rawMessage);\n this.logger.warn(`Retrying message (${message.currentRetry}/${message.retryCount}) after ${message.retryInterval}ms on queue ${queueName}`);\n return;\n }\n\n await this.updateStatusInDatabase('failed', message, errorMessage, '');\n channel.ack(rawMessage);\n await this.publishToFailedQueue(queueName, Buffer.from(JSON.stringify(message)), channel, error);\n this.logger.error(`Message failed after ${message.retryCount} attempts on queue ${queueName}: ${errorMessage}`);\n }\n\n private async publishToFailedQueue(queueName: string, payload: Buffer | string, channel: amqp.Channel, error?: any): Promise<void> {\n const failedQueue = `${queueName}.failed`;\n const body = Buffer.isBuffer(payload) ? payload : Buffer.from(payload);\n const errorMessage = (error as Error)?.message || String(error || '');\n\n try {\n channel.sendToQueue(failedQueue, body, errorMessage ? {\n headers: { 'x-error': errorMessage }\n } : undefined);\n } catch (err) {\n this.logger.error(`Failed to publish to failed queue ${failedQueue}: ${(err as Error).message}`);\n }\n }\n\n private triggerReconnect(queueName: string, reason: string) {\n if (this.stopping) return;\n if (this.reconnectPromise) return;\n\n this.reconnectPromise = this.reconnectLoop(queueName, reason)\n .finally(() => {\n this.reconnectPromise = null;\n });\n }\n\n // Reconnect with backoff to avoid hammering the broker during outages.\n private async reconnectLoop(queueName: string, reason: string): Promise<void> {\n this.logger.warn(`RabbitMqSubscriber reconnecting for queue ${queueName}: ${reason}`);\n\n while (!this.stopping) {\n try {\n await this.connectAndConsume(queueName);\n this.reconnectAttempt = 0;\n this.logger.log(`RabbitMqSubscriber reconnected for queue ${queueName}`);\n return;\n } catch (err) {\n this.reconnectAttempt += 1;\n const delay = this.backoff();\n this.logger.warn(`RabbitMqSubscriber reconnect failed for queue ${queueName}; retrying in ${delay}ms`);\n await this.sleep(delay);\n }\n }\n }\n\n private async cleanup(): Promise<void> {\n const channel = this.channel;\n const connection = this.connection;\n const consumerTag = this.consumerTag;\n\n this.channel = null;\n this.connection = null;\n this.consumerTag = null;\n\n if (channel) {\n try {\n if (consumerTag) {\n await channel.cancel(consumerTag);\n }\n } catch (_) {\n // ignore\n }\n\n try {\n await channel.close();\n } catch (_) {\n // ignore\n }\n }\n\n if (connection) {\n try {\n await connection.close();\n } catch (_) {\n // ignore\n }\n }\n }\n\n private sleep(ms: number): Promise<void> {\n return new Promise(resolve => setTimeout(resolve, ms));\n }\n\n // Exponential backoff with jitter, capped to 30s.\n private backoff(): number {\n const baseMs = 1000;\n const maxMs = 30_000;\n const exp = Math.min(maxMs, baseMs * Math.pow(2, this.reconnectAttempt));\n const jitter = Math.floor(Math.random() * (exp * 0.2));\n return Math.min(maxMs, exp + jitter);\n }\n\n /**\n * Abstract method for message processing logic.\n */\n protected async processMessage(message: QueueMessage<T>, rawMessage, channel): Promise<void> {\n await this.updateStatusInDatabase('started', message);\n\n // Capture the results of handling the task.\n const result = await this.subscribe(message);\n\n // Ack the message. \n channel.ack(rawMessage);\n\n // Persist success output and timing.\n await this.updateStatusInDatabase('succeeded', message, '', result ? JSON.stringify(result, null, 2) : '');\n\n }\n\n private async updateStatusInDatabase(stage: string, message: QueueMessage<T>, error: string = '', result: string = '') {\n\n // Update the existing message record by messageId; creation happens upstream.\n try {\n // 1. resolve the queue first\n const mqMessage = await this.mqMessageService.repo.findOne({\n where: {\n messageId: message.messageId,\n }\n });\n\n if (mqMessage) {\n const updatedFields = {\n stage: stage\n };\n if (stage === 'failed' || stage === 'succeeded') {\n updatedFields['finishedAt'] = new Date();\n updatedFields['elapsedMillis'] = updatedFields['finishedAt'].getTime() - mqMessage.startedAt.getTime();\n }\n if (stage === 'succeeded') {\n updatedFields['output'] = result;\n }\n if (stage === 'failed') {\n updatedFields['error'] = error;\n }\n await this.mqMessageService.repo.update(mqMessage.id, updatedFields);\n }\n }\n catch (error) {\n this.logger.error(error.message, error.stack);\n }\n\n }\n\n}\n"]}
|
|
1
|
+
{"version":3,"file":"rabbitmq-subscriber.service.js","sourceRoot":"","sources":["../../../src/services/queues/rabbitmq-subscriber.service.ts"],"names":[],"mappings":"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","sourcesContent":["import { Logger, OnModuleInit } from '@nestjs/common';\nimport * as amqp from 'amqplib';\nimport { QueuesModuleOptions } from \"../../interfaces\";\nimport { QueueMessage, QueueSubscriber } from '../../interfaces/mq';\nimport { MqMessageQueueService } from '../mq-message-queue.service';\nimport { MqMessageService } from '../mq-message.service';\nimport { buildNamespacedQueueName } from './common';\n\n\nexport abstract class RabbitMqSubscriber<T> implements OnModuleInit, QueueSubscriber<T> { // TODO This can be made a generic type for better type visibility\n private readonly logger = new Logger(RabbitMqSubscriber.name);\n private readonly url: string;\n private readonly serviceRole: string;\n private connection: amqp.Connection | null = null;\n private channel: amqp.Channel | null = null;\n private consumerTag: string | null = null;\n private reconnectPromise: Promise<void> | null = null;\n private reconnectAttempt = 0;\n private stopping = false;\n\n constructor(protected readonly mqMessageService: MqMessageService, protected readonly mqMessageQueueService: MqMessageQueueService) {\n this.url = process.env.QUEUES_RABBIT_MQ_URL;\n this.serviceRole = process.env.QUEUES_SERVICE_ROLE;\n if (!this.url) {\n this.logger.debug('RabbitMqPublisher url is not defined in the environment variables');\n }\n if (!this.serviceRole) {\n this.logger.debug('Queue service Role is not defined in the environment variables');\n }\n // this.logger.debug(`RabbitMqSubscriber instance created with options: ${JSON.stringify(this.options())} and url: ${this.url}`);\n }\n\n abstract subscribe(message: QueueMessage<T>);\n\n abstract options(): QueuesModuleOptions;\n\n async establishConnection(): Promise<amqp.Connection> {\n\n const url = new URL(this.url);\n\n // this.logger.debug(`user: ${url.username}`);\n // // just for local debug, don’t log in prod\n // this.logger.debug(`pass: ${url.password}`);\n // this.logger.debug(`path (vhost): ${url.pathname}`);\n\n const connection = await amqp.connect({\n protocol: url.protocol.replace(':', ''),\n hostname: url.hostname,\n port: parseInt(url.port),\n username: url.username,\n password: decodeURIComponent(url.password),\n frameMax: 131072,\n heartbeat: 30,\n });\n\n return connection\n }\n\n async onModuleInit(): Promise<void> {\n // Not using SettingService here as that will necessitate all implementors of RabbitMqSubscriber to also inject SettingService which is not ideal. \n // Instead we directly read the environment variables here.\n const defaultBroker = process.env.QUEUES_DEFAULT_BROKER || 'rabbitmq';\n const solidCliRunning = process.env.SOLID_CLI_RUNNING || \"false\";\n const queueNameRegex = (process.env.QUEUES_QUEUE_NAME_REGEX_TO_ENABLE || '').trim();\n\n // we will start subscriber only if the current service role is subscriber. \n if (this.url && ['both', 'subscriber'].includes(this.serviceRole) && solidCliRunning === \"false\" && defaultBroker === 'rabbitmq') {\n const options = this.options();\n const queueName = options.queueName;\n\n if (queueNameRegex && queueNameRegex !== \"all\") {\n try {\n const regex = new RegExp(queueNameRegex);\n if (!regex.test(queueName)) {\n this.logger.log(`RabbitMqSubscriber for queue ${queueName} is disabled because it does not match QUEUES_QUEUE_NAME_REGEX_TO_ENABLE=${queueNameRegex}`);\n return;\n }\n } catch (error) {\n this.logger.error(`Invalid QUEUES_QUEUE_NAME_REGEX_TO_ENABLE regex \"${queueNameRegex}\". Subscriber for queue ${queueName} will not start.`);\n return;\n }\n }\n\n const namespacedQueueName = buildNamespacedQueueName(queueName);\n try {\n await this.connectAndConsume(namespacedQueueName);\n } catch (err) {\n this.logger.error(`Failed to connect to RabbitMQ for queue ${namespacedQueueName}: ${(err as Error).message}`, (err as Error).stack);\n this.triggerReconnect(namespacedQueueName, 'initial connection failure');\n }\n\n this.logger.log(`RabbitMqSubscriber ready to consume messages: ${JSON.stringify(options)} and url: ${this.url}`);\n }\n }\n\n private async connectAndConsume(queueName: string): Promise<void> {\n await this.cleanup();\n this.logger.log(`RabbitMqSubscriber in connectAndConsume for queue: ${queueName} and url: ${this.url}`);\n\n const options = this.options();\n const prefetch = options.prefetch ?? 1;\n if (prefetch < 1) {\n throw new Error(`RabbitMqSubscriber prefetch must be >= 1 for queue ${queueName}`);\n }\n\n let connection: amqp.Connection;\n try {\n connection = await this.establishConnection();\n } catch (err) {\n this.logger.error(`Failed to connect to RabbitMQ for queue ${queueName}: ${(err as Error).message}`, (err as Error).stack);\n throw err;\n }\n\n this.connection = connection;\n\n connection.on('error', (err) => {\n if (connection !== this.connection) return;\n this.logger.error(`RabbitMqSubscriber connection error for queue ${queueName}: ${(err as Error).message}`);\n });\n\n connection.on('close', () => {\n if (connection !== this.connection) return;\n this.logger.warn(`RabbitMqSubscriber connection closed for queue ${queueName}`);\n this.triggerReconnect(queueName, 'connection closed');\n });\n\n const channel = await connection.createChannel();\n this.channel = channel;\n\n channel.on('error', (err) => {\n if (channel !== this.channel) return;\n this.logger.error(`RabbitMqSubscriber channel error for queue ${queueName}: ${(err as Error).message}`);\n });\n\n channel.on('close', () => {\n if (channel !== this.channel) return;\n this.logger.warn(`RabbitMqSubscriber channel closed for queue ${queueName}`);\n this.triggerReconnect(queueName, 'channel closed');\n });\n\n // Process one message at a time per consumer to avoid parallel work on the same subscriber instance.\n await channel.prefetch(prefetch);\n\n // Use a direct exchange with a stable routing key so retry DLX can route back to the main queue.\n const exchangeName = `${queueName}.exchange`;\n const routingKey = `${queueName}.routing-key`;\n const retryQueue = `${queueName}.retry`;\n const failedQueue = `${queueName}.failed`;\n\n await channel.assertExchange(exchangeName, 'direct', {});\n await channel.assertQueue(queueName, {});\n await channel.bindQueue(queueName, exchangeName, routingKey);\n\n // Retry queue uses DLX to route expired messages back to the main exchange/routing key.\n await channel.assertQueue(retryQueue, {\n arguments: {\n 'x-dead-letter-exchange': exchangeName,\n 'x-dead-letter-routing-key': routingKey,\n }\n });\n\n await channel.assertQueue(failedQueue, {});\n\n const consumeResult = await channel.consume(\n queueName,\n async (rawMessage) => {\n if (!rawMessage) {\n return;\n }\n\n let message: QueueMessage<T> = null;\n\n try {\n const messageContentString = rawMessage.content.toString();\n message = JSON.parse(messageContentString) as QueueMessage<T>;\n this.logger.debug(`rabbitmq subscriber received message with id: ${message.messageId} for queue ${queueName}`);\n } catch (error) {\n this.logger.error(`Invalid JSON message on queue ${queueName}: ${(error as Error).message}`);\n await this.publishToFailedQueue(queueName, rawMessage.content, channel, error);\n channel.ack(rawMessage);\n return;\n }\n\n if (!message.retryCount) message.retryCount = 0;\n if (!message.retryInterval) message.retryInterval = 1000;\n if (!message.currentRetry) message.currentRetry = 0;\n\n try {\n await this.processMessage(message, rawMessage, channel);\n } catch (error) {\n await this.handleProcessingError(message, rawMessage, channel, error, queueName);\n }\n },\n // Explicit ack enables reliable processing and retry routing.\n { noAck: false },\n );\n\n this.consumerTag = consumeResult.consumerTag;\n }\n\n // Retry flow: update DB -> increment retry -> send to retry queue with per-message expiration -> ack original.\n private async handleProcessingError(message: QueueMessage<T>, rawMessage: amqp.ConsumeMessage, channel: amqp.Channel, error: any, queueName: string): Promise<void> {\n const errorMessage = (error as Error)?.message || String(error);\n this.logger.error(`Error processing message on queue ${queueName}: ${errorMessage}`);\n\n if (message.currentRetry < message.retryCount) {\n await this.updateStatusInDatabase('retrying', message);\n\n message.currentRetry++;\n const retryQueue = `${queueName}.retry`;\n const payload = Buffer.from(JSON.stringify(message));\n\n // Per-message expiration keeps the message in the retry queue until TTL, then DLX routes it back.\n channel.sendToQueue(retryQueue, payload, {\n expiration: String(message.retryInterval || 1000),\n headers: {\n 'x-error': errorMessage,\n }\n });\n\n channel.ack(rawMessage);\n this.logger.warn(`Retrying message (${message.currentRetry}/${message.retryCount}) after ${message.retryInterval}ms on queue ${queueName}`);\n return;\n }\n\n await this.updateStatusInDatabase('failed', message, errorMessage, '');\n channel.ack(rawMessage);\n await this.publishToFailedQueue(queueName, Buffer.from(JSON.stringify(message)), channel, error);\n this.logger.error(`Message failed after ${message.retryCount} attempts on queue ${queueName}: ${errorMessage}`);\n }\n\n private async publishToFailedQueue(queueName: string, payload: Buffer | string, channel: amqp.Channel, error?: any): Promise<void> {\n const failedQueue = `${queueName}.failed`;\n const body = Buffer.isBuffer(payload) ? payload : Buffer.from(payload);\n const errorMessage = (error as Error)?.message || String(error || '');\n\n try {\n channel.sendToQueue(failedQueue, body, errorMessage ? {\n headers: { 'x-error': errorMessage }\n } : undefined);\n } catch (err) {\n this.logger.error(`Failed to publish to failed queue ${failedQueue}: ${(err as Error).message}`);\n }\n }\n\n private triggerReconnect(queueName: string, reason: string) {\n if (this.stopping) return;\n if (this.reconnectPromise) return;\n\n this.reconnectPromise = this.reconnectLoop(queueName, reason)\n .finally(() => {\n this.reconnectPromise = null;\n });\n }\n\n // Reconnect with backoff to avoid hammering the broker during outages.\n private async reconnectLoop(queueName: string, reason: string): Promise<void> {\n this.logger.warn(`RabbitMqSubscriber reconnecting for queue ${queueName}: ${reason}`);\n\n while (!this.stopping) {\n try {\n await this.connectAndConsume(queueName);\n this.reconnectAttempt = 0;\n this.logger.log(`RabbitMqSubscriber reconnected for queue ${queueName}`);\n return;\n } catch (err) {\n this.reconnectAttempt += 1;\n const delay = this.backoff();\n this.logger.warn(`RabbitMqSubscriber reconnect failed for queue ${queueName}; retrying in ${delay}ms`);\n await this.sleep(delay);\n }\n }\n }\n\n private async cleanup(): Promise<void> {\n const channel = this.channel;\n const connection = this.connection;\n const consumerTag = this.consumerTag;\n\n this.channel = null;\n this.connection = null;\n this.consumerTag = null;\n\n if (channel) {\n try {\n if (consumerTag) {\n await channel.cancel(consumerTag);\n }\n } catch (_) {\n // ignore\n }\n\n try {\n await channel.close();\n } catch (_) {\n // ignore\n }\n }\n\n if (connection) {\n try {\n await connection.close();\n } catch (_) {\n // ignore\n }\n }\n }\n\n private sleep(ms: number): Promise<void> {\n return new Promise(resolve => setTimeout(resolve, ms));\n }\n\n // Exponential backoff with jitter, capped to 30s.\n private backoff(): number {\n const baseMs = 1000;\n const maxMs = 30_000;\n const exp = Math.min(maxMs, baseMs * Math.pow(2, this.reconnectAttempt));\n const jitter = Math.floor(Math.random() * (exp * 0.2));\n return Math.min(maxMs, exp + jitter);\n }\n\n /**\n * Abstract method for message processing logic.\n */\n protected async processMessage(message: QueueMessage<T>, rawMessage, channel): Promise<void> {\n await this.updateStatusInDatabase('started', message);\n\n // Capture the results of handling the task.\n const result = await this.subscribe(message);\n\n // Ack the message. \n channel.ack(rawMessage);\n\n // Persist success output and timing.\n await this.updateStatusInDatabase('succeeded', message, '', result ? JSON.stringify(result, null, 2) : '');\n\n }\n\n private async updateStatusInDatabase(stage: string, message: QueueMessage<T>, error: string = '', result: string = '') {\n\n // Update the existing message record by messageId; creation happens upstream.\n try {\n // 1. resolve the queue first\n const mqMessage = await this.mqMessageService.repo.findOne({\n where: {\n messageId: message.messageId,\n }\n });\n\n if (mqMessage) {\n const updatedFields = {\n stage: stage\n };\n if (stage === 'failed' || stage === 'succeeded') {\n updatedFields['finishedAt'] = new Date();\n updatedFields['elapsedMillis'] = updatedFields['finishedAt'].getTime() - mqMessage.startedAt.getTime();\n }\n if (stage === 'succeeded') {\n updatedFields['output'] = result;\n }\n if (stage === 'failed') {\n updatedFields['error'] = error;\n }\n await this.mqMessageService.repo.update(mqMessage.id, updatedFields);\n }\n }\n catch (error) {\n this.logger.error(error.message, error.stack);\n }\n\n }\n\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"solid-core.module.d.ts","sourceRoot":"","sources":["../src/solid-core.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,kBAAkB,EAAU,UAAU,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"solid-core.module.d.ts","sourceRoot":"","sources":["../src/solid-core.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,kBAAkB,EAAU,UAAU,EAAE,MAAM,gBAAgB,CAAC;AA6UhF,qBA8ba,eAAgB,YAAW,UAAU;IAChD,SAAS,CAAC,QAAQ,EAAE,kBAAkB;CAKvC"}
|
|
@@ -171,6 +171,8 @@ const saved_filters_controller_1 = require("./controllers/saved-filters.controll
|
|
|
171
171
|
const scheduled_job_controller_1 = require("./controllers/scheduled-job.controller");
|
|
172
172
|
const security_rule_controller_1 = require("./controllers/security-rule.controller");
|
|
173
173
|
const setting_controller_1 = require("./controllers/setting.controller");
|
|
174
|
+
const info_controller_1 = require("./controllers/info.controller");
|
|
175
|
+
const info_service_1 = require("./services/info.service");
|
|
174
176
|
const user_activity_history_controller_1 = require("./controllers/user-activity-history.controller");
|
|
175
177
|
const user_view_metadata_controller_1 = require("./controllers/user-view-metadata.controller");
|
|
176
178
|
const user_controller_1 = require("./controllers/user.controller");
|
|
@@ -458,6 +460,7 @@ exports.SolidCoreModule = SolidCoreModule = __decorate([
|
|
|
458
460
|
security_rule_controller_1.SecurityRuleController,
|
|
459
461
|
service_controller_1.ServiceController,
|
|
460
462
|
setting_controller_1.SettingController,
|
|
463
|
+
info_controller_1.InfoController,
|
|
461
464
|
sms_template_controller_1.SmsTemplateController,
|
|
462
465
|
test_controller_1.TestController,
|
|
463
466
|
test_queue_controller_1.TestQueueController,
|
|
@@ -497,6 +500,7 @@ exports.SolidCoreModule = SolidCoreModule = __decorate([
|
|
|
497
500
|
refresh_model_command_1.RefreshModelCommand,
|
|
498
501
|
refresh_module_command_1.RefreshModuleCommand,
|
|
499
502
|
info_command_1.InfoCommand,
|
|
503
|
+
info_service_1.InfoService,
|
|
500
504
|
solid_introspect_service_1.SolidIntrospectService,
|
|
501
505
|
core_1.DiscoveryService,
|
|
502
506
|
r2r_helper_service_1.R2RHelperService,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"solid-core.module.js","sourceRoot":"","sources":["../src/solid-core.module.ts"],"names":[],"mappings":"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","sourcesContent":["import { Global, MiddlewareConsumer, Module, NestModule } from '@nestjs/common';\nimport * as express from 'express';\nimport { ConfigModule, ConfigService } from '@nestjs/config';\nimport {\n APP_FILTER,\n APP_GUARD,\n APP_INTERCEPTOR,\n DiscoveryService,\n MetadataScanner,\n Reflector,\n} from '@nestjs/core';\nimport { MulterModule } from '@nestjs/platform-express';\nimport { TypeOrmModule } from '@nestjs/typeorm';\nimport { RemoveFieldsCommand } from './commands/remove-fields.command';\nimport { FieldMetadataController } from './controllers/field-metadata.controller';\nimport { MediaStorageProviderMetadataController } from './controllers/media-storage-provider-metadata.controller';\nimport { ModelMetadataController } from './controllers/model-metadata.controller';\nimport { ModuleMetadataController } from './controllers/module-metadata.controller';\nimport { TestController } from './controllers/test.controller';\nimport { FieldMetadata } from './entities/field-metadata.entity';\nimport { ListOfValues } from './entities/list-of-values.entity';\nimport { MediaStorageProviderMetadata } from './entities/media-storage-provider-metadata.entity';\nimport { Media } from './entities/media.entity';\nimport { ModelMetadata } from './entities/model-metadata.entity';\nimport { ModuleMetadata } from './entities/module-metadata.entity';\nimport { CommandService } from './helpers/command.service';\nimport { SchematicService } from './helpers/schematic.service';\nimport { ListOfValuesSelectionProvider } from './services/selection-providers/list-of-values-selection-providers.service';\nimport { PseudoForeignKeySelectionProvider } from './services/selection-providers/pseudo-foreign-key-selection-provider.service'\nimport { ModuleMetadataSeederService } from './seeders/module-metadata-seeder.service';\nimport { ModuleTestDataService } from './seeders/module-test-data.service';\nimport { CrudHelperService } from './services/crud-helper.service';\nimport { FieldMetadataService } from './services/field-metadata.service';\nimport { ListOfValuesService } from './services/list-of-values.service';\n// import { MediaStorageProviderMetadataSeederService } from './services/media-storage-provider-metadata-seeder.service';\nimport { MediaStorageProviderMetadataService } from './services/media-storage-provider-metadata.service';\nimport { MediaService } from './services/media.service';\nimport { ModelMetadataService } from './services/model-metadata.service';\nimport { ModuleMetadataService } from './services/module-metadata.service';\nimport { SolidIntrospectService } from './services/solid-introspect.service';\n// import { ListOfComputedFieldProvider } from './providers/list-of-computed-field-provider.service';\nimport { ServeStaticModule } from '@nestjs/serve-static';\nimport { join } from 'path';\nimport { RefreshModelCommand } from './commands/refresh-model.command';\nimport { MediaController } from './controllers/media.controller';\n\nimport { RefreshModuleCommand } from './commands/refresh-module.command';\nimport { ModelMetadataSubscriber } from './subscribers/model-metadata.subscriber';\n\nimport { ViewMetadataController } from './controllers/view-metadata.controller';\nimport { ViewMetadata } from './entities/view-metadata.entity';\nimport { ViewMetadataService } from './services/view-metadata.service';\n\nimport { ActionMetadataController } from './controllers/action-metadata.controller';\nimport { ActionMetadata } from './entities/action-metadata.entity';\nimport { ActionMetadataService } from './services/action-metadata.service';\n\nimport { HttpModule } from '@nestjs/axios';\nimport { JwtModule } from '@nestjs/jwt';\nimport { SeedCommand } from './commands/seed.command';\nimport { TestDataCommand } from './commands/test-data.command';\nimport { TestRunCommand } from './commands/run-tests.command';\nimport { TestCommand } from './commands/test.command';\nimport { AuthenticationController } from './controllers/authentication.controller';\nimport { EmailTemplateController } from './controllers/email-template.controller';\nimport { GoogleAuthenticationController } from './controllers/google-authentication.controller';\nimport { MenuItemMetadataController } from './controllers/menu-item-metadata.controller';\nimport { MqMessageQueueController } from './controllers/mq-message-queue.controller';\nimport { MqMessageController } from './controllers/mq-message.controller';\nimport { OTPAuthenticationController } from './controllers/otp-authentication.controller';\nimport { ServiceController } from './controllers/service.controller';\nimport { SmsTemplateController } from './controllers/sms-template.controller';\nimport { TestQueueController } from './controllers/test-queue.controller';\nimport { EmailAttachment } from './entities/email-attachment.entity';\nimport { EmailTemplate } from './entities/email-template.entity';\nimport { MenuItemMetadata } from './entities/menu-item-metadata.entity';\nimport { MqMessageQueue } from './entities/mq-message-queue.entity';\nimport { MqMessage } from './entities/mq-message.entity';\nimport { SmsTemplate } from './entities/sms-template.entity';\nimport { AccessTokenGuard } from './guards/access-token.guard';\nimport { AuthenticationGuard } from './guards/authentication.guard';\nimport { PermissionsGuard } from './guards/permissions.guard';\nimport { SolidRegistry } from './helpers/solid-registry';\nimport { LoggingInterceptor } from './interceptors/logging.interceptor';\nimport { ApiEmailQueuePublisher } from './jobs/api-email-publisher.service';\nimport { ApiEmailQueueSubscriber } from './jobs/api-email-subscriber.service';\nimport { TestQueuePublisherDatabase } from './jobs/database/test-queue-publisher-database.service';\nimport { TestQueueSubscriberDatabase } from './jobs/database/test-queue-subscriber-database.service';\nimport { Msg91WhatsappQueuePublisher } from './jobs/msg91-whatsapp-publisher.service';\nimport { Msg91WhatsappQueueSubscriber } from './jobs/msg91-whatsapp-subscriber.service';\nimport { Msg91OTPQueuePublisher } from './jobs/msg91-otp-publisher.service';\nimport { Msg91OTPQueueSubscriber } from './jobs/msg91-otp-subscriber.service';\nimport { Msg91SmsQueuePublisher } from './jobs/msg91-sms-publisher.service';\nimport { Msg91SmsQueueSubscriber } from './jobs/msg91-sms-subscriber.service';\nimport { SmtpEmailQueuePublisherRabbitmq } from './jobs/smtp-email-publisher.service';\nimport { SmtpEmailQueueSubscriberRabbitmq } from './jobs/smtp-email-subscriber.service';\nimport { TestQueuePublisher } from './jobs/test-queue-publisher.service';\nimport { TestQueueSubscriber } from './jobs/test-queue-subscriber.service';\nimport { UserRegistrationListener } from './listeners/user-registration.listener';\nimport { GoogleOauthStrategy } from './passport-strategies/google-oauth.strategy';\nimport { AuthenticationService } from './services/authentication.service';\nimport { BcryptService } from './services/bcrypt.service';\nimport { UuidExternalIdEntityComputedFieldProvider } from './services/computed-fields/entity/uuid-externalid-entity-computed-field-provider.service';\nimport { UuidExternalIdComputedFieldProvider } from './services/computed-fields/uuid-external-id-computed-field-provider.service';\nimport { EmailTemplateService } from './services/email-template.service';\nimport { DiskFileService, S3FileService, FileServiceFactory, DiskStoragePathBuilder, S3StoragePathBuilder, StoragePathBuilderFactory } from './services/file';\nimport { HashingService } from './services/hashing.service';\nimport { ElasticEmailService } from './services/mail/elastic-email.service';\nimport { SMTPEMailService } from './services/mail/smtp-email.service';\nimport { MenuItemMetadataService } from './services/menu-item-metadata.service';\nimport { MqMessageQueueService } from './services/mq-message-queue.service';\nimport { MqMessageService } from './services/mq-message.service';\nimport { PdfService } from './services/pdf.service';\nimport { RefreshTokenIdsStorageService } from './services/refresh-token-ids-storage.service';\nimport { ListOfModelsSelectionProvider } from './services/selection-providers/list-of-models-selection-provider.service';\nimport { TinyUrlService } from './services/short-url/tiny-url.service';\nimport { SmsTemplateService } from './services/sms-template.service';\nimport { Msg91OTPService } from './services/sms/Msg91OTPService';\nimport { Msg91SMSService } from './services/sms/Msg91SMSService';\n// import { UserService } from './services/user.service';\nimport { Msg91WhatsappService } from './services/whatsapp/Msg91WhatsappService';\nimport { SoftDeleteAwareEventSubscriber } from './subscribers/soft-delete-aware-event.subscriber';\n\nimport { PermissionMetadataController } from './controllers/permission-metadata.controller';\nimport { PermissionMetadata } from './entities/permission-metadata.entity';\nimport { PermissionMetadataService } from './services/permission-metadata.service';\n\nimport { ScheduleModule } from '@nestjs/schedule';\nimport { ClsModule } from 'nestjs-cls';\nimport { AiInteractionController } from './controllers/ai-interaction.controller';\nimport { ChatterMessageDetailsController } from './controllers/chatter-message-details.controller';\nimport { ChatterMessageController } from './controllers/chatter-message.controller';\nimport { DashboardQuestionSqlDatasetConfigController } from './controllers/dashboard-question-sql-dataset-config.controller';\nimport { DashboardQuestionController } from './controllers/dashboard-question.controller';\nimport { DashboardVariableController } from './controllers/dashboard-variable.controller';\nimport { DashboardController } from './controllers/dashboard.controller';\nimport { ExportTemplateController } from './controllers/export-template.controller';\nimport { ExportTransactionController } from './controllers/export-transaction.controller';\nimport { ImportTransactionErrorLogController } from './controllers/import-transaction-error-log.controller';\nimport { ImportTransactionController } from './controllers/import-transaction.controller';\nimport { ListOfValuesController } from './controllers/list-of-values.controller';\nimport { LocaleController } from './controllers/locale.controller';\nimport { RoleMetadataController } from './controllers/role-metadata.controller';\nimport { SavedFiltersController } from './controllers/saved-filters.controller';\nimport { ScheduledJobController } from './controllers/scheduled-job.controller';\nimport { SecurityRuleController } from './controllers/security-rule.controller';\nimport { SettingController } from './controllers/setting.controller';\nimport { UserActivityHistoryController } from './controllers/user-activity-history.controller';\nimport { UserViewMetadataController } from './controllers/user-view-metadata.controller';\nimport { UserController } from './controllers/user.controller';\nimport { AiInteraction } from './entities/ai-interaction.entity';\nimport { ChatterMessageDetails } from './entities/chatter-message-details.entity';\nimport { ChatterMessage } from './entities/chatter-message.entity';\nimport { DashboardQuestionSqlDatasetConfig } from './entities/dashboard-question-sql-dataset-config.entity';\nimport { DashboardQuestion } from './entities/dashboard-question.entity';\nimport { DashboardVariable } from './entities/dashboard-variable.entity';\nimport { Dashboard } from './entities/dashboard.entity';\nimport { ExportTemplate } from './entities/export-template.entity';\nimport { ExportTransaction } from './entities/export-transaction.entity';\nimport { ImportTransactionErrorLog } from './entities/import-transaction-error-log.entity';\nimport { ImportTransaction } from './entities/import-transaction.entity';\nimport { Locale } from './entities/locale.entity';\nimport { RoleMetadata } from './entities/role-metadata.entity';\nimport { SavedFilters } from './entities/saved-filters.entity';\nimport { ScheduledJob } from './entities/scheduled-job.entity';\nimport { SecurityRule } from './entities/security-rule.entity';\nimport { Setting } from './entities/setting.entity';\nimport { UserActivityHistory } from './entities/user-activity-history.entity';\nimport { UserViewMetadata } from './entities/user-view-metadata.entity';\nimport { User } from './entities/user.entity';\nimport { HttpExceptionFilter } from './filters/http-exception.filter';\nimport { ModelMetadataHelperService } from './helpers/model-metadata-helper.service';\nimport { ModuleMetadataHelperService } from './helpers/module-metadata-helper.service';\nimport { ApiEmailQueuePublisherDatabase } from './jobs/database/api-email-publisher-database.service';\nimport { ApiEmailQueueSubscriberDatabase } from './jobs/database/api-email-subscriber-database.service';\nimport { ComputedFieldEvaluationPublisherDatabase } from './jobs/database/computed-field-evaluation-publisher-database.service';\nimport { ComputedFieldEvaluationSubscriberDatabase } from './jobs/database/computed-field-evaluation-subscriber-database.service';\nimport { GenerateCodePublisherDatabase } from './jobs/database/generate-code-publisher-database.service';\nimport { GenerateCodeSubscriberDatabase } from './jobs/database/generate-code-subscriber-database.service';\nimport { OTPQueuePublisherDatabase } from './jobs/database/otp-publisher-database.service';\nimport { OTPQueueSubscriberDatabase } from './jobs/database/otp-subscriber-database.service';\nimport { Msg91SmsQueuePublisherDatabase } from './jobs/database/msg91-sms-publisher-database.service';\nimport { Msg91SmsQueueSubscriberDatabase } from './jobs/database/msg91-sms-subscriber-database.service';\nimport { SmtpEmailQueuePublisherDatabase } from './jobs/database/smtp-email-publisher-database.service';\nimport { SmtpEmailQueueSubscriberDatabase } from './jobs/database/smtp-email-subscriber-database.service';\n\nimport { TwilioSmsQueuePublisherDatabase } from './jobs/database/twilio-sms-publisher-database.service';\nimport { TwilioSmsQueueSubscriberDatabase } from './jobs/database/twilio-sms-subscriber-database.service';\n\n\n// import { ThrottlerModule } from '@nestjs/throttler';\nimport { IngestCommand } from './commands/ingest.command';\nimport { MailFactory } from './factories/mail.factory';\nimport { ErrorMapperService } from './helpers/error-mapper.service';\nimport { SolidCoreErrorCodesProvider } from './helpers/solid-core-error-codes-provider.service';\nimport { ComputedFieldEvaluationPublisherRabbitmq } from './jobs/computed-field-evaluation-publisher.service';\nimport { ComputedFieldEvaluationSubscriberRabbitmq } from './jobs/computed-field-evaluation-subscriber.service';\nimport { Msg91WhatsappQueuePublisherDatabase } from './jobs/database/msg91-whatsapp-publisher-database.service';\nimport { Msg91WhatsappQueueSubscriberDatabase } from './jobs/database/msg91-whatsapp-subscriber-database.service';\nimport { Three60WhatsappQueuePublisherDatabase } from './jobs/database/three60-whatsapp-publisher-database.service';\nimport { Three60WhatsappQueueSubscriberDatabase } from './jobs/database/three60-whatsapp-subscriber-database.service';\nimport { TriggerMcpClientPublisherDatabase } from './jobs/database/trigger-mcp-client-publisher-database.service';\nimport { TriggerMcpClientSubscriberDatabase } from './jobs/database/trigger-mcp-client-subscriber-database.service';\nimport { GenerateCodePublisherRabbitmq } from './jobs/generate-code-publisher.service';\nimport { GenerateCodeSubscriberRabbitmq } from './jobs/generate-code-subscriber.service';\nimport { Three60WhatsappQueuePublisher } from './jobs/three60-whatsapp-publisher.service';\nimport { Three60WhatsappQueueSubscriber } from './jobs/three60-whatsapp-subscriber.service';\nimport { TriggerMcpClientPublisherRabbitmq } from './jobs/trigger-mcp-client-publisher.service';\nimport { TriggerMcpClientSubscriberRabbitmq } from './jobs/trigger-mcp-client-subscriber.service';\nimport { TwilioSmsQueuePublisherRabbitmq } from './jobs/twilio-sms-publisher.service';\nimport { TwilioSmsQueueSubscriberRabbitmq } from './jobs/twilio-sms-subscriber.service';\nimport { DashboardMapper } from './mappers/dashboard-mapper';\nimport { ListOfValuesMapper } from './mappers/list-of-values-mapper';\nimport { ActionMetadataRepository } from './repository/action-metadata.repository';\nimport { AiInteractionRepository } from './repository/ai-interaction.repository';\nimport { ChatterMessageDetailsRepository } from './repository/chatter-message-details.repository';\nimport { ChatterMessageRepository } from './repository/chatter-message.repository';\nimport { DashboardQuestionSqlDatasetConfigRepository } from './repository/dashboard-question-sql-dataset-config.repository';\nimport { DashboardQuestionRepository } from './repository/dashboard-question.repository';\nimport { DashboardVariableRepository } from './repository/dashboard-variable.repository';\nimport { DashboardRepository } from './repository/dashboard.repository';\nimport { EmailTemplateRepository } from './repository/email-template.repository';\nimport { ExportTemplateRepository } from './repository/export-template.repository';\nimport { ExportTransactionRepository } from './repository/export-transaction.repository';\nimport { FieldMetadataRepository } from './repository/field-metadata.repository';\nimport { ImportTransactionErrorLogRepository } from './repository/import-transaction-error-log.repository';\nimport { ImportTransactionRepository } from './repository/import-transaction.repository';\nimport { ListOfValuesRepository } from './repository/list-of-values.repository';\nimport { LocaleRepository } from './repository/locale.repository';\nimport { MediaRepository } from './repository/media.repository';\nimport { MenuItemMetadataRepository } from './repository/menu-item-metadata.repository';\nimport { ModelMetadataRepository } from './repository/model-metadata.repository';\nimport { ModuleMetadataRepository } from './repository/module-metadata.repository';\nimport { MqMessageQueueRepository } from './repository/mq-message-queue.repository';\nimport { MqMessageRepository } from './repository/mq-message.repository';\nimport { PermissionMetadataRepository } from './repository/permission-metadata.repository';\nimport { RoleMetadataRepository } from './repository/role-metadata.repository';\nimport { SavedFiltersRepository } from './repository/saved-filters.repository';\nimport { ScheduledJobRepository } from './repository/scheduled-job.repository';\nimport { SecurityRuleRepository } from './repository/security-rule.repository';\nimport { SettingRepository } from './repository/setting.repository';\nimport { SmsTemplateRepository } from './repository/sms-template.repository';\nimport { UserActivityHistoryRepository } from './repository/user-activity-history.repository';\nimport { UserViewMetadataRepository } from './repository/user-view-metadata.repository';\nimport { UserRepository } from './repository/user.repository';\nimport { ViewMetadataRepository } from './repository/view-metadata.repository';\nimport { PermissionMetadataSeederService } from './seeders/permission-metadata-seeder.service';\nimport { SystemFieldsSeederService } from './seeders/system-fields-seeder.service';\nimport { AiInteractionService } from './services/ai-interaction.service';\nimport { ChatterMessageDetailsService } from './services/chatter-message-details.service';\nimport { ChatterMessageService } from './services/chatter-message.service';\nimport { ConcatComputedFieldProvider } from './services/computed-fields/concat-computed-field-provider.service';\nimport { AlphaNumExternalIdComputationProvider } from './services/computed-fields/entity/alpha-num-external-id-computed-field-provider';\nimport { ConcatEntityComputedFieldProvider } from './services/computed-fields/entity/concat-entity-computed-field-provider.service';\nimport { NoopsEntityComputedFieldProviderService } from './services/computed-fields/entity/noops-entity-computed-field-provider.service';\nimport { CRUDService } from './services/crud.service';\nimport { CsvService } from './services/csv.service';\nimport { DashboardQuestionSqlDatasetConfigService } from './services/dashboard-question-sql-dataset-config.service';\nimport { DashboardQuestionService } from './services/dashboard-question.service';\nimport { DashboardVariableSQLDynamicProvider } from './services/dashboard-selection-providers/dashboard-variable-sql-dynamic-provider.service';\nimport { DasbhoardVariableTestDynamicProvider } from './services/dashboard-selection-providers/dashboard-variable-test-dynamic-provider.service';\nimport { DashboardVariableService } from './services/dashboard-variable.service';\nimport { DashboardService } from './services/dashboard.service';\nimport { ExcelService } from './services/excel.service';\nimport { ExportTemplateService } from './services/export-template.service';\nimport { ExportTransactionService } from './services/export-transaction.service';\nimport { IngestMetadataService } from './services/genai/ingest-metadata.service';\nimport { McpHandlerFactory } from './services/genai/mcp-handlers/mcp-handler-factory.service';\nimport { R2RHelperService } from './services/genai/r2r-helper.service';\nimport { ImportTransactionErrorLogService } from './services/import-transaction-error-log.service';\nimport { ImportTransactionService } from './services/import-transaction.service';\nimport { LocaleService } from './services/locale.service';\nimport { FileS3StorageProvider } from './services/mediaStorageProviders/file-s3-storage-provider';\nimport { FileStorageProvider } from './services/mediaStorageProviders/file-storage-provider';\nimport { PollerService } from './services/poller.service';\nimport { ChartJsSqlDataProvider } from './services/question-data-providers/chartjs-sql-data-provider.service';\nimport { PrimeReactDatatableSqlDataProvider } from './services/question-data-providers/prime-react-datatable-sql-data-provider.service';\nimport { PrimeReactMeterGroupSqlDataProvider } from './services/question-data-providers/prime-react-meter-group-sql-data-provider.service';\nimport { PublisherFactory } from './services/queues/publisher-factory.service';\nimport { RequestContextService } from './services/request-context.service';\nimport { RoleMetadataService } from './services/role-metadata.service';\nimport { SavedFiltersService } from './services/saved-filters.service';\nimport { ScheduledJobService } from './services/scheduled-job.service';\nimport { SchedulerServiceImpl } from './services/scheduled-jobs/scheduler.service';\nimport { SecurityRuleService } from './services/security-rule.service';\nimport { ListOfDashboardQuestionProvidersSelectionProvider } from './services/selection-providers/list-of-dashboard-question-providers-selection-provider.service';\nimport { ListOfDashboardVariableProvidersSelectionProvider } from './services/selection-providers/list-of-dashboard-variable-providers-selection-provider.service';\nimport { ListOfScheduledJobsSelectionProvider } from './services/selection-providers/list-of-scheduled-jobs-selection-provider.service';\nimport { LocaleListSelectionProvider } from './services/selection-providers/locale-list-selection-provider.service';\nimport { SettingService } from './services/setting.service';\nimport { TwilioSMSService } from './services/sms/TwilioSMSService';\nimport { SolidTsMorphService } from './services/solid-ts-morph.service';\nimport { SqlExpressionResolverService } from './services/sql-expression-resolver.service';\nimport { TextractService } from './services/textract.service';\nimport { UserActivityHistoryService } from './services/user-activity-history.service';\nimport { UserViewMetadataService } from './services/user-view-metadata.service';\nimport { UserService } from './services/user.service';\nimport { Three60WhatsappService } from './services/whatsapp/Three60WhatsappService';\nimport { AuditSubscriber } from './subscribers/audit.subscriber';\nimport { ComputedEntityFieldSubscriber } from './subscribers/computed-entity-field.subscriber';\nimport { CreatedByUpdatedBySubscriber } from './subscribers/created-by-updated-by.subscriber';\nimport { DashboardQuestionSqlDatasetConfigSubscriber } from './subscribers/dashboard-question-sql-dataset-config.subscriber';\nimport { DashboardQuestionSubscriber } from './subscribers/dashboard-question.subscriber';\nimport { DashboardVariableSubscriber } from './subscribers/dashboard-variable.subscriber';\nimport { DashboardSubscriber } from './subscribers/dashboard.subscriber';\nimport { ListOfValuesSubscriber } from './subscribers/list-of-values.subscriber';\nimport { ScheduledJobSubscriber } from './subscribers/scheduled-job.subscriber';\nimport { SecurityRuleSubscriber } from './subscribers/security-rule.subscriber';\nimport { ViewMetadataSubsciber } from './subscribers/view-metadata.subscriber';\nimport { MediaStorageProviderMetadataRepository } from './repository/media-storage-provider-metadata.repository';\nimport { McpCommand } from './commands/mcp.command';\nimport { FixturesService } from './services/fixtures.service';\nimport { FixturesSetupCommand } from './commands/fixtures/fixtures-setup.command';\nimport { FixturesTearDownCommand } from './commands/fixtures/fixtures-tear-down.command';\nimport { DatabaseBootstrapService } from './services/database/database-bootstrap.service';\nimport { SequenceNumComputedFieldProvider } from './services/computed-fields/entity/sequence-num-computed-field-provider';\nimport { ModelSequence } from './entities/model-sequence.entity';\nimport { ModelSequenceService } from './services/model-sequence.service';\nimport { ModelSequenceController } from './controllers/model-sequence.controller';\nimport { ModelSequenceRepository } from './repository/model-sequence.repository';\nimport { CacheModule } from '@nestjs/cache-manager';\nimport { CacheManagerOptions } from './config/cache.options';\nimport { SolidCoreDefaultSettingsProvider } from './services/settings/default-settings-provider.service';\nimport { SmsFactory } from './factories/sms.factory';\nimport { WhatsAppFactory } from './factories/whatsapp.factory';\nimport { ImageEncodingService } from './helpers/image-encoding.helper';\nimport { SolidMicroserviceAdapter } from './helpers/solid-microservice-adapter.service';\nimport { InfoCommand } from './commands/info.command';\nimport { ListOfRolesSelectionProvider } from './services/selection-providers/list-of-roles-selectionproviders.service';\n\n\n@Global()\n@Module({\n imports: [\n TypeOrmModule.forFeature([\n ActionMetadata,\n AiInteraction,\n ChatterMessage,\n ChatterMessageDetails,\n Dashboard,\n DashboardQuestion,\n DashboardQuestionSqlDatasetConfig,\n DashboardVariable,\n EmailAttachment,\n EmailTemplate,\n ExportTemplate,\n ExportTransaction,\n FieldMetadata,\n ImportTransaction,\n ImportTransactionErrorLog,\n ListOfValues,\n Locale,\n Media,\n MediaStorageProviderMetadata,\n MenuItemMetadata,\n ModelMetadata,\n ModuleMetadata,\n MqMessage,\n MqMessageQueue,\n PermissionMetadata,\n RoleMetadata,\n SavedFilters,\n ScheduledJob,\n SecurityRule,\n Setting,\n SmsTemplate,\n User,\n UserActivityHistory,\n UserViewMetadata,\n ViewMetadata,\n ModelSequence,\n ]),\n\n CacheModule.registerAsync(CacheManagerOptions),\n ScheduleModule.forRoot(),\n ServeStaticModule.forRoot({\n rootPath: join(process.cwd(), 'media-files-storage'),\n serveRoot: '/media-files-storage',\n serveStaticOptions: {\n setHeaders: (res /*, path, stat*/) => {\n // Allow use of these files from a different origin (e.g., :3000 UI)\n // Use 'same-site' if both origins are on the same site (localhost:* counts as same-site)\n res.setHeader('Cross-Origin-Resource-Policy', 'cross-origin'); // or 'same-site'\n\n // If you need to load into <canvas> without tainting or fetch images via XHR,\n // you can also expose CORS here (not needed for simple <img>):\n // res.setHeader('Access-Control-Allow-Origin', 'http://localhost:3000');\n },\n }\n }),\n MulterModule.registerAsync({\n imports: [ConfigModule],\n useFactory: async (configService: ConfigService) => ({\n dest: process.env.AB_MEDIA_UPLOAD_DIR ?? \"media-uploads\",\n }),\n inject: [ConfigService],\n }),\n HttpModule,\n ConfigModule,\n ClsModule,\n JwtModule.register({\n global: true,\n }),\n ],\n controllers: [\n ActionMetadataController,\n AiInteractionController,\n AuthenticationController,\n ChatterMessageController,\n ChatterMessageDetailsController,\n DashboardController,\n DashboardQuestionController,\n DashboardQuestionSqlDatasetConfigController,\n DashboardVariableController,\n EmailTemplateController,\n ExportTemplateController,\n ExportTransactionController,\n FieldMetadataController,\n GoogleAuthenticationController,\n ImportTransactionController,\n ImportTransactionErrorLogController,\n ListOfValuesController,\n LocaleController,\n MediaController,\n MediaStorageProviderMetadataController,\n MenuItemMetadataController,\n ModelMetadataController,\n ModuleMetadataController,\n MqMessageController,\n MqMessageQueueController,\n OTPAuthenticationController,\n PermissionMetadataController,\n RoleMetadataController,\n SavedFiltersController,\n ScheduledJobController,\n SecurityRuleController,\n ServiceController,\n SettingController,\n SmsTemplateController,\n TestController,\n TestQueueController,\n UserActivityHistoryController,\n UserController,\n UserViewMetadataController,\n ViewMetadataController,\n ModelSequenceController,\n ],\n providers: [\n {\n provide: APP_INTERCEPTOR,\n useClass: LoggingInterceptor,\n },\n {\n provide: HashingService,\n useClass: BcryptService,\n },\n {\n provide: APP_GUARD,\n useClass: AuthenticationGuard,\n },\n {\n provide: APP_GUARD,\n useClass: PermissionsGuard,\n },\n {\n provide: APP_FILTER,\n useClass: HttpExceptionFilter\n },\n ModuleMetadataService,\n ModuleMetadataHelperService,\n ModelMetadataService,\n ModelMetadataHelperService,\n FieldMetadataService,\n RemoveFieldsCommand,\n RefreshModelCommand,\n RefreshModuleCommand,\n InfoCommand,\n SolidIntrospectService,\n DiscoveryService,\n R2RHelperService,\n CrudHelperService,\n CRUDService,\n Reflector,\n MetadataScanner,\n CommandService,\n SchematicService,\n MediaStorageProviderMetadataService,\n MediaService,\n // MediaStorageProviderMetadataSeederService,\n ModuleMetadataSeederService,\n ModuleTestDataService,\n ListOfValuesService,\n ListOfValuesSelectionProvider,\n PseudoForeignKeySelectionProvider,\n ModelMetadataSubscriber,\n ViewMetadataService,\n ActionMetadataService,\n MenuItemMetadataService,\n DiscoveryService,\n Reflector,\n MetadataScanner,\n DiskFileService,\n S3FileService,\n FileServiceFactory,\n DiskStoragePathBuilder,\n S3StoragePathBuilder,\n StoragePathBuilderFactory,\n TextractService,\n SolidRegistry,\n SeedCommand,\n TestCommand,\n TestDataCommand,\n TestRunCommand,\n McpCommand,\n IngestCommand,\n IngestMetadataService,\n SMTPEMailService,\n ElasticEmailService,\n Msg91SMSService,\n Msg91OTPService,\n Msg91WhatsappService,\n TwilioSMSService,\n SmsTemplateService,\n EmailTemplateService,\n PublisherFactory,\n PollerService,\n ErrorMapperService,\n SolidCoreErrorCodesProvider,\n\n TriggerMcpClientPublisherDatabase,\n TriggerMcpClientSubscriberDatabase,\n TriggerMcpClientPublisherRabbitmq,\n TriggerMcpClientSubscriberRabbitmq,\n\n SmtpEmailQueuePublisherRabbitmq,\n SmtpEmailQueueSubscriberRabbitmq,\n SmtpEmailQueuePublisherDatabase,\n SmtpEmailQueueSubscriberDatabase,\n ApiEmailQueuePublisher,\n ApiEmailQueueSubscriber,\n ApiEmailQueuePublisherDatabase,\n ApiEmailQueueSubscriberDatabase,\n Msg91SmsQueuePublisher,\n Msg91SmsQueueSubscriber,\n Msg91SmsQueuePublisherDatabase,\n Msg91SmsQueueSubscriberDatabase,\n TwilioSmsQueuePublisherDatabase,\n TwilioSmsQueueSubscriberDatabase,\n TwilioSmsQueuePublisherRabbitmq,\n TwilioSmsQueueSubscriberRabbitmq,\n Msg91OTPQueuePublisher,\n Msg91OTPQueueSubscriber,\n OTPQueuePublisherDatabase,\n OTPQueueSubscriberDatabase,\n Msg91WhatsappQueuePublisher,\n Msg91WhatsappQueueSubscriber,\n Msg91WhatsappQueuePublisherDatabase,\n Msg91WhatsappQueueSubscriberDatabase,\n Three60WhatsappQueuePublisher,\n Three60WhatsappQueueSubscriber,\n Three60WhatsappQueuePublisherDatabase,\n Three60WhatsappQueueSubscriberDatabase,\n Three60WhatsappService,\n MqMessageService,\n MqMessageQueueService,\n TinyUrlService,\n PdfService,\n UuidExternalIdComputedFieldProvider,\n UuidExternalIdEntityComputedFieldProvider,\n ListOfModelsSelectionProvider,\n ListOfScheduledJobsSelectionProvider,\n LocaleListSelectionProvider,\n SoftDeleteAwareEventSubscriber,\n AccessTokenGuard,\n AuthenticationService,\n GoogleAuthenticationController,\n RefreshTokenIdsStorageService,\n GoogleOauthStrategy,\n UserRegistrationListener,\n TestQueuePublisher,\n TestQueueSubscriber,\n\n // ChatterQueuePublisher,\n // ChatterQueueSubscriber,\n\n TestQueuePublisherDatabase,\n TestQueueSubscriberDatabase,\n GenerateCodePublisherDatabase,\n GenerateCodeSubscriberDatabase,\n GenerateCodePublisherRabbitmq,\n GenerateCodeSubscriberRabbitmq,\n Msg91OTPQueuePublisher,\n MqMessageQueueService,\n MqMessageService,\n ScheduledJobService,\n SchedulerServiceImpl,\n PermissionMetadataService,\n RoleMetadataService,\n PermissionMetadataSeederService,\n UserService,\n UserRepository,\n SettingService,\n ConcatComputedFieldProvider,\n FileStorageProvider,\n FileS3StorageProvider,\n MediaRepository,\n ViewMetadataSubsciber,\n SavedFiltersService,\n UserViewMetadataService,\n SecurityRuleService,\n SecurityRuleRepository,\n SecurityRuleSubscriber,\n RequestContextService,\n SavedFiltersService,\n ChatterMessageService,\n ChatterMessageDetailsService,\n LocaleService,\n AuditSubscriber,\n ExportTemplateService,\n ExportTransactionService,\n ExcelService,\n CsvService,\n ImportTransactionService,\n ImportTransactionErrorLogService,\n CreatedByUpdatedBySubscriber,\n SystemFieldsSeederService,\n FieldMetadataRepository,\n ComputedEntityFieldSubscriber,\n ComputedFieldEvaluationPublisherDatabase,\n ComputedFieldEvaluationSubscriberDatabase,\n ComputedFieldEvaluationPublisherRabbitmq,\n ComputedFieldEvaluationSubscriberRabbitmq,\n ConcatEntityComputedFieldProvider,\n UserActivityHistoryService,\n DashboardService,\n DashboardVariableService,\n DashboardQuestionService,\n DashboardVariableSQLDynamicProvider,\n DasbhoardVariableTestDynamicProvider,\n ListOfDashboardVariableProvidersSelectionProvider,\n ListOfDashboardQuestionProvidersSelectionProvider,\n DashboardQuestionSqlDatasetConfigService,\n ChartJsSqlDataProvider,\n PrimeReactMeterGroupSqlDataProvider,\n PrimeReactDatatableSqlDataProvider,\n SqlExpressionResolverService,\n AiInteractionService,\n DashboardMapper,\n DashboardRepository,\n DashboardSubscriber,\n DashboardVariableSubscriber,\n DashboardQuestionSubscriber,\n DashboardQuestionSqlDatasetConfigSubscriber,\n NoopsEntityComputedFieldProviderService,\n\n McpHandlerFactory,\n // SolidCreateDashboardWithWidgetsMcpHandler,\n // SolidCreateDashboardQuestionMcpHandler,\n // SolidCreateDashboardQuestionSqlDatasetConfigMcpHandler,\n // SolidCreateDashboardWidgetMcpHandler,\n // SolidAddVariableToDashboardMcpHandler,\n // SolidAddQuestionToDashboardMcpHandler,\n\n SolidTsMorphService,\n\n ViewMetadataRepository,\n ScheduledJobRepository,\n ScheduledJobSubscriber,\n AlphaNumExternalIdComputationProvider,\n ListOfValuesSubscriber,\n ListOfValuesMapper,\n MailFactory,\n WhatsAppFactory,\n SmsFactory,\n ChatterMessageRepository,\n ChatterMessageDetailsRepository,\n AiInteractionRepository,\n DashboardQuestionSqlDatasetConfigRepository,\n DashboardQuestionRepository,\n DashboardVariableRepository,\n EmailTemplateRepository,\n ExportTemplateRepository,\n ExportTransactionRepository,\n ImportTransactionErrorLogRepository,\n ImportTransactionRepository,\n ListOfValuesRepository,\n LocaleRepository,\n MenuItemMetadataRepository,\n MqMessageQueueRepository,\n MqMessageRepository,\n PermissionMetadataRepository,\n RoleMetadataRepository,\n SavedFiltersRepository,\n SettingRepository,\n SmsTemplateRepository,\n UserActivityHistoryRepository,\n UserViewMetadataRepository,\n ModelMetadataRepository,\n ModuleMetadataRepository,\n ActionMetadataRepository,\n MediaStorageProviderMetadataRepository,\n FixturesService,\n FixturesSetupCommand,\n FixturesTearDownCommand,\n DatabaseBootstrapService,\n SequenceNumComputedFieldProvider,\n ModelSequenceService,\n ModelSequenceRepository,\n SolidCoreDefaultSettingsProvider,\n ImageEncodingService,\n SolidMicroserviceAdapter,\n ListOfRolesSelectionProvider,\n ],\n exports: [\n AiInteractionService,\n AuthenticationService,\n ChatterMessageDetailsRepository,\n ChatterMessageDetailsService,\n ChatterMessageRepository,\n ChatterMessageService,\n ConfigModule,\n CrudHelperService,\n CRUDService,\n CsvService,\n DiscoveryService,\n EmailTemplateService,\n ElasticEmailService,\n ExcelService,\n FieldMetadataService,\n DiskFileService,\n S3FileService,\n FileServiceFactory,\n DiskStoragePathBuilder,\n S3StoragePathBuilder,\n StoragePathBuilderFactory,\n HttpModule,\n ImportTransactionService,\n ListOfValuesService,\n MailFactory,\n WhatsAppFactory,\n SmsFactory,\n MediaService,\n MediaStorageProviderMetadataService,\n ModelMetadataHelperService,\n ModelMetadataService,\n ModuleMetadataService,\n MqMessageQueueService,\n MqMessageService,\n Msg91OTPService,\n Msg91SMSService,\n Msg91WhatsappService,\n MulterModule,\n PdfService,\n PollerService,\n PublisherFactory,\n RefreshModelCommand,\n RefreshModuleCommand,\n RequestContextService,\n SchedulerServiceImpl,\n SecurityRuleRepository,\n SmsTemplateService,\n SMTPEMailService,\n SolidIntrospectService,\n SolidRegistry,\n TextractService,\n TinyUrlService,\n TwilioSMSService,\n TypeOrmModule,\n UserActivityHistoryService,\n ImageEncodingService,\n SolidMicroserviceAdapter,\n UserService,\n SettingService,\n ],\n})\nexport class SolidCoreModule implements NestModule {\n configure(consumer: MiddlewareConsumer) {\n consumer\n .apply(express.json({ limit: '10mb' }), express.urlencoded({ limit: '10mb', extended: true }))\n .forRoutes('*');\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"solid-core.module.js","sourceRoot":"","sources":["../src/solid-core.module.ts"],"names":[],"mappings":"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","sourcesContent":["import { Global, MiddlewareConsumer, Module, NestModule } from '@nestjs/common';\nimport * as express from 'express';\nimport { ConfigModule, ConfigService } from '@nestjs/config';\nimport {\n APP_FILTER,\n APP_GUARD,\n APP_INTERCEPTOR,\n DiscoveryService,\n MetadataScanner,\n Reflector,\n} from '@nestjs/core';\nimport { MulterModule } from '@nestjs/platform-express';\nimport { TypeOrmModule } from '@nestjs/typeorm';\nimport { RemoveFieldsCommand } from './commands/remove-fields.command';\nimport { FieldMetadataController } from './controllers/field-metadata.controller';\nimport { MediaStorageProviderMetadataController } from './controllers/media-storage-provider-metadata.controller';\nimport { ModelMetadataController } from './controllers/model-metadata.controller';\nimport { ModuleMetadataController } from './controllers/module-metadata.controller';\nimport { TestController } from './controllers/test.controller';\nimport { FieldMetadata } from './entities/field-metadata.entity';\nimport { ListOfValues } from './entities/list-of-values.entity';\nimport { MediaStorageProviderMetadata } from './entities/media-storage-provider-metadata.entity';\nimport { Media } from './entities/media.entity';\nimport { ModelMetadata } from './entities/model-metadata.entity';\nimport { ModuleMetadata } from './entities/module-metadata.entity';\nimport { CommandService } from './helpers/command.service';\nimport { SchematicService } from './helpers/schematic.service';\nimport { ListOfValuesSelectionProvider } from './services/selection-providers/list-of-values-selection-providers.service';\nimport { PseudoForeignKeySelectionProvider } from './services/selection-providers/pseudo-foreign-key-selection-provider.service'\nimport { ModuleMetadataSeederService } from './seeders/module-metadata-seeder.service';\nimport { ModuleTestDataService } from './seeders/module-test-data.service';\nimport { CrudHelperService } from './services/crud-helper.service';\nimport { FieldMetadataService } from './services/field-metadata.service';\nimport { ListOfValuesService } from './services/list-of-values.service';\n// import { MediaStorageProviderMetadataSeederService } from './services/media-storage-provider-metadata-seeder.service';\nimport { MediaStorageProviderMetadataService } from './services/media-storage-provider-metadata.service';\nimport { MediaService } from './services/media.service';\nimport { ModelMetadataService } from './services/model-metadata.service';\nimport { ModuleMetadataService } from './services/module-metadata.service';\nimport { SolidIntrospectService } from './services/solid-introspect.service';\n// import { ListOfComputedFieldProvider } from './providers/list-of-computed-field-provider.service';\nimport { ServeStaticModule } from '@nestjs/serve-static';\nimport { join } from 'path';\nimport { RefreshModelCommand } from './commands/refresh-model.command';\nimport { MediaController } from './controllers/media.controller';\n\nimport { RefreshModuleCommand } from './commands/refresh-module.command';\nimport { ModelMetadataSubscriber } from './subscribers/model-metadata.subscriber';\n\nimport { ViewMetadataController } from './controllers/view-metadata.controller';\nimport { ViewMetadata } from './entities/view-metadata.entity';\nimport { ViewMetadataService } from './services/view-metadata.service';\n\nimport { ActionMetadataController } from './controllers/action-metadata.controller';\nimport { ActionMetadata } from './entities/action-metadata.entity';\nimport { ActionMetadataService } from './services/action-metadata.service';\n\nimport { HttpModule } from '@nestjs/axios';\nimport { JwtModule } from '@nestjs/jwt';\nimport { SeedCommand } from './commands/seed.command';\nimport { TestDataCommand } from './commands/test-data.command';\nimport { TestRunCommand } from './commands/run-tests.command';\nimport { TestCommand } from './commands/test.command';\nimport { AuthenticationController } from './controllers/authentication.controller';\nimport { EmailTemplateController } from './controllers/email-template.controller';\nimport { GoogleAuthenticationController } from './controllers/google-authentication.controller';\nimport { MenuItemMetadataController } from './controllers/menu-item-metadata.controller';\nimport { MqMessageQueueController } from './controllers/mq-message-queue.controller';\nimport { MqMessageController } from './controllers/mq-message.controller';\nimport { OTPAuthenticationController } from './controllers/otp-authentication.controller';\nimport { ServiceController } from './controllers/service.controller';\nimport { SmsTemplateController } from './controllers/sms-template.controller';\nimport { TestQueueController } from './controllers/test-queue.controller';\nimport { EmailAttachment } from './entities/email-attachment.entity';\nimport { EmailTemplate } from './entities/email-template.entity';\nimport { MenuItemMetadata } from './entities/menu-item-metadata.entity';\nimport { MqMessageQueue } from './entities/mq-message-queue.entity';\nimport { MqMessage } from './entities/mq-message.entity';\nimport { SmsTemplate } from './entities/sms-template.entity';\nimport { AccessTokenGuard } from './guards/access-token.guard';\nimport { AuthenticationGuard } from './guards/authentication.guard';\nimport { PermissionsGuard } from './guards/permissions.guard';\nimport { SolidRegistry } from './helpers/solid-registry';\nimport { LoggingInterceptor } from './interceptors/logging.interceptor';\nimport { ApiEmailQueuePublisher } from './jobs/api-email-publisher.service';\nimport { ApiEmailQueueSubscriber } from './jobs/api-email-subscriber.service';\nimport { TestQueuePublisherDatabase } from './jobs/database/test-queue-publisher-database.service';\nimport { TestQueueSubscriberDatabase } from './jobs/database/test-queue-subscriber-database.service';\nimport { Msg91WhatsappQueuePublisher } from './jobs/msg91-whatsapp-publisher.service';\nimport { Msg91WhatsappQueueSubscriber } from './jobs/msg91-whatsapp-subscriber.service';\nimport { Msg91OTPQueuePublisher } from './jobs/msg91-otp-publisher.service';\nimport { Msg91OTPQueueSubscriber } from './jobs/msg91-otp-subscriber.service';\nimport { Msg91SmsQueuePublisher } from './jobs/msg91-sms-publisher.service';\nimport { Msg91SmsQueueSubscriber } from './jobs/msg91-sms-subscriber.service';\nimport { SmtpEmailQueuePublisherRabbitmq } from './jobs/smtp-email-publisher.service';\nimport { SmtpEmailQueueSubscriberRabbitmq } from './jobs/smtp-email-subscriber.service';\nimport { TestQueuePublisher } from './jobs/test-queue-publisher.service';\nimport { TestQueueSubscriber } from './jobs/test-queue-subscriber.service';\nimport { UserRegistrationListener } from './listeners/user-registration.listener';\nimport { GoogleOauthStrategy } from './passport-strategies/google-oauth.strategy';\nimport { AuthenticationService } from './services/authentication.service';\nimport { BcryptService } from './services/bcrypt.service';\nimport { UuidExternalIdEntityComputedFieldProvider } from './services/computed-fields/entity/uuid-externalid-entity-computed-field-provider.service';\nimport { UuidExternalIdComputedFieldProvider } from './services/computed-fields/uuid-external-id-computed-field-provider.service';\nimport { EmailTemplateService } from './services/email-template.service';\nimport { DiskFileService, S3FileService, FileServiceFactory, DiskStoragePathBuilder, S3StoragePathBuilder, StoragePathBuilderFactory } from './services/file';\nimport { HashingService } from './services/hashing.service';\nimport { ElasticEmailService } from './services/mail/elastic-email.service';\nimport { SMTPEMailService } from './services/mail/smtp-email.service';\nimport { MenuItemMetadataService } from './services/menu-item-metadata.service';\nimport { MqMessageQueueService } from './services/mq-message-queue.service';\nimport { MqMessageService } from './services/mq-message.service';\nimport { PdfService } from './services/pdf.service';\nimport { RefreshTokenIdsStorageService } from './services/refresh-token-ids-storage.service';\nimport { ListOfModelsSelectionProvider } from './services/selection-providers/list-of-models-selection-provider.service';\nimport { TinyUrlService } from './services/short-url/tiny-url.service';\nimport { SmsTemplateService } from './services/sms-template.service';\nimport { Msg91OTPService } from './services/sms/Msg91OTPService';\nimport { Msg91SMSService } from './services/sms/Msg91SMSService';\n// import { UserService } from './services/user.service';\nimport { Msg91WhatsappService } from './services/whatsapp/Msg91WhatsappService';\nimport { SoftDeleteAwareEventSubscriber } from './subscribers/soft-delete-aware-event.subscriber';\n\nimport { PermissionMetadataController } from './controllers/permission-metadata.controller';\nimport { PermissionMetadata } from './entities/permission-metadata.entity';\nimport { PermissionMetadataService } from './services/permission-metadata.service';\n\nimport { ScheduleModule } from '@nestjs/schedule';\nimport { ClsModule } from 'nestjs-cls';\nimport { AiInteractionController } from './controllers/ai-interaction.controller';\nimport { ChatterMessageDetailsController } from './controllers/chatter-message-details.controller';\nimport { ChatterMessageController } from './controllers/chatter-message.controller';\nimport { DashboardQuestionSqlDatasetConfigController } from './controllers/dashboard-question-sql-dataset-config.controller';\nimport { DashboardQuestionController } from './controllers/dashboard-question.controller';\nimport { DashboardVariableController } from './controllers/dashboard-variable.controller';\nimport { DashboardController } from './controllers/dashboard.controller';\nimport { ExportTemplateController } from './controllers/export-template.controller';\nimport { ExportTransactionController } from './controllers/export-transaction.controller';\nimport { ImportTransactionErrorLogController } from './controllers/import-transaction-error-log.controller';\nimport { ImportTransactionController } from './controllers/import-transaction.controller';\nimport { ListOfValuesController } from './controllers/list-of-values.controller';\nimport { LocaleController } from './controllers/locale.controller';\nimport { RoleMetadataController } from './controllers/role-metadata.controller';\nimport { SavedFiltersController } from './controllers/saved-filters.controller';\nimport { ScheduledJobController } from './controllers/scheduled-job.controller';\nimport { SecurityRuleController } from './controllers/security-rule.controller';\nimport { SettingController } from './controllers/setting.controller';\nimport { InfoController } from './controllers/info.controller';\nimport { InfoService } from './services/info.service';\nimport { UserActivityHistoryController } from './controllers/user-activity-history.controller';\nimport { UserViewMetadataController } from './controllers/user-view-metadata.controller';\nimport { UserController } from './controllers/user.controller';\nimport { AiInteraction } from './entities/ai-interaction.entity';\nimport { ChatterMessageDetails } from './entities/chatter-message-details.entity';\nimport { ChatterMessage } from './entities/chatter-message.entity';\nimport { DashboardQuestionSqlDatasetConfig } from './entities/dashboard-question-sql-dataset-config.entity';\nimport { DashboardQuestion } from './entities/dashboard-question.entity';\nimport { DashboardVariable } from './entities/dashboard-variable.entity';\nimport { Dashboard } from './entities/dashboard.entity';\nimport { ExportTemplate } from './entities/export-template.entity';\nimport { ExportTransaction } from './entities/export-transaction.entity';\nimport { ImportTransactionErrorLog } from './entities/import-transaction-error-log.entity';\nimport { ImportTransaction } from './entities/import-transaction.entity';\nimport { Locale } from './entities/locale.entity';\nimport { RoleMetadata } from './entities/role-metadata.entity';\nimport { SavedFilters } from './entities/saved-filters.entity';\nimport { ScheduledJob } from './entities/scheduled-job.entity';\nimport { SecurityRule } from './entities/security-rule.entity';\nimport { Setting } from './entities/setting.entity';\nimport { UserActivityHistory } from './entities/user-activity-history.entity';\nimport { UserViewMetadata } from './entities/user-view-metadata.entity';\nimport { User } from './entities/user.entity';\nimport { HttpExceptionFilter } from './filters/http-exception.filter';\nimport { ModelMetadataHelperService } from './helpers/model-metadata-helper.service';\nimport { ModuleMetadataHelperService } from './helpers/module-metadata-helper.service';\nimport { ApiEmailQueuePublisherDatabase } from './jobs/database/api-email-publisher-database.service';\nimport { ApiEmailQueueSubscriberDatabase } from './jobs/database/api-email-subscriber-database.service';\nimport { ComputedFieldEvaluationPublisherDatabase } from './jobs/database/computed-field-evaluation-publisher-database.service';\nimport { ComputedFieldEvaluationSubscriberDatabase } from './jobs/database/computed-field-evaluation-subscriber-database.service';\nimport { GenerateCodePublisherDatabase } from './jobs/database/generate-code-publisher-database.service';\nimport { GenerateCodeSubscriberDatabase } from './jobs/database/generate-code-subscriber-database.service';\nimport { OTPQueuePublisherDatabase } from './jobs/database/otp-publisher-database.service';\nimport { OTPQueueSubscriberDatabase } from './jobs/database/otp-subscriber-database.service';\nimport { Msg91SmsQueuePublisherDatabase } from './jobs/database/msg91-sms-publisher-database.service';\nimport { Msg91SmsQueueSubscriberDatabase } from './jobs/database/msg91-sms-subscriber-database.service';\nimport { SmtpEmailQueuePublisherDatabase } from './jobs/database/smtp-email-publisher-database.service';\nimport { SmtpEmailQueueSubscriberDatabase } from './jobs/database/smtp-email-subscriber-database.service';\n\nimport { TwilioSmsQueuePublisherDatabase } from './jobs/database/twilio-sms-publisher-database.service';\nimport { TwilioSmsQueueSubscriberDatabase } from './jobs/database/twilio-sms-subscriber-database.service';\n\n\n// import { ThrottlerModule } from '@nestjs/throttler';\nimport { IngestCommand } from './commands/ingest.command';\nimport { MailFactory } from './factories/mail.factory';\nimport { ErrorMapperService } from './helpers/error-mapper.service';\nimport { SolidCoreErrorCodesProvider } from './helpers/solid-core-error-codes-provider.service';\nimport { ComputedFieldEvaluationPublisherRabbitmq } from './jobs/computed-field-evaluation-publisher.service';\nimport { ComputedFieldEvaluationSubscriberRabbitmq } from './jobs/computed-field-evaluation-subscriber.service';\nimport { Msg91WhatsappQueuePublisherDatabase } from './jobs/database/msg91-whatsapp-publisher-database.service';\nimport { Msg91WhatsappQueueSubscriberDatabase } from './jobs/database/msg91-whatsapp-subscriber-database.service';\nimport { Three60WhatsappQueuePublisherDatabase } from './jobs/database/three60-whatsapp-publisher-database.service';\nimport { Three60WhatsappQueueSubscriberDatabase } from './jobs/database/three60-whatsapp-subscriber-database.service';\nimport { TriggerMcpClientPublisherDatabase } from './jobs/database/trigger-mcp-client-publisher-database.service';\nimport { TriggerMcpClientSubscriberDatabase } from './jobs/database/trigger-mcp-client-subscriber-database.service';\nimport { GenerateCodePublisherRabbitmq } from './jobs/generate-code-publisher.service';\nimport { GenerateCodeSubscriberRabbitmq } from './jobs/generate-code-subscriber.service';\nimport { Three60WhatsappQueuePublisher } from './jobs/three60-whatsapp-publisher.service';\nimport { Three60WhatsappQueueSubscriber } from './jobs/three60-whatsapp-subscriber.service';\nimport { TriggerMcpClientPublisherRabbitmq } from './jobs/trigger-mcp-client-publisher.service';\nimport { TriggerMcpClientSubscriberRabbitmq } from './jobs/trigger-mcp-client-subscriber.service';\nimport { TwilioSmsQueuePublisherRabbitmq } from './jobs/twilio-sms-publisher.service';\nimport { TwilioSmsQueueSubscriberRabbitmq } from './jobs/twilio-sms-subscriber.service';\nimport { DashboardMapper } from './mappers/dashboard-mapper';\nimport { ListOfValuesMapper } from './mappers/list-of-values-mapper';\nimport { ActionMetadataRepository } from './repository/action-metadata.repository';\nimport { AiInteractionRepository } from './repository/ai-interaction.repository';\nimport { ChatterMessageDetailsRepository } from './repository/chatter-message-details.repository';\nimport { ChatterMessageRepository } from './repository/chatter-message.repository';\nimport { DashboardQuestionSqlDatasetConfigRepository } from './repository/dashboard-question-sql-dataset-config.repository';\nimport { DashboardQuestionRepository } from './repository/dashboard-question.repository';\nimport { DashboardVariableRepository } from './repository/dashboard-variable.repository';\nimport { DashboardRepository } from './repository/dashboard.repository';\nimport { EmailTemplateRepository } from './repository/email-template.repository';\nimport { ExportTemplateRepository } from './repository/export-template.repository';\nimport { ExportTransactionRepository } from './repository/export-transaction.repository';\nimport { FieldMetadataRepository } from './repository/field-metadata.repository';\nimport { ImportTransactionErrorLogRepository } from './repository/import-transaction-error-log.repository';\nimport { ImportTransactionRepository } from './repository/import-transaction.repository';\nimport { ListOfValuesRepository } from './repository/list-of-values.repository';\nimport { LocaleRepository } from './repository/locale.repository';\nimport { MediaRepository } from './repository/media.repository';\nimport { MenuItemMetadataRepository } from './repository/menu-item-metadata.repository';\nimport { ModelMetadataRepository } from './repository/model-metadata.repository';\nimport { ModuleMetadataRepository } from './repository/module-metadata.repository';\nimport { MqMessageQueueRepository } from './repository/mq-message-queue.repository';\nimport { MqMessageRepository } from './repository/mq-message.repository';\nimport { PermissionMetadataRepository } from './repository/permission-metadata.repository';\nimport { RoleMetadataRepository } from './repository/role-metadata.repository';\nimport { SavedFiltersRepository } from './repository/saved-filters.repository';\nimport { ScheduledJobRepository } from './repository/scheduled-job.repository';\nimport { SecurityRuleRepository } from './repository/security-rule.repository';\nimport { SettingRepository } from './repository/setting.repository';\nimport { SmsTemplateRepository } from './repository/sms-template.repository';\nimport { UserActivityHistoryRepository } from './repository/user-activity-history.repository';\nimport { UserViewMetadataRepository } from './repository/user-view-metadata.repository';\nimport { UserRepository } from './repository/user.repository';\nimport { ViewMetadataRepository } from './repository/view-metadata.repository';\nimport { PermissionMetadataSeederService } from './seeders/permission-metadata-seeder.service';\nimport { SystemFieldsSeederService } from './seeders/system-fields-seeder.service';\nimport { AiInteractionService } from './services/ai-interaction.service';\nimport { ChatterMessageDetailsService } from './services/chatter-message-details.service';\nimport { ChatterMessageService } from './services/chatter-message.service';\nimport { ConcatComputedFieldProvider } from './services/computed-fields/concat-computed-field-provider.service';\nimport { AlphaNumExternalIdComputationProvider } from './services/computed-fields/entity/alpha-num-external-id-computed-field-provider';\nimport { ConcatEntityComputedFieldProvider } from './services/computed-fields/entity/concat-entity-computed-field-provider.service';\nimport { NoopsEntityComputedFieldProviderService } from './services/computed-fields/entity/noops-entity-computed-field-provider.service';\nimport { CRUDService } from './services/crud.service';\nimport { CsvService } from './services/csv.service';\nimport { DashboardQuestionSqlDatasetConfigService } from './services/dashboard-question-sql-dataset-config.service';\nimport { DashboardQuestionService } from './services/dashboard-question.service';\nimport { DashboardVariableSQLDynamicProvider } from './services/dashboard-selection-providers/dashboard-variable-sql-dynamic-provider.service';\nimport { DasbhoardVariableTestDynamicProvider } from './services/dashboard-selection-providers/dashboard-variable-test-dynamic-provider.service';\nimport { DashboardVariableService } from './services/dashboard-variable.service';\nimport { DashboardService } from './services/dashboard.service';\nimport { ExcelService } from './services/excel.service';\nimport { ExportTemplateService } from './services/export-template.service';\nimport { ExportTransactionService } from './services/export-transaction.service';\nimport { IngestMetadataService } from './services/genai/ingest-metadata.service';\nimport { McpHandlerFactory } from './services/genai/mcp-handlers/mcp-handler-factory.service';\nimport { R2RHelperService } from './services/genai/r2r-helper.service';\nimport { ImportTransactionErrorLogService } from './services/import-transaction-error-log.service';\nimport { ImportTransactionService } from './services/import-transaction.service';\nimport { LocaleService } from './services/locale.service';\nimport { FileS3StorageProvider } from './services/mediaStorageProviders/file-s3-storage-provider';\nimport { FileStorageProvider } from './services/mediaStorageProviders/file-storage-provider';\nimport { PollerService } from './services/poller.service';\nimport { ChartJsSqlDataProvider } from './services/question-data-providers/chartjs-sql-data-provider.service';\nimport { PrimeReactDatatableSqlDataProvider } from './services/question-data-providers/prime-react-datatable-sql-data-provider.service';\nimport { PrimeReactMeterGroupSqlDataProvider } from './services/question-data-providers/prime-react-meter-group-sql-data-provider.service';\nimport { PublisherFactory } from './services/queues/publisher-factory.service';\nimport { RequestContextService } from './services/request-context.service';\nimport { RoleMetadataService } from './services/role-metadata.service';\nimport { SavedFiltersService } from './services/saved-filters.service';\nimport { ScheduledJobService } from './services/scheduled-job.service';\nimport { SchedulerServiceImpl } from './services/scheduled-jobs/scheduler.service';\nimport { SecurityRuleService } from './services/security-rule.service';\nimport { ListOfDashboardQuestionProvidersSelectionProvider } from './services/selection-providers/list-of-dashboard-question-providers-selection-provider.service';\nimport { ListOfDashboardVariableProvidersSelectionProvider } from './services/selection-providers/list-of-dashboard-variable-providers-selection-provider.service';\nimport { ListOfScheduledJobsSelectionProvider } from './services/selection-providers/list-of-scheduled-jobs-selection-provider.service';\nimport { LocaleListSelectionProvider } from './services/selection-providers/locale-list-selection-provider.service';\nimport { SettingService } from './services/setting.service';\nimport { TwilioSMSService } from './services/sms/TwilioSMSService';\nimport { SolidTsMorphService } from './services/solid-ts-morph.service';\nimport { SqlExpressionResolverService } from './services/sql-expression-resolver.service';\nimport { TextractService } from './services/textract.service';\nimport { UserActivityHistoryService } from './services/user-activity-history.service';\nimport { UserViewMetadataService } from './services/user-view-metadata.service';\nimport { UserService } from './services/user.service';\nimport { Three60WhatsappService } from './services/whatsapp/Three60WhatsappService';\nimport { AuditSubscriber } from './subscribers/audit.subscriber';\nimport { ComputedEntityFieldSubscriber } from './subscribers/computed-entity-field.subscriber';\nimport { CreatedByUpdatedBySubscriber } from './subscribers/created-by-updated-by.subscriber';\nimport { DashboardQuestionSqlDatasetConfigSubscriber } from './subscribers/dashboard-question-sql-dataset-config.subscriber';\nimport { DashboardQuestionSubscriber } from './subscribers/dashboard-question.subscriber';\nimport { DashboardVariableSubscriber } from './subscribers/dashboard-variable.subscriber';\nimport { DashboardSubscriber } from './subscribers/dashboard.subscriber';\nimport { ListOfValuesSubscriber } from './subscribers/list-of-values.subscriber';\nimport { ScheduledJobSubscriber } from './subscribers/scheduled-job.subscriber';\nimport { SecurityRuleSubscriber } from './subscribers/security-rule.subscriber';\nimport { ViewMetadataSubsciber } from './subscribers/view-metadata.subscriber';\nimport { MediaStorageProviderMetadataRepository } from './repository/media-storage-provider-metadata.repository';\nimport { McpCommand } from './commands/mcp.command';\nimport { FixturesService } from './services/fixtures.service';\nimport { FixturesSetupCommand } from './commands/fixtures/fixtures-setup.command';\nimport { FixturesTearDownCommand } from './commands/fixtures/fixtures-tear-down.command';\nimport { DatabaseBootstrapService } from './services/database/database-bootstrap.service';\nimport { SequenceNumComputedFieldProvider } from './services/computed-fields/entity/sequence-num-computed-field-provider';\nimport { ModelSequence } from './entities/model-sequence.entity';\nimport { ModelSequenceService } from './services/model-sequence.service';\nimport { ModelSequenceController } from './controllers/model-sequence.controller';\nimport { ModelSequenceRepository } from './repository/model-sequence.repository';\nimport { CacheModule } from '@nestjs/cache-manager';\nimport { CacheManagerOptions } from './config/cache.options';\nimport { SolidCoreDefaultSettingsProvider } from './services/settings/default-settings-provider.service';\nimport { SmsFactory } from './factories/sms.factory';\nimport { WhatsAppFactory } from './factories/whatsapp.factory';\nimport { ImageEncodingService } from './helpers/image-encoding.helper';\nimport { SolidMicroserviceAdapter } from './helpers/solid-microservice-adapter.service';\nimport { InfoCommand } from './commands/info.command';\nimport { ListOfRolesSelectionProvider } from './services/selection-providers/list-of-roles-selectionproviders.service';\n\n\n@Global()\n@Module({\n imports: [\n TypeOrmModule.forFeature([\n ActionMetadata,\n AiInteraction,\n ChatterMessage,\n ChatterMessageDetails,\n Dashboard,\n DashboardQuestion,\n DashboardQuestionSqlDatasetConfig,\n DashboardVariable,\n EmailAttachment,\n EmailTemplate,\n ExportTemplate,\n ExportTransaction,\n FieldMetadata,\n ImportTransaction,\n ImportTransactionErrorLog,\n ListOfValues,\n Locale,\n Media,\n MediaStorageProviderMetadata,\n MenuItemMetadata,\n ModelMetadata,\n ModuleMetadata,\n MqMessage,\n MqMessageQueue,\n PermissionMetadata,\n RoleMetadata,\n SavedFilters,\n ScheduledJob,\n SecurityRule,\n Setting,\n SmsTemplate,\n User,\n UserActivityHistory,\n UserViewMetadata,\n ViewMetadata,\n ModelSequence,\n ]),\n\n CacheModule.registerAsync(CacheManagerOptions),\n ScheduleModule.forRoot(),\n ServeStaticModule.forRoot({\n rootPath: join(process.cwd(), 'media-files-storage'),\n serveRoot: '/media-files-storage',\n serveStaticOptions: {\n setHeaders: (res /*, path, stat*/) => {\n // Allow use of these files from a different origin (e.g., :3000 UI)\n // Use 'same-site' if both origins are on the same site (localhost:* counts as same-site)\n res.setHeader('Cross-Origin-Resource-Policy', 'cross-origin'); // or 'same-site'\n\n // If you need to load into <canvas> without tainting or fetch images via XHR,\n // you can also expose CORS here (not needed for simple <img>):\n // res.setHeader('Access-Control-Allow-Origin', 'http://localhost:3000');\n },\n }\n }),\n MulterModule.registerAsync({\n imports: [ConfigModule],\n useFactory: async (configService: ConfigService) => ({\n dest: process.env.AB_MEDIA_UPLOAD_DIR ?? \"media-uploads\",\n }),\n inject: [ConfigService],\n }),\n HttpModule,\n ConfigModule,\n ClsModule,\n JwtModule.register({\n global: true,\n }),\n ],\n controllers: [\n ActionMetadataController,\n AiInteractionController,\n AuthenticationController,\n ChatterMessageController,\n ChatterMessageDetailsController,\n DashboardController,\n DashboardQuestionController,\n DashboardQuestionSqlDatasetConfigController,\n DashboardVariableController,\n EmailTemplateController,\n ExportTemplateController,\n ExportTransactionController,\n FieldMetadataController,\n GoogleAuthenticationController,\n ImportTransactionController,\n ImportTransactionErrorLogController,\n ListOfValuesController,\n LocaleController,\n MediaController,\n MediaStorageProviderMetadataController,\n MenuItemMetadataController,\n ModelMetadataController,\n ModuleMetadataController,\n MqMessageController,\n MqMessageQueueController,\n OTPAuthenticationController,\n PermissionMetadataController,\n RoleMetadataController,\n SavedFiltersController,\n ScheduledJobController,\n SecurityRuleController,\n ServiceController,\n SettingController,\n InfoController,\n SmsTemplateController,\n TestController,\n TestQueueController,\n UserActivityHistoryController,\n UserController,\n UserViewMetadataController,\n ViewMetadataController,\n ModelSequenceController,\n ],\n providers: [\n {\n provide: APP_INTERCEPTOR,\n useClass: LoggingInterceptor,\n },\n {\n provide: HashingService,\n useClass: BcryptService,\n },\n {\n provide: APP_GUARD,\n useClass: AuthenticationGuard,\n },\n {\n provide: APP_GUARD,\n useClass: PermissionsGuard,\n },\n {\n provide: APP_FILTER,\n useClass: HttpExceptionFilter\n },\n ModuleMetadataService,\n ModuleMetadataHelperService,\n ModelMetadataService,\n ModelMetadataHelperService,\n FieldMetadataService,\n RemoveFieldsCommand,\n RefreshModelCommand,\n RefreshModuleCommand,\n InfoCommand,\n InfoService,\n SolidIntrospectService,\n DiscoveryService,\n R2RHelperService,\n CrudHelperService,\n CRUDService,\n Reflector,\n MetadataScanner,\n CommandService,\n SchematicService,\n MediaStorageProviderMetadataService,\n MediaService,\n // MediaStorageProviderMetadataSeederService,\n ModuleMetadataSeederService,\n ModuleTestDataService,\n ListOfValuesService,\n ListOfValuesSelectionProvider,\n PseudoForeignKeySelectionProvider,\n ModelMetadataSubscriber,\n ViewMetadataService,\n ActionMetadataService,\n MenuItemMetadataService,\n DiscoveryService,\n Reflector,\n MetadataScanner,\n DiskFileService,\n S3FileService,\n FileServiceFactory,\n DiskStoragePathBuilder,\n S3StoragePathBuilder,\n StoragePathBuilderFactory,\n TextractService,\n SolidRegistry,\n SeedCommand,\n TestCommand,\n TestDataCommand,\n TestRunCommand,\n McpCommand,\n IngestCommand,\n IngestMetadataService,\n SMTPEMailService,\n ElasticEmailService,\n Msg91SMSService,\n Msg91OTPService,\n Msg91WhatsappService,\n TwilioSMSService,\n SmsTemplateService,\n EmailTemplateService,\n PublisherFactory,\n PollerService,\n ErrorMapperService,\n SolidCoreErrorCodesProvider,\n\n TriggerMcpClientPublisherDatabase,\n TriggerMcpClientSubscriberDatabase,\n TriggerMcpClientPublisherRabbitmq,\n TriggerMcpClientSubscriberRabbitmq,\n\n SmtpEmailQueuePublisherRabbitmq,\n SmtpEmailQueueSubscriberRabbitmq,\n SmtpEmailQueuePublisherDatabase,\n SmtpEmailQueueSubscriberDatabase,\n ApiEmailQueuePublisher,\n ApiEmailQueueSubscriber,\n ApiEmailQueuePublisherDatabase,\n ApiEmailQueueSubscriberDatabase,\n Msg91SmsQueuePublisher,\n Msg91SmsQueueSubscriber,\n Msg91SmsQueuePublisherDatabase,\n Msg91SmsQueueSubscriberDatabase,\n TwilioSmsQueuePublisherDatabase,\n TwilioSmsQueueSubscriberDatabase,\n TwilioSmsQueuePublisherRabbitmq,\n TwilioSmsQueueSubscriberRabbitmq,\n Msg91OTPQueuePublisher,\n Msg91OTPQueueSubscriber,\n OTPQueuePublisherDatabase,\n OTPQueueSubscriberDatabase,\n Msg91WhatsappQueuePublisher,\n Msg91WhatsappQueueSubscriber,\n Msg91WhatsappQueuePublisherDatabase,\n Msg91WhatsappQueueSubscriberDatabase,\n Three60WhatsappQueuePublisher,\n Three60WhatsappQueueSubscriber,\n Three60WhatsappQueuePublisherDatabase,\n Three60WhatsappQueueSubscriberDatabase,\n Three60WhatsappService,\n MqMessageService,\n MqMessageQueueService,\n TinyUrlService,\n PdfService,\n UuidExternalIdComputedFieldProvider,\n UuidExternalIdEntityComputedFieldProvider,\n ListOfModelsSelectionProvider,\n ListOfScheduledJobsSelectionProvider,\n LocaleListSelectionProvider,\n SoftDeleteAwareEventSubscriber,\n AccessTokenGuard,\n AuthenticationService,\n GoogleAuthenticationController,\n RefreshTokenIdsStorageService,\n GoogleOauthStrategy,\n UserRegistrationListener,\n TestQueuePublisher,\n TestQueueSubscriber,\n\n // ChatterQueuePublisher,\n // ChatterQueueSubscriber,\n\n TestQueuePublisherDatabase,\n TestQueueSubscriberDatabase,\n GenerateCodePublisherDatabase,\n GenerateCodeSubscriberDatabase,\n GenerateCodePublisherRabbitmq,\n GenerateCodeSubscriberRabbitmq,\n Msg91OTPQueuePublisher,\n MqMessageQueueService,\n MqMessageService,\n ScheduledJobService,\n SchedulerServiceImpl,\n PermissionMetadataService,\n RoleMetadataService,\n PermissionMetadataSeederService,\n UserService,\n UserRepository,\n SettingService,\n ConcatComputedFieldProvider,\n FileStorageProvider,\n FileS3StorageProvider,\n MediaRepository,\n ViewMetadataSubsciber,\n SavedFiltersService,\n UserViewMetadataService,\n SecurityRuleService,\n SecurityRuleRepository,\n SecurityRuleSubscriber,\n RequestContextService,\n SavedFiltersService,\n ChatterMessageService,\n ChatterMessageDetailsService,\n LocaleService,\n AuditSubscriber,\n ExportTemplateService,\n ExportTransactionService,\n ExcelService,\n CsvService,\n ImportTransactionService,\n ImportTransactionErrorLogService,\n CreatedByUpdatedBySubscriber,\n SystemFieldsSeederService,\n FieldMetadataRepository,\n ComputedEntityFieldSubscriber,\n ComputedFieldEvaluationPublisherDatabase,\n ComputedFieldEvaluationSubscriberDatabase,\n ComputedFieldEvaluationPublisherRabbitmq,\n ComputedFieldEvaluationSubscriberRabbitmq,\n ConcatEntityComputedFieldProvider,\n UserActivityHistoryService,\n DashboardService,\n DashboardVariableService,\n DashboardQuestionService,\n DashboardVariableSQLDynamicProvider,\n DasbhoardVariableTestDynamicProvider,\n ListOfDashboardVariableProvidersSelectionProvider,\n ListOfDashboardQuestionProvidersSelectionProvider,\n DashboardQuestionSqlDatasetConfigService,\n ChartJsSqlDataProvider,\n PrimeReactMeterGroupSqlDataProvider,\n PrimeReactDatatableSqlDataProvider,\n SqlExpressionResolverService,\n AiInteractionService,\n DashboardMapper,\n DashboardRepository,\n DashboardSubscriber,\n DashboardVariableSubscriber,\n DashboardQuestionSubscriber,\n DashboardQuestionSqlDatasetConfigSubscriber,\n NoopsEntityComputedFieldProviderService,\n\n McpHandlerFactory,\n // SolidCreateDashboardWithWidgetsMcpHandler,\n // SolidCreateDashboardQuestionMcpHandler,\n // SolidCreateDashboardQuestionSqlDatasetConfigMcpHandler,\n // SolidCreateDashboardWidgetMcpHandler,\n // SolidAddVariableToDashboardMcpHandler,\n // SolidAddQuestionToDashboardMcpHandler,\n\n SolidTsMorphService,\n\n ViewMetadataRepository,\n ScheduledJobRepository,\n ScheduledJobSubscriber,\n AlphaNumExternalIdComputationProvider,\n ListOfValuesSubscriber,\n ListOfValuesMapper,\n MailFactory,\n WhatsAppFactory,\n SmsFactory,\n ChatterMessageRepository,\n ChatterMessageDetailsRepository,\n AiInteractionRepository,\n DashboardQuestionSqlDatasetConfigRepository,\n DashboardQuestionRepository,\n DashboardVariableRepository,\n EmailTemplateRepository,\n ExportTemplateRepository,\n ExportTransactionRepository,\n ImportTransactionErrorLogRepository,\n ImportTransactionRepository,\n ListOfValuesRepository,\n LocaleRepository,\n MenuItemMetadataRepository,\n MqMessageQueueRepository,\n MqMessageRepository,\n PermissionMetadataRepository,\n RoleMetadataRepository,\n SavedFiltersRepository,\n SettingRepository,\n SmsTemplateRepository,\n UserActivityHistoryRepository,\n UserViewMetadataRepository,\n ModelMetadataRepository,\n ModuleMetadataRepository,\n ActionMetadataRepository,\n MediaStorageProviderMetadataRepository,\n FixturesService,\n FixturesSetupCommand,\n FixturesTearDownCommand,\n DatabaseBootstrapService,\n SequenceNumComputedFieldProvider,\n ModelSequenceService,\n ModelSequenceRepository,\n SolidCoreDefaultSettingsProvider,\n ImageEncodingService,\n SolidMicroserviceAdapter,\n ListOfRolesSelectionProvider,\n ],\n exports: [\n AiInteractionService,\n AuthenticationService,\n ChatterMessageDetailsRepository,\n ChatterMessageDetailsService,\n ChatterMessageRepository,\n ChatterMessageService,\n ConfigModule,\n CrudHelperService,\n CRUDService,\n CsvService,\n DiscoveryService,\n EmailTemplateService,\n ElasticEmailService,\n ExcelService,\n FieldMetadataService,\n DiskFileService,\n S3FileService,\n FileServiceFactory,\n DiskStoragePathBuilder,\n S3StoragePathBuilder,\n StoragePathBuilderFactory,\n HttpModule,\n ImportTransactionService,\n ListOfValuesService,\n MailFactory,\n WhatsAppFactory,\n SmsFactory,\n MediaService,\n MediaStorageProviderMetadataService,\n ModelMetadataHelperService,\n ModelMetadataService,\n ModuleMetadataService,\n MqMessageQueueService,\n MqMessageService,\n Msg91OTPService,\n Msg91SMSService,\n Msg91WhatsappService,\n MulterModule,\n PdfService,\n PollerService,\n PublisherFactory,\n RefreshModelCommand,\n RefreshModuleCommand,\n RequestContextService,\n SchedulerServiceImpl,\n SecurityRuleRepository,\n SmsTemplateService,\n SMTPEMailService,\n SolidIntrospectService,\n SolidRegistry,\n TextractService,\n TinyUrlService,\n TwilioSMSService,\n TypeOrmModule,\n UserActivityHistoryService,\n ImageEncodingService,\n SolidMicroserviceAdapter,\n UserService,\n SettingService,\n ],\n})\nexport class SolidCoreModule implements NestModule {\n configure(consumer: MiddlewareConsumer) {\n consumer\n .apply(express.json({ limit: '10mb' }), express.urlencoded({ limit: '10mb', extended: true }))\n .forRoutes('*');\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-from-metadata.d.ts","sourceRoot":"","sources":["../../../src/testing/runner/run-from-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAqB,MAAM,qCAAqC,CAAC;AAC9F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"run-from-metadata.d.ts","sourceRoot":"","sources":["../../../src/testing/runner/run-from-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAqB,MAAM,qCAAqC,CAAC;AAC9F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AASxE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAoBrD,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,EAAE,eAAe,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,GAAG,CAAC,EAAE,iBAAiB,CAAC;IACxB,EAAE,CAAC,EAAE,wBAAwB,CAAC;IAC9B,QAAQ,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACpD,OAAO,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IACrC,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAY,KAAK,IAAI,CAAC;CAC1C,CAAC;AAEF,wBAAsB,eAAe,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAyCxE"}
|