@solidstarters/solid-core 1.2.134 → 1.2.135
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/controllers/ai-interaction.controller.d.ts +45 -0
- package/dist/controllers/ai-interaction.controller.d.ts.map +1 -0
- package/dist/controllers/ai-interaction.controller.js +192 -0
- package/dist/controllers/ai-interaction.controller.js.map +1 -0
- package/dist/controllers/dashboard-variable.controller.d.ts +43 -0
- package/dist/controllers/dashboard-variable.controller.d.ts.map +1 -0
- package/dist/controllers/dashboard-variable.controller.js +179 -0
- package/dist/controllers/dashboard-variable.controller.js.map +1 -0
- package/dist/controllers/dashboard.controller.d.ts +45 -0
- package/dist/controllers/dashboard.controller.d.ts.map +1 -0
- package/dist/controllers/dashboard.controller.js +192 -0
- package/dist/controllers/dashboard.controller.js.map +1 -0
- package/dist/controllers/question-sql-dataset-config.controller.d.ts +43 -0
- package/dist/controllers/question-sql-dataset-config.controller.d.ts.map +1 -0
- package/dist/controllers/question-sql-dataset-config.controller.js +179 -0
- package/dist/controllers/question-sql-dataset-config.controller.js.map +1 -0
- package/dist/controllers/question.controller.d.ts +45 -0
- package/dist/controllers/question.controller.d.ts.map +1 -0
- package/dist/controllers/question.controller.js +194 -0
- package/dist/controllers/question.controller.js.map +1 -0
- package/dist/controllers/test.controller.d.ts.map +1 -1
- package/dist/controllers/test.controller.js.map +1 -1
- package/dist/decorators/dashboard-question-data-provider.decorator.d.ts +3 -0
- package/dist/decorators/dashboard-question-data-provider.decorator.d.ts.map +1 -0
- package/dist/decorators/dashboard-question-data-provider.decorator.js +11 -0
- package/dist/decorators/dashboard-question-data-provider.decorator.js.map +1 -0
- package/dist/decorators/dashboard-selection-provider.decorator.d.ts +3 -0
- package/dist/decorators/dashboard-selection-provider.decorator.d.ts.map +1 -0
- package/dist/decorators/dashboard-selection-provider.decorator.js +11 -0
- package/dist/decorators/dashboard-selection-provider.decorator.js.map +1 -0
- package/dist/dtos/create-ai-interaction.dto.d.ts +14 -0
- package/dist/dtos/create-ai-interaction.dto.d.ts.map +1 -0
- package/dist/dtos/create-ai-interaction.dto.js +90 -0
- package/dist/dtos/create-ai-interaction.dto.js.map +1 -0
- package/dist/dtos/create-dashboard-variable.dto.d.ts +18 -0
- package/dist/dtos/create-dashboard-variable.dto.d.ts.map +1 -0
- package/dist/dtos/create-dashboard-variable.dto.js +97 -0
- package/dist/dtos/create-dashboard-variable.dto.js.map +1 -0
- package/dist/dtos/create-dashboard.dto.d.ts +15 -0
- package/dist/dtos/create-dashboard.dto.d.ts.map +1 -0
- package/dist/dtos/create-dashboard.dto.js +90 -0
- package/dist/dtos/create-dashboard.dto.js.map +1 -0
- package/dist/dtos/create-question-sql-dataset-config.dto.d.ts +12 -0
- package/dist/dtos/create-question-sql-dataset-config.dto.d.ts.map +1 -0
- package/dist/dtos/create-question-sql-dataset-config.dto.js +77 -0
- package/dist/dtos/create-question-sql-dataset-config.dto.js.map +1 -0
- package/dist/dtos/create-question.dto.d.ts +16 -0
- package/dist/dtos/create-question.dto.d.ts.map +1 -0
- package/dist/dtos/create-question.dto.js +99 -0
- package/dist/dtos/create-question.dto.js.map +1 -0
- package/dist/dtos/dashboard-variable-selection-dynamic-query.dto.d.ts +8 -0
- package/dist/dtos/dashboard-variable-selection-dynamic-query.dto.d.ts.map +1 -0
- package/dist/dtos/dashboard-variable-selection-dynamic-query.dto.js +52 -0
- package/dist/dtos/dashboard-variable-selection-dynamic-query.dto.js.map +1 -0
- package/dist/dtos/invoke-ai-prompt.dto.d.ts +4 -0
- package/dist/dtos/invoke-ai-prompt.dto.d.ts.map +1 -0
- package/dist/dtos/invoke-ai-prompt.dto.js +25 -0
- package/dist/dtos/invoke-ai-prompt.dto.js.map +1 -0
- package/dist/dtos/update-ai-interaction.dto.d.ts +15 -0
- package/dist/dtos/update-ai-interaction.dto.d.ts.map +1 -0
- package/dist/dtos/update-ai-interaction.dto.js +96 -0
- package/dist/dtos/update-ai-interaction.dto.js.map +1 -0
- package/dist/dtos/update-dashboard-variable.dto.d.ts +15 -0
- package/dist/dtos/update-dashboard-variable.dto.d.ts.map +1 -0
- package/dist/dtos/update-dashboard-variable.dto.js +95 -0
- package/dist/dtos/update-dashboard-variable.dto.js.map +1 -0
- package/dist/dtos/update-dashboard.dto.d.ts +16 -0
- package/dist/dtos/update-dashboard.dto.d.ts.map +1 -0
- package/dist/dtos/update-dashboard.dto.js +96 -0
- package/dist/dtos/update-dashboard.dto.js.map +1 -0
- package/dist/dtos/update-question-sql-dataset-config.dto.d.ts +13 -0
- package/dist/dtos/update-question-sql-dataset-config.dto.d.ts.map +1 -0
- package/dist/dtos/update-question-sql-dataset-config.dto.js +86 -0
- package/dist/dtos/update-question-sql-dataset-config.dto.js.map +1 -0
- package/dist/dtos/update-question.dto.d.ts +17 -0
- package/dist/dtos/update-question.dto.d.ts.map +1 -0
- package/dist/dtos/update-question.dto.js +106 -0
- package/dist/dtos/update-question.dto.js.map +1 -0
- package/dist/entities/ai-interaction.entity.d.ts +15 -0
- package/dist/entities/ai-interaction.entity.d.ts.map +1 -0
- package/dist/entities/ai-interaction.entity.js +70 -0
- package/dist/entities/ai-interaction.entity.js.map +1 -0
- package/dist/entities/dashboard-variable.entity.d.ts +15 -0
- package/dist/entities/dashboard-variable.entity.d.ts.map +1 -0
- package/dist/entities/dashboard-variable.entity.js +73 -0
- package/dist/entities/dashboard-variable.entity.js.map +1 -0
- package/dist/entities/dashboard.entity.d.ts +12 -0
- package/dist/entities/dashboard.entity.d.ts.map +1 -0
- package/dist/entities/dashboard.entity.js +50 -0
- package/dist/entities/dashboard.entity.js.map +1 -0
- package/dist/entities/question-sql-dataset-config.entity.d.ts +13 -0
- package/dist/entities/question-sql-dataset-config.entity.d.ts.map +1 -0
- package/dist/entities/question-sql-dataset-config.entity.js +60 -0
- package/dist/entities/question-sql-dataset-config.entity.js.map +1 -0
- package/dist/entities/question.entity.d.ts +15 -0
- package/dist/entities/question.entity.d.ts.map +1 -0
- package/dist/entities/question.entity.js +67 -0
- package/dist/entities/question.entity.js.map +1 -0
- package/dist/helpers/solid-registry.d.ts +9 -1
- package/dist/helpers/solid-registry.d.ts.map +1 -1
- package/dist/helpers/solid-registry.js +32 -0
- package/dist/helpers/solid-registry.js.map +1 -1
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/interfaces.d.ts +12 -1
- package/dist/interfaces.d.ts.map +1 -1
- package/dist/interfaces.js.map +1 -1
- package/dist/mappers/dashboard-mapper.d.ts +6 -0
- package/dist/mappers/dashboard-mapper.d.ts.map +1 -0
- package/dist/mappers/dashboard-mapper.js +60 -0
- package/dist/mappers/dashboard-mapper.js.map +1 -0
- package/dist/repository/dashboard.repository.d.ts +11 -0
- package/dist/repository/dashboard.repository.d.ts.map +1 -0
- package/dist/repository/dashboard.repository.js +93 -0
- package/dist/repository/dashboard.repository.js.map +1 -0
- package/dist/seeders/module-metadata-seeder.service.d.ts +5 -1
- package/dist/seeders/module-metadata-seeder.service.d.ts.map +1 -1
- package/dist/seeders/module-metadata-seeder.service.js +18 -2
- package/dist/seeders/module-metadata-seeder.service.js.map +1 -1
- package/dist/seeders/seed-data/solid-core-metadata.json +4222 -2418
- package/dist/services/ai-interaction.service.d.ts +23 -0
- package/dist/services/ai-interaction.service.d.ts.map +1 -0
- package/dist/services/ai-interaction.service.js +147 -0
- package/dist/services/ai-interaction.service.js.map +1 -0
- package/dist/services/dashboard-selection-providers/dashboard-variable-sql-dynamic-provider.service.d.ts +12 -0
- package/dist/services/dashboard-selection-providers/dashboard-variable-sql-dynamic-provider.service.d.ts.map +1 -0
- package/dist/services/dashboard-selection-providers/dashboard-variable-sql-dynamic-provider.service.js +55 -0
- package/dist/services/dashboard-selection-providers/dashboard-variable-sql-dynamic-provider.service.js.map +1 -0
- package/dist/services/dashboard-selection-providers/dashboard-variable-test-dynamic-provider.service.d.ts +11 -0
- package/dist/services/dashboard-selection-providers/dashboard-variable-test-dynamic-provider.service.d.ts.map +1 -0
- package/dist/services/dashboard-selection-providers/dashboard-variable-test-dynamic-provider.service.js +45 -0
- package/dist/services/dashboard-selection-providers/dashboard-variable-test-dynamic-provider.service.js.map +1 -0
- package/dist/services/dashboard-variable.service.d.ts +23 -0
- package/dist/services/dashboard-variable.service.d.ts.map +1 -0
- package/dist/services/dashboard-variable.service.js +57 -0
- package/dist/services/dashboard-variable.service.js.map +1 -0
- package/dist/services/dashboard.service.d.ts +38 -0
- package/dist/services/dashboard.service.d.ts.map +1 -0
- package/dist/services/dashboard.service.js +179 -0
- package/dist/services/dashboard.service.js.map +1 -0
- package/dist/services/menu-item-metadata.service.d.ts.map +1 -1
- package/dist/services/menu-item-metadata.service.js +1 -1
- package/dist/services/menu-item-metadata.service.js.map +1 -1
- package/dist/services/question-data-providers/chartjs-sql-data-provider.service.d.ts +36 -0
- package/dist/services/question-data-providers/chartjs-sql-data-provider.service.d.ts.map +1 -0
- package/dist/services/question-data-providers/chartjs-sql-data-provider.service.js +85 -0
- package/dist/services/question-data-providers/chartjs-sql-data-provider.service.js.map +1 -0
- package/dist/services/question-data-providers/helpers.d.ts +4 -0
- package/dist/services/question-data-providers/helpers.d.ts.map +1 -0
- package/dist/services/question-data-providers/helpers.js +10 -0
- package/dist/services/question-data-providers/helpers.js.map +1 -0
- package/dist/services/question-data-providers/prime-react-datatable-sql-data-provider.service.d.ts +17 -0
- package/dist/services/question-data-providers/prime-react-datatable-sql-data-provider.service.d.ts.map +1 -0
- package/dist/services/question-data-providers/prime-react-datatable-sql-data-provider.service.js +64 -0
- package/dist/services/question-data-providers/prime-react-datatable-sql-data-provider.service.js.map +1 -0
- package/dist/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.d.ts +19 -0
- package/dist/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.d.ts.map +1 -0
- package/dist/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.js +84 -0
- package/dist/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.js.map +1 -0
- package/dist/services/question-sql-dataset-config.service.d.ts +22 -0
- package/dist/services/question-sql-dataset-config.service.d.ts.map +1 -0
- package/dist/services/question-sql-dataset-config.service.js +56 -0
- package/dist/services/question-sql-dataset-config.service.js.map +1 -0
- package/dist/services/question.service.d.ts +29 -0
- package/dist/services/question.service.d.ts.map +1 -0
- package/dist/services/question.service.js +117 -0
- package/dist/services/question.service.js.map +1 -0
- package/dist/services/scheduled-jobs/scheduler.service.d.ts.map +1 -1
- package/dist/services/scheduled-jobs/scheduler.service.js +22 -11
- package/dist/services/scheduled-jobs/scheduler.service.js.map +1 -1
- package/dist/services/selection-providers/list-of-dashboard-question-providers-selection-provider.service.d.ts +11 -0
- package/dist/services/selection-providers/list-of-dashboard-question-providers-selection-provider.service.d.ts.map +1 -0
- package/dist/services/selection-providers/list-of-dashboard-question-providers-selection-provider.service.js +46 -0
- package/dist/services/selection-providers/list-of-dashboard-question-providers-selection-provider.service.js.map +1 -0
- package/dist/services/selection-providers/list-of-dashboard-variable-providers-selection-provider.service.d.ts +11 -0
- package/dist/services/selection-providers/list-of-dashboard-variable-providers-selection-provider.service.d.ts.map +1 -0
- package/dist/services/selection-providers/list-of-dashboard-variable-providers-selection-provider.service.js +47 -0
- package/dist/services/selection-providers/list-of-dashboard-variable-providers-selection-provider.service.js.map +1 -0
- package/dist/services/solid-introspect.service.d.ts +2 -0
- package/dist/services/solid-introspect.service.d.ts.map +1 -1
- package/dist/services/solid-introspect.service.js +28 -0
- package/dist/services/solid-introspect.service.js.map +1 -1
- package/dist/services/sql-expression-resolver.service.d.ts +9 -0
- package/dist/services/sql-expression-resolver.service.d.ts.map +1 -0
- package/dist/services/sql-expression-resolver.service.js +105 -0
- package/dist/services/sql-expression-resolver.service.js.map +1 -0
- package/dist/solid-core.module.d.ts.map +1 -1
- package/dist/solid-core.module.js +61 -0
- package/dist/solid-core.module.js.map +1 -1
- package/dist/subscribers/dashboard-variable.subscriber.d.ts +16 -0
- package/dist/subscribers/dashboard-variable.subscriber.d.ts.map +1 -0
- package/dist/subscribers/dashboard-variable.subscriber.js +72 -0
- package/dist/subscribers/dashboard-variable.subscriber.js.map +1 -0
- package/dist/subscribers/dashboard.subscriber.d.ts +15 -0
- package/dist/subscribers/dashboard.subscriber.d.ts.map +1 -0
- package/dist/subscribers/dashboard.subscriber.js +56 -0
- package/dist/subscribers/dashboard.subscriber.js.map +1 -0
- package/dist/subscribers/question-sql-dataset-config.subscriber.d.ts +16 -0
- package/dist/subscribers/question-sql-dataset-config.subscriber.d.ts.map +1 -0
- package/dist/subscribers/question-sql-dataset-config.subscriber.js +72 -0
- package/dist/subscribers/question-sql-dataset-config.subscriber.js.map +1 -0
- package/dist/subscribers/question.subscriber.d.ts +16 -0
- package/dist/subscribers/question.subscriber.d.ts.map +1 -0
- package/dist/subscribers/question.subscriber.js +72 -0
- package/dist/subscribers/question.subscriber.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/controllers/ai-interaction.controller.ts +98 -0
- package/src/controllers/dashboard-variable.controller.ts +93 -0
- package/src/controllers/dashboard.controller.ts +99 -0
- package/src/controllers/question-sql-dataset-config.controller.ts +93 -0
- package/src/controllers/question.controller.ts +104 -0
- package/src/controllers/test.controller.ts +1 -2
- package/src/decorators/dashboard-question-data-provider.decorator.ts +7 -0
- package/src/decorators/dashboard-selection-provider.decorator.ts +7 -0
- package/src/dtos/create-ai-interaction.dto.ts +60 -0
- package/src/dtos/create-dashboard-variable.dto.ts +56 -0
- package/src/dtos/create-dashboard.dto.ts +53 -0
- package/src/dtos/create-question-sql-dataset-config.dto.ts +42 -0
- package/src/dtos/create-question.dto.ts +58 -0
- package/src/dtos/dashboard-variable-selection-dynamic-query.dto.ts +29 -0
- package/src/dtos/invoke-ai-prompt.dto.ts +6 -0
- package/src/dtos/update-ai-interaction.dto.ts +65 -0
- package/src/dtos/update-dashboard-variable.dto.ts +54 -0
- package/src/dtos/update-dashboard.dto.ts +57 -0
- package/src/dtos/update-question-sql-dataset-config.dto.ts +49 -0
- package/src/dtos/update-question.dto.ts +63 -0
- package/src/entities/ai-interaction.entity.ts +39 -0
- package/src/entities/dashboard-variable.entity.ts +30 -0
- package/src/entities/dashboard.entity.ts +21 -0
- package/src/entities/question-sql-dataset-config.entity.ts +25 -0
- package/src/entities/question.entity.ts +30 -0
- package/src/helpers/solid-registry.ts +44 -2
- package/src/index.ts +5 -0
- package/src/interfaces.ts +41 -29
- package/src/mappers/dashboard-mapper.ts +52 -0
- package/src/repository/dashboard.repository.ts +100 -0
- package/src/seeders/module-metadata-seeder.service.ts +21 -1
- package/src/seeders/seed-data/solid-core-metadata.json +4225 -2421
- package/src/services/1. Create a context menu option i.py +12 -0
- package/src/services/ai-interaction.service.ts +127 -0
- package/src/services/dashboard-selection-providers/dashboard-variable-sql-dynamic-provider.service.ts +56 -0
- package/src/services/dashboard-selection-providers/dashboard-variable-test-dynamic-provider.service.ts +37 -0
- package/src/services/dashboard-variable.service.ts +36 -0
- package/src/services/dashboard.service.ts +147 -0
- package/src/services/menu-item-metadata.service.ts +2 -1
- package/src/services/question-data-providers/chartjs-sql-data-provider.service.ts +121 -0
- package/src/services/question-data-providers/helpers.ts +11 -0
- package/src/services/question-data-providers/prime-react-datatable-sql-data-provider.service.ts +72 -0
- package/src/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.ts +110 -0
- package/src/services/question-sql-dataset-config.service.ts +34 -0
- package/src/services/question.service.ts +115 -0
- package/src/services/scheduled-jobs/scheduler.service.ts +32 -64
- package/src/services/selection-providers/list-of-dashboard-question-providers-selection-provider.service.ts +41 -0
- package/src/services/selection-providers/list-of-dashboard-variable-providers-selection-provider.service.ts +41 -0
- package/src/services/solid-introspect.service.ts +42 -0
- package/src/services/sql-expression-resolver.service.ts +125 -0
- package/src/solid-core.module.ts +61 -1
- package/src/subscribers/dashboard-variable.subscriber.ts +63 -0
- package/src/subscribers/dashboard.subscriber.ts +43 -0
- package/src/subscribers/question-sql-dataset-config.subscriber.ts +63 -0
- package/src/subscribers/question.subscriber.ts +65 -0
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
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;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.ListOfDashboardVariableProvidersSelectionProvider = void 0;
|
|
13
|
+
const common_1 = require("@nestjs/common");
|
|
14
|
+
const selection_provider_decorator_1 = require("../../decorators/selection-provider.decorator");
|
|
15
|
+
const solid_registry_1 = require("../../helpers/solid-registry");
|
|
16
|
+
const dashboard_service_1 = require("../dashboard.service");
|
|
17
|
+
let ListOfDashboardVariableProvidersSelectionProvider = class ListOfDashboardVariableProvidersSelectionProvider {
|
|
18
|
+
constructor(solidRegistry) {
|
|
19
|
+
this.solidRegistry = solidRegistry;
|
|
20
|
+
}
|
|
21
|
+
help() {
|
|
22
|
+
return "# Allows one to dynamically fetch all the dashboard providers that are registered in the system. ";
|
|
23
|
+
}
|
|
24
|
+
name() {
|
|
25
|
+
return 'ListOfDashboardVariableProvidersSelectionProvider';
|
|
26
|
+
}
|
|
27
|
+
async value(optionValue, ctxt) {
|
|
28
|
+
const dashboardSelectionProvider = this.solidRegistry.getDashboardVariableSelectionProviderInstance(optionValue);
|
|
29
|
+
if (!dashboardSelectionProvider) {
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
return { label: dashboardSelectionProvider.name(), value: dashboardSelectionProvider.name() };
|
|
33
|
+
}
|
|
34
|
+
async values(query, ctxt) {
|
|
35
|
+
const dashboardSelectionProviders = this.solidRegistry.getDashboardVariableSelectionProviders();
|
|
36
|
+
return dashboardSelectionProviders.filter(i => (i.name !== dashboard_service_1.SQL_DYNAMIC_PROVIDER_NAME)).map(i => {
|
|
37
|
+
return { label: i.name, value: i.name };
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
exports.ListOfDashboardVariableProvidersSelectionProvider = ListOfDashboardVariableProvidersSelectionProvider;
|
|
42
|
+
exports.ListOfDashboardVariableProvidersSelectionProvider = ListOfDashboardVariableProvidersSelectionProvider = __decorate([
|
|
43
|
+
(0, selection_provider_decorator_1.SelectionProvider)(),
|
|
44
|
+
(0, common_1.Injectable)(),
|
|
45
|
+
__metadata("design:paramtypes", [solid_registry_1.SolidRegistry])
|
|
46
|
+
], ListOfDashboardVariableProvidersSelectionProvider);
|
|
47
|
+
//# sourceMappingURL=list-of-dashboard-variable-providers-selection-provider.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-of-dashboard-variable-providers-selection-provider.service.js","sourceRoot":"","sources":["../../../src/services/selection-providers/list-of-dashboard-variable-providers-selection-provider.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,gGAAgF;AAChF,iEAA2D;AAE3D,4DAAiE;AAK1D,IAAM,iDAAiD,GAAvD,MAAM,iDAAiD;IAE1D,YACqB,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;IAEjD,CAAC;IAED,IAAI;QACA,OAAO,mGAAmG,CAAC;IAC/G,CAAC;IAED,IAAI;QACA,OAAO,mDAAmD,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,WAAmB,EAAE,IAA+B;QAC5D,MAAM,0BAA0B,GAA+E,IAAI,CAAC,aAAa,CAAC,6CAA6C,CAAC,WAAW,CAAC,CAAC;QAC7L,IAAI,CAAC,0BAA0B,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,0BAA0B,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,0BAA0B,CAAC,IAAI,EAAE,EAAE,CAAC;IAClG,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAa,EAAE,IAA+B;QACvD,MAAM,2BAA2B,GAAG,IAAI,CAAC,aAAa,CAAC,sCAAsC,EAAE,CAAA;QAE/F,OAAO,2BAA2B,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,6CAAyB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YAC3F,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5C,CAAC,CAAC,CAAC;IACP,CAAC;CACJ,CAAA;AA/BY,8GAAiD;4DAAjD,iDAAiD;IAF7D,IAAA,gDAAiB,GAAE;IACnB,IAAA,mBAAU,GAAE;qCAI2B,8BAAa;GAHxC,iDAAiD,CA+B7D","sourcesContent":["import { Injectable } from \"@nestjs/common\";\nimport { SelectionProvider } from \"src/decorators/selection-provider.decorator\";\nimport { SolidRegistry } from \"src/helpers/solid-registry\";\nimport { IDashboardVariableSelectionProvider, ISelectionProvider, ISelectionProviderContext, ISelectionProviderValues } from \"../../interfaces\";\nimport { SQL_DYNAMIC_PROVIDER_NAME } from \"../dashboard.service\";\n\n\n@SelectionProvider()\n@Injectable()\nexport class ListOfDashboardVariableProvidersSelectionProvider implements ISelectionProvider<ISelectionProviderContext> {\n\n constructor(\n private readonly solidRegistry: SolidRegistry,\n ) {\n }\n\n help(): string {\n return \"# Allows one to dynamically fetch all the dashboard providers that are registered in the system. \";\n }\n\n name(): string {\n return 'ListOfDashboardVariableProvidersSelectionProvider';\n }\n\n async value(optionValue: string, ctxt: ISelectionProviderContext): Promise<ISelectionProviderValues | any> {\n const dashboardSelectionProvider: IDashboardVariableSelectionProvider<ISelectionProviderContext> | undefined = this.solidRegistry.getDashboardVariableSelectionProviderInstance(optionValue);\n if (!dashboardSelectionProvider) {\n return null;\n }\n\n return { label: dashboardSelectionProvider.name(), value: dashboardSelectionProvider.name() };\n }\n\n async values(query: string, ctxt: ISelectionProviderContext): Promise<readonly ISelectionProviderValues[]> {\n const dashboardSelectionProviders = this.solidRegistry.getDashboardVariableSelectionProviders()\n //Exclude the SQL dynamic provider from the list, (since although it is a dashboard selection provider, it is not a valid option for the user to select)\n return dashboardSelectionProviders.filter(i => (i.name !== SQL_DYNAMIC_PROVIDER_NAME)).map(i => {\n return { label: i.name, value: i.name };\n });\n }\n}"]}
|
|
@@ -11,8 +11,10 @@ export declare class SolidIntrospectService implements OnApplicationBootstrap {
|
|
|
11
11
|
constructor(discoveryService: DiscoveryService, reflector: Reflector, metadataScanner: MetadataScanner, solidRegistry: SolidRegistry);
|
|
12
12
|
private readonly logger;
|
|
13
13
|
onApplicationBootstrap(): void;
|
|
14
|
+
isDashboardQuestionDataProvider(providerWrapper: InstanceWrapper<any>): boolean;
|
|
14
15
|
private isSeeder;
|
|
15
16
|
private isSelectionProvider;
|
|
17
|
+
private isDashboardVariableSelectionProvider;
|
|
16
18
|
private isComputedFieldProvider;
|
|
17
19
|
private isScheduledJobProvider;
|
|
18
20
|
private isSolidDatabaseModule;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"solid-introspect.service.d.ts","sourceRoot":"","sources":["../../src/services/solid-introspect.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAsB,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AAIzE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"solid-introspect.service.d.ts","sourceRoot":"","sources":["../../src/services/solid-introspect.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAsB,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AAIzE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAK7C,qBACa,sBAAuB,YAAW,sBAAsB;IAEjE,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAHb,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,SAAS,EACpB,eAAe,EAAE,eAAe,EAChC,aAAa,EAAE,aAAa;IAG/C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2C;IAClE,sBAAsB;IA+FtB,+BAA+B,CAAC,eAAe,EAAE,eAAe,CAAC,GAAG,CAAC;IAWrE,OAAO,CAAC,QAAQ;IAWhB,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,oCAAoC;IAU5C,OAAO,CAAC,uBAAuB;IAY/B,OAAO,CAAC,sBAAsB;IAY9B,OAAO,CAAC,qBAAqB;IAY7B,OAAO,CAAC,QAAQ;IAuBhB,cAAc,CAAC,iBAAiB,EAAE,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC;IAK3D,WAAW,CAAC,YAAY,EAAE,MAAM;CAGjC"}
|
|
@@ -19,6 +19,8 @@ const selection_provider_decorator_1 = require("../decorators/selection-provider
|
|
|
19
19
|
const solid_database_module_decorator_1 = require("../decorators/solid-database-module.decorator");
|
|
20
20
|
const solid_registry_1 = require("../helpers/solid-registry");
|
|
21
21
|
const scheduled_job_provider_decorator_1 = require("../decorators/scheduled-job-provider.decorator");
|
|
22
|
+
const dashboard_selection_provider_decorator_1 = require("../decorators/dashboard-selection-provider.decorator");
|
|
23
|
+
const dashboard_question_data_provider_decorator_1 = require("../decorators/dashboard-question-data-provider.decorator");
|
|
22
24
|
let SolidIntrospectService = SolidIntrospectService_1 = class SolidIntrospectService {
|
|
23
25
|
constructor(discoveryService, reflector, metadataScanner, solidRegistry) {
|
|
24
26
|
this.discoveryService = discoveryService;
|
|
@@ -41,6 +43,18 @@ let SolidIntrospectService = SolidIntrospectService_1 = class SolidIntrospectSer
|
|
|
41
43
|
selectionProviders.forEach((selectionProvider) => {
|
|
42
44
|
this.solidRegistry.registerSelectionProvider(selectionProvider);
|
|
43
45
|
});
|
|
46
|
+
const dashboardVariableSelectionProviders = this.discoveryService
|
|
47
|
+
.getProviders()
|
|
48
|
+
.filter((provider) => this.isDashboardVariableSelectionProvider(provider));
|
|
49
|
+
dashboardVariableSelectionProviders.forEach((dashboardSelectionProvider) => {
|
|
50
|
+
this.solidRegistry.registerDashboardVariableSelectionProvider(dashboardSelectionProvider);
|
|
51
|
+
});
|
|
52
|
+
const dashboardQuestionDataProviders = this.discoveryService
|
|
53
|
+
.getProviders()
|
|
54
|
+
.filter((provider) => this.isDashboardQuestionDataProvider(provider));
|
|
55
|
+
dashboardQuestionDataProviders.forEach((provider) => {
|
|
56
|
+
this.solidRegistry.registerDashboardQuestionDataProvider(provider);
|
|
57
|
+
});
|
|
44
58
|
const computedFieldProviders = this.discoveryService
|
|
45
59
|
.getProviders()
|
|
46
60
|
.filter((provider) => this.isComputedFieldProvider(provider));
|
|
@@ -74,6 +88,13 @@ let SolidIntrospectService = SolidIntrospectService_1 = class SolidIntrospectSer
|
|
|
74
88
|
this.solidRegistry.registerScheduledJobProvider(scheduledJobProvider);
|
|
75
89
|
});
|
|
76
90
|
}
|
|
91
|
+
isDashboardQuestionDataProvider(providerWrapper) {
|
|
92
|
+
const { instance } = providerWrapper;
|
|
93
|
+
if (!instance)
|
|
94
|
+
return false;
|
|
95
|
+
const provider = this.reflector.get(dashboard_question_data_provider_decorator_1.IS_DASHBOARD_QUESTION_DATA_PROVIDER, instance.constructor);
|
|
96
|
+
return !!provider;
|
|
97
|
+
}
|
|
77
98
|
isSeeder(provider) {
|
|
78
99
|
const { instance } = provider;
|
|
79
100
|
if (!instance)
|
|
@@ -92,6 +113,13 @@ let SolidIntrospectService = SolidIntrospectService_1 = class SolidIntrospectSer
|
|
|
92
113
|
const isSelectionProvider = this.reflector.get(selection_provider_decorator_1.IS_SELECTION_PROVIDER, instance.constructor);
|
|
93
114
|
return !!isSelectionProvider;
|
|
94
115
|
}
|
|
116
|
+
isDashboardVariableSelectionProvider(provider) {
|
|
117
|
+
const { instance } = provider;
|
|
118
|
+
if (!instance)
|
|
119
|
+
return false;
|
|
120
|
+
const isDashboardSelectionProvider = this.reflector.get(dashboard_selection_provider_decorator_1.IS_DASHBOARD_VARIABLE_SELECTION_PROVIDER, instance.constructor);
|
|
121
|
+
return !!isDashboardSelectionProvider;
|
|
122
|
+
}
|
|
95
123
|
isComputedFieldProvider(provider) {
|
|
96
124
|
const { instance } = provider;
|
|
97
125
|
if (!instance)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"solid-introspect.service.js","sourceRoot":"","sources":["../../src/services/solid-introspect.service.ts"],"names":[],"mappings":"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","sourcesContent":["import { classify } from '@angular-devkit/core/src/utils/strings';\nimport { Injectable, Logger, OnApplicationBootstrap } from '@nestjs/common';\nimport { DiscoveryService, MetadataScanner, Reflector } from '@nestjs/core';\nimport { InstanceWrapper } from '@nestjs/core/injector/instance-wrapper';\nimport { IS_COMPUTED_FIELD_PROVIDER } from 'src/decorators/computed-field-provider.decorator';\nimport { IS_SELECTION_PROVIDER } from 'src/decorators/selection-provider.decorator';\nimport { IS_SOLID_DATABASE_MODULE } from 'src/decorators/solid-database-module.decorator';\nimport { SolidRegistry } from 'src/helpers/solid-registry';\nimport { CRUDService } from './crud.service';\nimport { IS_SCHEDULED_JOB_PROVIDER } from 'src/decorators/scheduled-job-provider.decorator';\n\n@Injectable()\nexport class SolidIntrospectService implements OnApplicationBootstrap {\n constructor(\n private readonly discoveryService: DiscoveryService,\n private readonly reflector: Reflector,\n private readonly metadataScanner: MetadataScanner,\n private readonly solidRegistry: SolidRegistry,\n ) { }\n\n private readonly logger = new Logger(SolidIntrospectService.name);\n onApplicationBootstrap() {\n this.logger.log('Introspecting the application for Solid metadata');\n\n // Register all seeders\n const seeders = this.discoveryService\n .getProviders()\n .filter((provider) => this.isSeeder(provider));\n seeders.forEach((seeder) => {\n this.solidRegistry.registerSeeder(seeder);\n });\n\n // TODO: Scan the filesystem and populate the solid metadata\n\n // Register all ISelectionProvider implementations\n const selectionProviders = this.discoveryService\n .getProviders()\n .filter((provider) => this.isSelectionProvider(provider));\n\n selectionProviders.forEach((selectionProvider) => {\n // @ts-ignore\n this.solidRegistry.registerSelectionProvider(selectionProvider);\n });\n\n\n // Register all IComputedProvider implementations\n const computedFieldProviders = this.discoveryService\n .getProviders()\n .filter((provider) => this.isComputedFieldProvider(provider));\n\n computedFieldProviders.forEach((computedFieldProvider) => {\n // @ts-ignore\n this.solidRegistry.registerComputedFieldProvider(computedFieldProvider);\n });\n\n // Register all ISolidDatabaseModules implementations\n const solidDatabaseModules = this.discoveryService\n .getProviders()\n .filter((provider) => this.isSolidDatabaseModule(provider));\n\n solidDatabaseModules.forEach((solidDatabaseModule) => {\n // @ts-ignore\n this.solidRegistry.registerSolidDatabaseModule(solidDatabaseModule);\n });\n\n // keep track of all the controllers & respective methods. \n const allControllers = this.discoveryService\n .getControllers()\n .map((controller) => {\n const { instance } = controller;\n return {\n name: controller.name,\n methods: this.metadataScanner.getAllMethodNames(Object.getPrototypeOf(instance))\n };\n });\n\n this.solidRegistry.registerControllers(new Set(allControllers));\n\n // Register all modules\n const allModules = this.discoveryService\n .getProviders()\n .filter((provider) => this.isModule(provider));\n this.solidRegistry.registerModules(allModules);\n\n // Register all IScheduledJob implementations\n const scheduledJobProviders = this.discoveryService\n .getProviders()\n .filter((provider) => this.isScheduledJobProvider(provider));\n\n scheduledJobProviders.forEach((scheduledJobProvider) => {\n // @ts-ignore\n this.solidRegistry.registerScheduledJobProvider(scheduledJobProvider);\n });\n\n }\n\n // This method identifies a provider as a seeder if it has a seed method i.e duck typing\n private isSeeder(provider: InstanceWrapper) {\n const { instance } = provider;\n if (!instance) return false;\n\n const seedMethod = this.metadataScanner\n .getAllMethodNames(Object.getPrototypeOf(instance))\n .find((methodName) => methodName === 'seed');\n if (!seedMethod) return false;\n return true;\n }\n\n private isSelectionProvider(provider: InstanceWrapper) {\n const { instance } = provider;\n if (!instance) return false;\n\n const isSelectionProvider = this.reflector.get<boolean>(\n IS_SELECTION_PROVIDER,\n instance.constructor,\n );\n\n return !!isSelectionProvider;\n }\n\n private isComputedFieldProvider(provider: InstanceWrapper) {\n const { instance } = provider;\n if (!instance) return false;\n\n const isComputedFieldProvider = this.reflector.get<boolean>(\n IS_COMPUTED_FIELD_PROVIDER,\n instance.constructor,\n );\n\n return !!isComputedFieldProvider;\n }\n\n private isScheduledJobProvider(provider: InstanceWrapper) {\n const { instance } = provider;\n if (!instance) return false;\n\n const isScheduledJobProvider = this.reflector.get<boolean>(\n IS_SCHEDULED_JOB_PROVIDER,\n instance.constructor,\n );\n\n return !!isScheduledJobProvider;\n }\n\n private isSolidDatabaseModule(provider: InstanceWrapper) {\n const { instance } = provider;\n if (!instance) return false;\n\n const isSolidDatabaseModule = this.reflector.get<boolean>(\n IS_SOLID_DATABASE_MODULE,\n instance.constructor,\n );\n\n return !!isSolidDatabaseModule;\n }\n\n private isModule(provider: InstanceWrapper): boolean {\n const metatype = provider.metatype;\n // Check if it's a Static Module (Class-Based)\n if (metatype && typeof metatype === 'function' && Reflect.getMetadata('imports', metatype)) {\n return true;\n }\n\n // Ensure provider.instance is an object before checking for 'module'\n if (provider.instance && typeof provider.instance === 'object') {\n // Check if it's a Dynamic Module (Object-Based)\n if ('module' in provider.instance && typeof provider.instance.module === 'function') {\n return true;\n }\n }\n\n return false;\n }\n\n /**\n * Given a model singular name this will return the crud service instance.\n * @param modelSingularName \n * @returns \n */\n getCRUDService(modelSingularName: string): CRUDService<any> {\n const provider = this.getProvider(`${classify(modelSingularName)}Service`);\n return provider?.instance as CRUDService<any>;\n }\n\n getProvider(providerName: string) {\n return this.discoveryService.getProviders().find((provider) => provider.name === providerName);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"solid-introspect.service.js","sourceRoot":"","sources":["../../src/services/solid-introspect.service.ts"],"names":[],"mappings":"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","sourcesContent":["import { classify } from '@angular-devkit/core/src/utils/strings';\nimport { Injectable, Logger, OnApplicationBootstrap } from '@nestjs/common';\nimport { DiscoveryService, MetadataScanner, Reflector } from '@nestjs/core';\nimport { InstanceWrapper } from '@nestjs/core/injector/instance-wrapper';\nimport { IS_COMPUTED_FIELD_PROVIDER } from 'src/decorators/computed-field-provider.decorator';\nimport { IS_SELECTION_PROVIDER } from 'src/decorators/selection-provider.decorator';\nimport { IS_SOLID_DATABASE_MODULE } from 'src/decorators/solid-database-module.decorator';\nimport { SolidRegistry } from 'src/helpers/solid-registry';\nimport { CRUDService } from './crud.service';\nimport { IS_SCHEDULED_JOB_PROVIDER } from 'src/decorators/scheduled-job-provider.decorator';\nimport { IS_DASHBOARD_VARIABLE_SELECTION_PROVIDER } from 'src/decorators/dashboard-selection-provider.decorator';\nimport { IS_DASHBOARD_QUESTION_DATA_PROVIDER } from 'src/decorators/dashboard-question-data-provider.decorator';\n\n@Injectable()\nexport class SolidIntrospectService implements OnApplicationBootstrap {\n constructor(\n private readonly discoveryService: DiscoveryService,\n private readonly reflector: Reflector,\n private readonly metadataScanner: MetadataScanner,\n private readonly solidRegistry: SolidRegistry,\n ) { }\n\n private readonly logger = new Logger(SolidIntrospectService.name);\n onApplicationBootstrap() {\n this.logger.log('Introspecting the application for Solid metadata');\n\n // Register all seeders\n const seeders = this.discoveryService\n .getProviders()\n .filter((provider) => this.isSeeder(provider));\n seeders.forEach((seeder) => {\n this.solidRegistry.registerSeeder(seeder);\n });\n\n // TODO: Scan the filesystem and populate the solid metadata\n\n // Register all ISelectionProvider implementations\n const selectionProviders = this.discoveryService\n .getProviders()\n .filter((provider) => this.isSelectionProvider(provider));\n\n selectionProviders.forEach((selectionProvider) => {\n // @ts-ignore\n this.solidRegistry.registerSelectionProvider(selectionProvider);\n });\n\n // Register all IDashboardSelectionProvider implementations\n const dashboardVariableSelectionProviders = this.discoveryService\n .getProviders()\n .filter((provider) => this.isDashboardVariableSelectionProvider(provider));\n\n dashboardVariableSelectionProviders.forEach((dashboardSelectionProvider) => {\n // @ts-ignore\n this.solidRegistry.registerDashboardVariableSelectionProvider(dashboardSelectionProvider);\n });\n\n // Register all IDashboardSelectionProvider implementations\n const dashboardQuestionDataProviders = this.discoveryService\n .getProviders()\n .filter((provider) => this.isDashboardQuestionDataProvider(provider));\n\n dashboardQuestionDataProviders.forEach((provider) => {\n // @ts-ignore\n this.solidRegistry.registerDashboardQuestionDataProvider(provider);\n });\n\n\n // Register all IComputedProvider implementations\n const computedFieldProviders = this.discoveryService\n .getProviders()\n .filter((provider) => this.isComputedFieldProvider(provider));\n\n computedFieldProviders.forEach((computedFieldProvider) => {\n // @ts-ignore\n this.solidRegistry.registerComputedFieldProvider(computedFieldProvider);\n });\n\n // Register all ISolidDatabaseModules implementations\n const solidDatabaseModules = this.discoveryService\n .getProviders()\n .filter((provider) => this.isSolidDatabaseModule(provider));\n\n solidDatabaseModules.forEach((solidDatabaseModule) => {\n // @ts-ignore\n this.solidRegistry.registerSolidDatabaseModule(solidDatabaseModule);\n });\n\n // keep track of all the controllers & respective methods. \n const allControllers = this.discoveryService\n .getControllers()\n .map((controller) => {\n const { instance } = controller;\n return {\n name: controller.name,\n methods: this.metadataScanner.getAllMethodNames(Object.getPrototypeOf(instance))\n };\n });\n\n this.solidRegistry.registerControllers(new Set(allControllers));\n\n // Register all modules\n const allModules = this.discoveryService\n .getProviders()\n .filter((provider) => this.isModule(provider));\n this.solidRegistry.registerModules(allModules);\n\n // Register all IScheduledJob implementations\n const scheduledJobProviders = this.discoveryService\n .getProviders()\n .filter((provider) => this.isScheduledJobProvider(provider));\n\n scheduledJobProviders.forEach((scheduledJobProvider) => {\n // @ts-ignore\n this.solidRegistry.registerScheduledJobProvider(scheduledJobProvider);\n });\n\n }\n\n isDashboardQuestionDataProvider(providerWrapper: InstanceWrapper<any>) {\n const { instance } = providerWrapper;\n if (!instance) return false;\n const provider = this.reflector.get<boolean>(\n IS_DASHBOARD_QUESTION_DATA_PROVIDER,\n instance.constructor,\n );\n return !!provider;\n }\n\n // This method identifies a provider as a seeder if it has a seed method i.e duck typing\n private isSeeder(provider: InstanceWrapper) {\n const { instance } = provider;\n if (!instance) return false;\n\n const seedMethod = this.metadataScanner\n .getAllMethodNames(Object.getPrototypeOf(instance))\n .find((methodName) => methodName === 'seed');\n if (!seedMethod) return false;\n return true;\n }\n\n private isSelectionProvider(provider: InstanceWrapper) {\n const { instance } = provider;\n if (!instance) return false;\n\n const isSelectionProvider = this.reflector.get<boolean>(\n IS_SELECTION_PROVIDER,\n instance.constructor,\n );\n\n return !!isSelectionProvider;\n }\n\n private isDashboardVariableSelectionProvider(provider: InstanceWrapper) {\n const { instance } = provider;\n if (!instance) return false;\n const isDashboardSelectionProvider = this.reflector.get<boolean>(\n IS_DASHBOARD_VARIABLE_SELECTION_PROVIDER,\n instance.constructor,\n );\n return !!isDashboardSelectionProvider;\n }\n\n private isComputedFieldProvider(provider: InstanceWrapper) {\n const { instance } = provider;\n if (!instance) return false;\n\n const isComputedFieldProvider = this.reflector.get<boolean>(\n IS_COMPUTED_FIELD_PROVIDER,\n instance.constructor,\n );\n\n return !!isComputedFieldProvider;\n }\n\n private isScheduledJobProvider(provider: InstanceWrapper) {\n const { instance } = provider;\n if (!instance) return false;\n\n const isScheduledJobProvider = this.reflector.get<boolean>(\n IS_SCHEDULED_JOB_PROVIDER,\n instance.constructor,\n );\n\n return !!isScheduledJobProvider;\n }\n\n private isSolidDatabaseModule(provider: InstanceWrapper) {\n const { instance } = provider;\n if (!instance) return false;\n\n const isSolidDatabaseModule = this.reflector.get<boolean>(\n IS_SOLID_DATABASE_MODULE,\n instance.constructor,\n );\n\n return !!isSolidDatabaseModule;\n }\n\n private isModule(provider: InstanceWrapper): boolean {\n const metatype = provider.metatype;\n // Check if it's a Static Module (Class-Based)\n if (metatype && typeof metatype === 'function' && Reflect.getMetadata('imports', metatype)) {\n return true;\n }\n\n // Ensure provider.instance is an object before checking for 'module'\n if (provider.instance && typeof provider.instance === 'object') {\n // Check if it's a Dynamic Module (Object-Based)\n if ('module' in provider.instance && typeof provider.instance.module === 'function') {\n return true;\n }\n }\n\n return false;\n }\n\n /**\n * Given a model singular name this will return the crud service instance.\n * @param modelSingularName \n * @returns \n */\n getCRUDService(modelSingularName: string): CRUDService<any> {\n const provider = this.getProvider(`${classify(modelSingularName)}Service`);\n return provider?.instance as CRUDService<any>;\n }\n\n getProvider(providerName: string) {\n return this.discoveryService.getProviders().find((provider) => provider.name === providerName);\n }\n}\n"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { SqlExpression } from "./question-data-providers/chartjs-sql-data-provider.service";
|
|
2
|
+
export interface SqlReplacementResult {
|
|
3
|
+
rawSql: string;
|
|
4
|
+
parameters: any[];
|
|
5
|
+
}
|
|
6
|
+
export declare class SqlExpressionResolverService {
|
|
7
|
+
resolveSqlWithExpressions(sql: string, expressions: SqlExpression[]): SqlReplacementResult;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=sql-expression-resolver.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sql-expression-resolver.service.d.ts","sourceRoot":"","sources":["../../src/services/sql-expression-resolver.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAyB,MAAM,6DAA6D,CAAC;AAEnH,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,GAAG,EAAE,CAAC;CACnB;AAED,qBACa,4BAA4B;IACvC,yBAAyB,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,GAAG,oBAAoB;CAkH3F"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
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;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.SqlExpressionResolverService = void 0;
|
|
10
|
+
const common_1 = require("@nestjs/common");
|
|
11
|
+
const chartjs_sql_data_provider_service_1 = require("./question-data-providers/chartjs-sql-data-provider.service");
|
|
12
|
+
let SqlExpressionResolverService = class SqlExpressionResolverService {
|
|
13
|
+
resolveSqlWithExpressions(sql, expressions) {
|
|
14
|
+
const variableToColumnMap = {};
|
|
15
|
+
const variablePattern = /{{\s*(\w+)\s*\[\s*([\w.]+)\s*\]\s*}}/g;
|
|
16
|
+
let simplifiedSql = sql.replace(variablePattern, (_, variableName, columnName) => {
|
|
17
|
+
variableToColumnMap[variableName] = columnName;
|
|
18
|
+
return `{{${variableName}}}`;
|
|
19
|
+
});
|
|
20
|
+
let paramIndex = 1;
|
|
21
|
+
const parameters = [];
|
|
22
|
+
for (const expr of expressions) {
|
|
23
|
+
const column = variableToColumnMap[expr.variableName];
|
|
24
|
+
if (!column)
|
|
25
|
+
continue;
|
|
26
|
+
let sqlFragment = '';
|
|
27
|
+
const placeholder = `{{${expr.variableName}}}`;
|
|
28
|
+
switch (expr.operator) {
|
|
29
|
+
case chartjs_sql_data_provider_service_1.SqlExpressionOperator.EQUALS:
|
|
30
|
+
sqlFragment = `${column} = $${paramIndex++}`;
|
|
31
|
+
parameters.push(expr.value[0]);
|
|
32
|
+
break;
|
|
33
|
+
case chartjs_sql_data_provider_service_1.SqlExpressionOperator.NOT_EQUALS:
|
|
34
|
+
sqlFragment = `${column} != $${paramIndex++}`;
|
|
35
|
+
parameters.push(expr.value[0]);
|
|
36
|
+
break;
|
|
37
|
+
case chartjs_sql_data_provider_service_1.SqlExpressionOperator.CONTAINS:
|
|
38
|
+
sqlFragment = `${column} LIKE $${paramIndex++}`;
|
|
39
|
+
parameters.push(`%${expr.value[0]}%`);
|
|
40
|
+
break;
|
|
41
|
+
case chartjs_sql_data_provider_service_1.SqlExpressionOperator.NOT_CONTAINS:
|
|
42
|
+
sqlFragment = `${column} NOT LIKE $${paramIndex++}`;
|
|
43
|
+
parameters.push(`%${expr.value[0]}%`);
|
|
44
|
+
break;
|
|
45
|
+
case chartjs_sql_data_provider_service_1.SqlExpressionOperator.STARTS_WITH:
|
|
46
|
+
sqlFragment = `${column} LIKE $${paramIndex++}`;
|
|
47
|
+
parameters.push(`${expr.value[0]}%`);
|
|
48
|
+
break;
|
|
49
|
+
case chartjs_sql_data_provider_service_1.SqlExpressionOperator.ENDS_WITH:
|
|
50
|
+
sqlFragment = `${column} LIKE $${paramIndex++}`;
|
|
51
|
+
parameters.push(`%${expr.value[0]}`);
|
|
52
|
+
break;
|
|
53
|
+
case chartjs_sql_data_provider_service_1.SqlExpressionOperator.IN:
|
|
54
|
+
const inParams = expr.value.map(val => {
|
|
55
|
+
parameters.push(val);
|
|
56
|
+
return `$${paramIndex++}`;
|
|
57
|
+
});
|
|
58
|
+
sqlFragment = `${column} IN (${inParams.join(", ")})`;
|
|
59
|
+
break;
|
|
60
|
+
case chartjs_sql_data_provider_service_1.SqlExpressionOperator.NOT_IN:
|
|
61
|
+
const notInParams = expr.value.map(val => {
|
|
62
|
+
parameters.push(val);
|
|
63
|
+
return `$${paramIndex++}`;
|
|
64
|
+
});
|
|
65
|
+
sqlFragment = `${column} NOT IN (${notInParams.join(", ")})`;
|
|
66
|
+
break;
|
|
67
|
+
case chartjs_sql_data_provider_service_1.SqlExpressionOperator.BETWEEN:
|
|
68
|
+
sqlFragment = `${column} BETWEEN $${paramIndex} AND $${paramIndex + 1}`;
|
|
69
|
+
parameters.push(expr.value[0], expr.value[1]);
|
|
70
|
+
paramIndex += 2;
|
|
71
|
+
break;
|
|
72
|
+
case chartjs_sql_data_provider_service_1.SqlExpressionOperator.LT:
|
|
73
|
+
sqlFragment = `${column} < $${paramIndex++}`;
|
|
74
|
+
parameters.push(expr.value[0]);
|
|
75
|
+
break;
|
|
76
|
+
case chartjs_sql_data_provider_service_1.SqlExpressionOperator.LTE:
|
|
77
|
+
sqlFragment = `${column} <= $${paramIndex++}`;
|
|
78
|
+
parameters.push(expr.value[0]);
|
|
79
|
+
break;
|
|
80
|
+
case chartjs_sql_data_provider_service_1.SqlExpressionOperator.GT:
|
|
81
|
+
sqlFragment = `${column} > $${paramIndex++}`;
|
|
82
|
+
parameters.push(expr.value[0]);
|
|
83
|
+
break;
|
|
84
|
+
case chartjs_sql_data_provider_service_1.SqlExpressionOperator.GTE:
|
|
85
|
+
sqlFragment = `${column} >= $${paramIndex++}`;
|
|
86
|
+
parameters.push(expr.value[0]);
|
|
87
|
+
break;
|
|
88
|
+
default:
|
|
89
|
+
throw new Error(`Unsupported SQL operator: ${expr.operator}`);
|
|
90
|
+
}
|
|
91
|
+
simplifiedSql = simplifiedSql.replace(placeholder, sqlFragment);
|
|
92
|
+
}
|
|
93
|
+
simplifiedSql = simplifiedSql.replace(/{{\s*\w+\s*}}/g, '');
|
|
94
|
+
simplifiedSql = simplifiedSql.replace(/\bwhere\b\s*$/i, '').trim();
|
|
95
|
+
return {
|
|
96
|
+
rawSql: simplifiedSql,
|
|
97
|
+
parameters
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
exports.SqlExpressionResolverService = SqlExpressionResolverService;
|
|
102
|
+
exports.SqlExpressionResolverService = SqlExpressionResolverService = __decorate([
|
|
103
|
+
(0, common_1.Injectable)()
|
|
104
|
+
], SqlExpressionResolverService);
|
|
105
|
+
//# sourceMappingURL=sql-expression-resolver.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sql-expression-resolver.service.js","sourceRoot":"","sources":["../../src/services/sql-expression-resolver.service.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA4C;AAC5C,mHAAmH;AAQ5G,IAAM,4BAA4B,GAAlC,MAAM,4BAA4B;IACvC,yBAAyB,CAAC,GAAW,EAAE,WAA4B;QACjE,MAAM,mBAAmB,GAA2B,EAAE,CAAC;QACvD,MAAM,eAAe,GAAG,uCAAuC,CAAC;QAGhE,IAAI,aAAa,GAAG,GAAG,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE;YAC/E,mBAAmB,CAAC,YAAY,CAAC,GAAG,UAAU,CAAC;YAC/C,OAAO,KAAK,YAAY,IAAI,CAAC;QAC/B,CAAC,CAAC,CAAC;QAGH,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,MAAM,UAAU,GAAU,EAAE,CAAC;QAE7B,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;YAC/B,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACtD,IAAI,CAAC,MAAM;gBAAE,SAAS;YAEtB,IAAI,WAAW,GAAG,EAAE,CAAC;YACrB,MAAM,WAAW,GAAG,KAAK,IAAI,CAAC,YAAY,IAAI,CAAC;YAE/C,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACtB,KAAK,yDAAqB,CAAC,MAAM;oBAC/B,WAAW,GAAG,GAAG,MAAM,OAAO,UAAU,EAAE,EAAE,CAAC;oBAC7C,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC/B,MAAM;gBAER,KAAK,yDAAqB,CAAC,UAAU;oBACnC,WAAW,GAAG,GAAG,MAAM,QAAQ,UAAU,EAAE,EAAE,CAAC;oBAC9C,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC/B,MAAM;gBAER,KAAK,yDAAqB,CAAC,QAAQ;oBACjC,WAAW,GAAG,GAAG,MAAM,UAAU,UAAU,EAAE,EAAE,CAAC;oBAChD,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACtC,MAAM;gBAER,KAAK,yDAAqB,CAAC,YAAY;oBACrC,WAAW,GAAG,GAAG,MAAM,cAAc,UAAU,EAAE,EAAE,CAAC;oBACpD,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACtC,MAAM;gBAER,KAAK,yDAAqB,CAAC,WAAW;oBACpC,WAAW,GAAG,GAAG,MAAM,UAAU,UAAU,EAAE,EAAE,CAAC;oBAChD,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACrC,MAAM;gBAER,KAAK,yDAAqB,CAAC,SAAS;oBAClC,WAAW,GAAG,GAAG,MAAM,UAAU,UAAU,EAAE,EAAE,CAAC;oBAChD,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;oBACrC,MAAM;gBAER,KAAK,yDAAqB,CAAC,EAAE;oBAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;wBACpC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;wBACrB,OAAO,IAAI,UAAU,EAAE,EAAE,CAAC;oBAC5B,CAAC,CAAC,CAAC;oBACH,WAAW,GAAG,GAAG,MAAM,QAAQ,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;oBACtD,MAAM;gBAER,KAAK,yDAAqB,CAAC,MAAM;oBAC/B,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;wBACvC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;wBACrB,OAAO,IAAI,UAAU,EAAE,EAAE,CAAC;oBAC5B,CAAC,CAAC,CAAC;oBACH,WAAW,GAAG,GAAG,MAAM,YAAY,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;oBAC7D,MAAM;gBAER,KAAK,yDAAqB,CAAC,OAAO;oBAChC,WAAW,GAAG,GAAG,MAAM,aAAa,UAAU,SAAS,UAAU,GAAG,CAAC,EAAE,CAAC;oBACxE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC9C,UAAU,IAAI,CAAC,CAAC;oBAChB,MAAM;gBAER,KAAK,yDAAqB,CAAC,EAAE;oBAC3B,WAAW,GAAG,GAAG,MAAM,OAAO,UAAU,EAAE,EAAE,CAAC;oBAC7C,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC/B,MAAM;gBAER,KAAK,yDAAqB,CAAC,GAAG;oBAC5B,WAAW,GAAG,GAAG,MAAM,QAAQ,UAAU,EAAE,EAAE,CAAC;oBAC9C,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC/B,MAAM;gBAER,KAAK,yDAAqB,CAAC,EAAE;oBAC3B,WAAW,GAAG,GAAG,MAAM,OAAO,UAAU,EAAE,EAAE,CAAC;oBAC7C,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC/B,MAAM;gBAER,KAAK,yDAAqB,CAAC,GAAG;oBAC5B,WAAW,GAAG,GAAG,MAAM,QAAQ,UAAU,EAAE,EAAE,CAAC;oBAC9C,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC/B,MAAM;gBAER;oBACE,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;YAClE,CAAC;YACD,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QAClE,CAAC;QAGD,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;QAG5D,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAKnE,OAAO;YACL,MAAM,EAAE,aAAa;YACrB,UAAU;SACX,CAAC;IACJ,CAAC;CACF,CAAA;AAnHY,oEAA4B;uCAA5B,4BAA4B;IADxC,IAAA,mBAAU,GAAE;GACA,4BAA4B,CAmHxC","sourcesContent":["import { Injectable } from \"@nestjs/common\";\nimport { SqlExpression, SqlExpressionOperator } from \"./question-data-providers/chartjs-sql-data-provider.service\";\n\nexport interface SqlReplacementResult {\n rawSql: string;\n parameters: any[]; // Positional parameters\n}\n\n@Injectable()\nexport class SqlExpressionResolverService {\n resolveSqlWithExpressions(sql: string, expressions: SqlExpression[]): SqlReplacementResult {\n const variableToColumnMap: Record<string, string> = {};\n const variablePattern = /{{\\s*(\\w+)\\s*\\[\\s*([\\w.]+)\\s*\\]\\s*}}/g;\n\n // --- Pass 1: extract variable -> column mappings ---\n let simplifiedSql = sql.replace(variablePattern, (_, variableName, columnName) => {\n variableToColumnMap[variableName] = columnName;\n return `{{${variableName}}}`;\n });\n\n // --- Pass 2: Replace each variable with positional fragment ---\n let paramIndex = 1;\n const parameters: any[] = [];\n\n for (const expr of expressions) {\n const column = variableToColumnMap[expr.variableName];\n if (!column) continue;\n\n let sqlFragment = '';\n const placeholder = `{{${expr.variableName}}}`;\n\n switch (expr.operator) {\n case SqlExpressionOperator.EQUALS:\n sqlFragment = `${column} = $${paramIndex++}`;\n parameters.push(expr.value[0]);\n break;\n\n case SqlExpressionOperator.NOT_EQUALS:\n sqlFragment = `${column} != $${paramIndex++}`;\n parameters.push(expr.value[0]);\n break;\n\n case SqlExpressionOperator.CONTAINS:\n sqlFragment = `${column} LIKE $${paramIndex++}`;\n parameters.push(`%${expr.value[0]}%`);\n break;\n\n case SqlExpressionOperator.NOT_CONTAINS:\n sqlFragment = `${column} NOT LIKE $${paramIndex++}`;\n parameters.push(`%${expr.value[0]}%`);\n break;\n\n case SqlExpressionOperator.STARTS_WITH:\n sqlFragment = `${column} LIKE $${paramIndex++}`;\n parameters.push(`${expr.value[0]}%`);\n break;\n\n case SqlExpressionOperator.ENDS_WITH:\n sqlFragment = `${column} LIKE $${paramIndex++}`;\n parameters.push(`%${expr.value[0]}`);\n break;\n\n case SqlExpressionOperator.IN:\n const inParams = expr.value.map(val => {\n parameters.push(val);\n return `$${paramIndex++}`;\n });\n sqlFragment = `${column} IN (${inParams.join(\", \")})`;\n break;\n\n case SqlExpressionOperator.NOT_IN:\n const notInParams = expr.value.map(val => {\n parameters.push(val);\n return `$${paramIndex++}`;\n });\n sqlFragment = `${column} NOT IN (${notInParams.join(\", \")})`;\n break;\n\n case SqlExpressionOperator.BETWEEN:\n sqlFragment = `${column} BETWEEN $${paramIndex} AND $${paramIndex + 1}`;\n parameters.push(expr.value[0], expr.value[1]);\n paramIndex += 2;\n break;\n\n case SqlExpressionOperator.LT:\n sqlFragment = `${column} < $${paramIndex++}`;\n parameters.push(expr.value[0]);\n break;\n\n case SqlExpressionOperator.LTE:\n sqlFragment = `${column} <= $${paramIndex++}`;\n parameters.push(expr.value[0]);\n break;\n\n case SqlExpressionOperator.GT:\n sqlFragment = `${column} > $${paramIndex++}`;\n parameters.push(expr.value[0]);\n break;\n\n case SqlExpressionOperator.GTE:\n sqlFragment = `${column} >= $${paramIndex++}`;\n parameters.push(expr.value[0]);\n break;\n\n default:\n throw new Error(`Unsupported SQL operator: ${expr.operator}`);\n }\n simplifiedSql = simplifiedSql.replace(placeholder, sqlFragment);\n }\n\n // --- Final cleanup: remove any remaining placeholders ---\n simplifiedSql = simplifiedSql.replace(/{{\\s*\\w+\\s*}}/g, '');\n\n // Remove dangling where clause if no expressions were applied\n simplifiedSql = simplifiedSql.replace(/\\bwhere\\b\\s*$/i, '').trim();\n\n // Need to handle scenarios of complex expression i.e with and / or clauses. probably need to have this logic in the sql expression object itself\n\n\n return {\n rawSql: simplifiedSql,\n parameters\n };\n }\n}"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"solid-core.module.d.ts","sourceRoot":"","sources":["../src/solid-core.module.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"solid-core.module.d.ts","sourceRoot":"","sources":["../src/solid-core.module.ts"],"names":[],"mappings":"AAwPA,qBA+Sa,eAAe;CAAI"}
|
|
@@ -208,7 +208,37 @@ const computed_entity_field_subscriber_1 = require("./subscribers/computed-entit
|
|
|
208
208
|
const created_by_updated_by_subscriber_1 = require("./subscribers/created-by-updated-by.subscriber");
|
|
209
209
|
const security_rule_subscriber_1 = require("./subscribers/security-rule.subscriber");
|
|
210
210
|
const view_metadata_subscriber_1 = require("./subscribers/view-metadata.subscriber");
|
|
211
|
+
const dashboard_entity_1 = require("./entities/dashboard.entity");
|
|
212
|
+
const dashboard_service_1 = require("./services/dashboard.service");
|
|
213
|
+
const dashboard_controller_1 = require("./controllers/dashboard.controller");
|
|
214
|
+
const dashboard_variable_entity_1 = require("./entities/dashboard-variable.entity");
|
|
215
|
+
const dashboard_variable_service_1 = require("./services/dashboard-variable.service");
|
|
216
|
+
const dashboard_variable_controller_1 = require("./controllers/dashboard-variable.controller");
|
|
217
|
+
const question_entity_1 = require("./entities/question.entity");
|
|
218
|
+
const question_service_1 = require("./services/question.service");
|
|
219
|
+
const question_controller_1 = require("./controllers/question.controller");
|
|
211
220
|
const http_exception_filter_1 = require("./filters/http-exception.filter");
|
|
221
|
+
const dashboard_variable_sql_dynamic_provider_service_1 = require("./services/dashboard-selection-providers/dashboard-variable-sql-dynamic-provider.service");
|
|
222
|
+
const dashboard_variable_test_dynamic_provider_service_1 = require("./services/dashboard-selection-providers/dashboard-variable-test-dynamic-provider.service");
|
|
223
|
+
const list_of_dashboard_variable_providers_selection_provider_service_1 = require("./services/selection-providers/list-of-dashboard-variable-providers-selection-provider.service");
|
|
224
|
+
const list_of_dashboard_question_providers_selection_provider_service_1 = require("./services/selection-providers/list-of-dashboard-question-providers-selection-provider.service");
|
|
225
|
+
const question_sql_dataset_config_entity_1 = require("./entities/question-sql-dataset-config.entity");
|
|
226
|
+
const question_sql_dataset_config_service_1 = require("./services/question-sql-dataset-config.service");
|
|
227
|
+
const question_sql_dataset_config_controller_1 = require("./controllers/question-sql-dataset-config.controller");
|
|
228
|
+
const chartjs_sql_data_provider_service_1 = require("./services/question-data-providers/chartjs-sql-data-provider.service");
|
|
229
|
+
const sql_expression_resolver_service_1 = require("./services/sql-expression-resolver.service");
|
|
230
|
+
const prime_react_meter_group_sql_data_provider_service_1 = require("./services/question-data-providers/prime-react-meter-group-sql-data-provider.service");
|
|
231
|
+
const prime_react_datatable_sql_data_provider_service_1 = require("./services/question-data-providers/prime-react-datatable-sql-data-provider.service");
|
|
232
|
+
const ai_interaction_entity_1 = require("./entities/ai-interaction.entity");
|
|
233
|
+
const ai_interaction_service_1 = require("./services/ai-interaction.service");
|
|
234
|
+
const ai_interaction_controller_1 = require("./controllers/ai-interaction.controller");
|
|
235
|
+
const dashboard_mapper_1 = require("./mappers/dashboard-mapper");
|
|
236
|
+
const dashboard_repository_1 = require("./repository/dashboard.repository");
|
|
237
|
+
const dashboard_subscriber_1 = require("./subscribers/dashboard.subscriber");
|
|
238
|
+
const dashboard_variable_subscriber_1 = require("./subscribers/dashboard-variable.subscriber");
|
|
239
|
+
const question_subscriber_1 = require("./subscribers/question.subscriber");
|
|
240
|
+
const question_sql_dataset_config_subscriber_1 = require("./subscribers/question-sql-dataset-config.subscriber");
|
|
241
|
+
const schedule_1 = require("@nestjs/schedule");
|
|
212
242
|
let SolidCoreModule = class SolidCoreModule {
|
|
213
243
|
};
|
|
214
244
|
exports.SolidCoreModule = SolidCoreModule;
|
|
@@ -249,12 +279,14 @@ exports.SolidCoreModule = SolidCoreModule = __decorate([
|
|
|
249
279
|
import_transaction_entity_1.ImportTransaction,
|
|
250
280
|
import_transaction_error_log_entity_1.ImportTransactionErrorLog,
|
|
251
281
|
user_activity_history_entity_1.UserActivityHistory,
|
|
282
|
+
ai_interaction_entity_1.AiInteraction,
|
|
252
283
|
]),
|
|
253
284
|
config_1.ConfigModule.forFeature(app_builder_config_1.default),
|
|
254
285
|
config_1.ConfigModule.forFeature(common_config_1.default),
|
|
255
286
|
config_1.ConfigModule.forFeature(iam_config_1.iamConfig),
|
|
256
287
|
config_1.ConfigModule.forFeature(iam_config_1.jwtConfig),
|
|
257
288
|
jwt_1.JwtModule.registerAsync(iam_config_1.jwtConfig.asProvider()),
|
|
289
|
+
schedule_1.ScheduleModule.forRoot(),
|
|
258
290
|
serve_static_1.ServeStaticModule.forRoot({
|
|
259
291
|
rootPath: (0, path_1.join)(process.cwd(), 'media-files-storage'),
|
|
260
292
|
serveRoot: '/media-files-storage',
|
|
@@ -269,6 +301,11 @@ exports.SolidCoreModule = SolidCoreModule = __decorate([
|
|
|
269
301
|
axios_1.HttpModule,
|
|
270
302
|
config_1.ConfigModule,
|
|
271
303
|
nestjs_cls_1.ClsModule,
|
|
304
|
+
typeorm_1.TypeOrmModule.forFeature([dashboard_entity_1.Dashboard]),
|
|
305
|
+
typeorm_1.TypeOrmModule.forFeature([dashboard_variable_entity_1.DashboardVariable]),
|
|
306
|
+
typeorm_1.TypeOrmModule.forFeature([question_entity_1.Question]),
|
|
307
|
+
typeorm_1.TypeOrmModule.forFeature([question_sql_dataset_config_entity_1.QuestionSqlDatasetConfig]),
|
|
308
|
+
typeorm_1.TypeOrmModule.forFeature([ai_interaction_entity_1.AiInteraction]),
|
|
272
309
|
],
|
|
273
310
|
controllers: [
|
|
274
311
|
module_metadata_controller_1.ModuleMetadataController,
|
|
@@ -307,6 +344,11 @@ exports.SolidCoreModule = SolidCoreModule = __decorate([
|
|
|
307
344
|
import_transaction_controller_1.ImportTransactionController,
|
|
308
345
|
import_transaction_error_log_controller_1.ImportTransactionErrorLogController,
|
|
309
346
|
user_activity_history_controller_1.UserActivityHistoryController,
|
|
347
|
+
dashboard_controller_1.DashboardController,
|
|
348
|
+
dashboard_variable_controller_1.DashboardVariableController,
|
|
349
|
+
question_controller_1.QuestionController,
|
|
350
|
+
question_sql_dataset_config_controller_1.QuestionSqlDatasetConfigController,
|
|
351
|
+
ai_interaction_controller_1.AiInteractionController,
|
|
310
352
|
],
|
|
311
353
|
providers: [
|
|
312
354
|
{
|
|
@@ -451,6 +493,25 @@ exports.SolidCoreModule = SolidCoreModule = __decorate([
|
|
|
451
493
|
computed_field_evaluation_subscriber_service_1.ComputedFieldEvaluationSubscriber,
|
|
452
494
|
concat_entity_computed_field_provider_service_1.ConcatEntityComputedFieldProvider,
|
|
453
495
|
user_activity_history_service_1.UserActivityHistoryService,
|
|
496
|
+
dashboard_service_1.DashboardService,
|
|
497
|
+
dashboard_variable_service_1.DashboardVariableService,
|
|
498
|
+
question_service_1.QuestionService,
|
|
499
|
+
dashboard_variable_sql_dynamic_provider_service_1.DashboardVariableSQLDynamicProvider,
|
|
500
|
+
dashboard_variable_test_dynamic_provider_service_1.DasbhoardVariableTestDynamicProvider,
|
|
501
|
+
list_of_dashboard_variable_providers_selection_provider_service_1.ListOfDashboardVariableProvidersSelectionProvider,
|
|
502
|
+
list_of_dashboard_question_providers_selection_provider_service_1.ListOfDashboardQuestionProvidersSelectionProvider,
|
|
503
|
+
question_sql_dataset_config_service_1.QuestionSqlDatasetConfigService,
|
|
504
|
+
chartjs_sql_data_provider_service_1.ChartJsSqlDataProvider,
|
|
505
|
+
prime_react_meter_group_sql_data_provider_service_1.PrimeReactMeterGroupSqlDataProvider,
|
|
506
|
+
prime_react_datatable_sql_data_provider_service_1.PrimeReactDatatableSqlDataProvider,
|
|
507
|
+
sql_expression_resolver_service_1.SqlExpressionResolverService,
|
|
508
|
+
ai_interaction_service_1.AiInteractionService,
|
|
509
|
+
dashboard_mapper_1.DashboardMapper,
|
|
510
|
+
dashboard_repository_1.DashboardRepository,
|
|
511
|
+
dashboard_subscriber_1.DashboardSubscriber,
|
|
512
|
+
dashboard_variable_subscriber_1.DashboardVariableSubscriber,
|
|
513
|
+
question_subscriber_1.QuestionSubscriber,
|
|
514
|
+
question_sql_dataset_config_subscriber_1.QuestionSqlDatasetConfigSubscriber,
|
|
454
515
|
],
|
|
455
516
|
exports: [
|
|
456
517
|
module_metadata_service_1.ModuleMetadataService,
|