@solidstarters/solid-core 1.2.134 → 1.2.136
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 +46 -0
- package/dist/controllers/ai-interaction.controller.d.ts.map +1 -0
- package/dist/controllers/ai-interaction.controller.js +204 -0
- package/dist/controllers/ai-interaction.controller.js.map +1 -0
- package/dist/controllers/dashboard-question-sql-dataset-config.controller.d.ts +43 -0
- package/dist/controllers/dashboard-question-sql-dataset-config.controller.d.ts.map +1 -0
- package/dist/controllers/dashboard-question-sql-dataset-config.controller.js +179 -0
- package/dist/controllers/dashboard-question-sql-dataset-config.controller.js.map +1 -0
- package/dist/controllers/dashboard-question.controller.d.ts +45 -0
- package/dist/controllers/dashboard-question.controller.d.ts.map +1 -0
- package/dist/controllers/dashboard-question.controller.js +194 -0
- package/dist/controllers/dashboard-question.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/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-question-sql-dataset-config.dto.d.ts +12 -0
- package/dist/dtos/create-dashboard-question-sql-dataset-config.dto.d.ts.map +1 -0
- package/dist/dtos/create-dashboard-question-sql-dataset-config.dto.js +77 -0
- package/dist/dtos/create-dashboard-question-sql-dataset-config.dto.js.map +1 -0
- package/dist/dtos/create-dashboard-question.dto.d.ts +17 -0
- package/dist/dtos/create-dashboard-question.dto.d.ts.map +1 -0
- package/dist/dtos/create-dashboard-question.dto.js +105 -0
- package/dist/dtos/create-dashboard-question.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/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-question-sql-dataset-config.dto.d.ts +13 -0
- package/dist/dtos/update-dashboard-question-sql-dataset-config.dto.d.ts.map +1 -0
- package/dist/dtos/update-dashboard-question-sql-dataset-config.dto.js +86 -0
- package/dist/dtos/update-dashboard-question-sql-dataset-config.dto.js.map +1 -0
- package/dist/dtos/update-dashboard-question.dto.d.ts +18 -0
- package/dist/dtos/update-dashboard-question.dto.d.ts.map +1 -0
- package/dist/dtos/update-dashboard-question.dto.js +112 -0
- package/dist/dtos/update-dashboard-question.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/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-question-sql-dataset-config.entity.d.ts +13 -0
- package/dist/entities/dashboard-question-sql-dataset-config.entity.d.ts.map +1 -0
- package/dist/entities/dashboard-question-sql-dataset-config.entity.js +60 -0
- package/dist/entities/dashboard-question-sql-dataset-config.entity.js.map +1 -0
- package/dist/entities/dashboard-question.entity.d.ts +16 -0
- package/dist/entities/dashboard-question.entity.d.ts.map +1 -0
- package/dist/entities/dashboard-question.entity.js +71 -0
- package/dist/entities/dashboard-question.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/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 +10 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -1
- package/dist/interfaces.d.ts +26 -1
- package/dist/interfaces.d.ts.map +1 -1
- package/dist/interfaces.js.map +1 -1
- package/dist/jobs/database/trigger-mcp-client-publisher-database.service.d.ts +11 -0
- package/dist/jobs/database/trigger-mcp-client-publisher-database.service.d.ts.map +1 -0
- package/dist/jobs/database/trigger-mcp-client-publisher-database.service.js +39 -0
- package/dist/jobs/database/trigger-mcp-client-publisher-database.service.js.map +1 -0
- package/dist/jobs/database/trigger-mcp-client-queue-options.d.ts +8 -0
- package/dist/jobs/database/trigger-mcp-client-queue-options.d.ts.map +1 -0
- package/dist/jobs/database/trigger-mcp-client-queue-options.js +10 -0
- package/dist/jobs/database/trigger-mcp-client-queue-options.js.map +1 -0
- package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.d.ts +16 -0
- package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.d.ts.map +1 -0
- package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.js +71 -0
- package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.js.map +1 -0
- 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 +9 -0
- package/dist/repository/dashboard.repository.d.ts.map +1 -0
- package/dist/repository/dashboard.repository.js +98 -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 +4172 -2411
- package/dist/services/ai-interaction.service.d.ts +31 -0
- package/dist/services/ai-interaction.service.d.ts.map +1 -0
- package/dist/services/ai-interaction.service.js +182 -0
- package/dist/services/ai-interaction.service.js.map +1 -0
- package/dist/services/chatter-message.service.d.ts.map +1 -1
- package/dist/services/chatter-message.service.js +8 -6
- package/dist/services/chatter-message.service.js.map +1 -1
- package/dist/services/dashboard-question-sql-dataset-config.service.d.ts +22 -0
- package/dist/services/dashboard-question-sql-dataset-config.service.d.ts.map +1 -0
- package/dist/services/dashboard-question-sql-dataset-config.service.js +56 -0
- package/dist/services/dashboard-question-sql-dataset-config.service.js.map +1 -0
- package/dist/services/dashboard-question.service.d.ts +29 -0
- package/dist/services/dashboard-question.service.d.ts.map +1 -0
- package/dist/services/dashboard-question.service.js +117 -0
- package/dist/services/dashboard-question.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/field-metadata.service.d.ts.map +1 -1
- package/dist/services/field-metadata.service.js +1 -0
- package/dist/services/field-metadata.service.js.map +1 -1
- package/dist/services/import-transaction.service.d.ts +3 -1
- package/dist/services/import-transaction.service.d.ts.map +1 -1
- package/dist/services/import-transaction.service.js +22 -0
- package/dist/services/import-transaction.service.js.map +1 -1
- package/dist/services/list-of-values.service.d.ts +1 -0
- package/dist/services/list-of-values.service.d.ts.map +1 -1
- package/dist/services/list-of-values.service.js +3 -0
- package/dist/services/list-of-values.service.js.map +1 -1
- 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 +89 -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 +7 -0
- package/dist/services/question-data-providers/helpers.d.ts.map +1 -0
- package/dist/services/question-data-providers/helpers.js +25 -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 +70 -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 +92 -0
- package/dist/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.js.map +1 -0
- package/dist/services/queues/publisher-factory.service.js +1 -1
- package/dist/services/queues/publisher-factory.service.js.map +1 -1
- 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 +75 -1
- package/dist/solid-core.module.js.map +1 -1
- package/dist/subscribers/dashboard-question-sql-dataset-config.subscriber.d.ts +16 -0
- package/dist/subscribers/dashboard-question-sql-dataset-config.subscriber.d.ts.map +1 -0
- package/dist/subscribers/dashboard-question-sql-dataset-config.subscriber.js +72 -0
- package/dist/subscribers/dashboard-question-sql-dataset-config.subscriber.js.map +1 -0
- package/dist/subscribers/dashboard-question.subscriber.d.ts +16 -0
- package/dist/subscribers/dashboard-question.subscriber.d.ts.map +1 -0
- package/dist/subscribers/dashboard-question.subscriber.js +72 -0
- package/dist/subscribers/dashboard-question.subscriber.js.map +1 -0
- 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/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/controllers/ai-interaction.controller.ts +104 -0
- package/src/controllers/dashboard-question-sql-dataset-config.controller.ts +93 -0
- package/src/controllers/dashboard-question.controller.ts +104 -0
- package/src/controllers/dashboard-variable.controller.ts +93 -0
- package/src/controllers/dashboard.controller.ts +99 -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-question-sql-dataset-config.dto.ts +42 -0
- package/src/dtos/create-dashboard-question.dto.ts +63 -0
- package/src/dtos/create-dashboard-variable.dto.ts +56 -0
- package/src/dtos/create-dashboard.dto.ts +53 -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-question-sql-dataset-config.dto.ts +49 -0
- package/src/dtos/update-dashboard-question.dto.ts +68 -0
- package/src/dtos/update-dashboard-variable.dto.ts +54 -0
- package/src/dtos/update-dashboard.dto.ts +57 -0
- package/src/entities/ai-interaction.entity.ts +39 -0
- package/src/entities/dashboard-question-sql-dataset-config.entity.ts +25 -0
- package/src/entities/dashboard-question.entity.ts +33 -0
- package/src/entities/dashboard-variable.entity.ts +30 -0
- package/src/entities/dashboard.entity.ts +21 -0
- package/src/helpers/solid-registry.ts +44 -2
- package/src/index.ts +10 -2
- package/src/interfaces.ts +57 -29
- package/src/jobs/database/trigger-mcp-client-publisher-database.service.ts +22 -0
- package/src/jobs/database/trigger-mcp-client-queue-options.ts +9 -0
- package/src/jobs/database/trigger-mcp-client-subscriber-database.service.ts +71 -0
- package/src/mappers/dashboard-mapper.ts +52 -0
- package/src/repository/dashboard.repository.ts +101 -0
- package/src/seeders/module-metadata-seeder.service.ts +21 -1
- package/src/seeders/seed-data/solid-core-metadata.json +4175 -2414
- package/src/services/ai-interaction.service.ts +163 -0
- package/src/services/chatter-message.service.ts +12 -6
- package/src/services/dashboard-question-sql-dataset-config.service.ts +34 -0
- package/src/services/dashboard-question.service.ts +115 -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/field-metadata.service.ts +1 -0
- package/src/services/import-transaction.service.ts +29 -1
- package/src/services/list-of-values.service.ts +5 -0
- package/src/services/menu-item-metadata.service.ts +2 -1
- package/src/services/question-data-providers/chartjs-sql-data-provider.service.ts +125 -0
- package/src/services/question-data-providers/helpers.ts +30 -0
- package/src/services/question-data-providers/prime-react-datatable-sql-data-provider.service.ts +78 -0
- package/src/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.ts +119 -0
- package/src/services/question-data-providers/test.sql +1 -0
- package/src/services/queues/publisher-factory.service.ts +1 -1
- 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 +77 -2
- package/src/subscribers/dashboard-question-sql-dataset-config.subscriber.ts +61 -0
- package/src/subscribers/dashboard-question.subscriber.ts +62 -0
- package/src/subscribers/dashboard-variable.subscriber.ts +63 -0
- package/src/subscribers/dashboard.subscriber.ts +43 -0
|
@@ -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":"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","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":"AA2PA,qBA2Ta,eAAe;CAAI"}
|
|
@@ -123,9 +123,15 @@ const soft_delete_aware_event_subscriber_1 = require("./subscribers/soft-delete-
|
|
|
123
123
|
const permission_metadata_controller_1 = require("./controllers/permission-metadata.controller");
|
|
124
124
|
const permission_metadata_entity_1 = require("./entities/permission-metadata.entity");
|
|
125
125
|
const permission_metadata_service_1 = require("./services/permission-metadata.service");
|
|
126
|
+
const schedule_1 = require("@nestjs/schedule");
|
|
126
127
|
const nestjs_cls_1 = require("nestjs-cls");
|
|
128
|
+
const ai_interaction_controller_1 = require("./controllers/ai-interaction.controller");
|
|
127
129
|
const chatter_message_details_controller_1 = require("./controllers/chatter-message-details.controller");
|
|
128
130
|
const chatter_message_controller_1 = require("./controllers/chatter-message.controller");
|
|
131
|
+
const dashboard_question_sql_dataset_config_controller_1 = require("./controllers/dashboard-question-sql-dataset-config.controller");
|
|
132
|
+
const dashboard_question_controller_1 = require("./controllers/dashboard-question.controller");
|
|
133
|
+
const dashboard_variable_controller_1 = require("./controllers/dashboard-variable.controller");
|
|
134
|
+
const dashboard_controller_1 = require("./controllers/dashboard.controller");
|
|
129
135
|
const export_template_controller_1 = require("./controllers/export-template.controller");
|
|
130
136
|
const export_transaction_controller_1 = require("./controllers/export-transaction.controller");
|
|
131
137
|
const import_transaction_error_log_controller_1 = require("./controllers/import-transaction-error-log.controller");
|
|
@@ -140,8 +146,13 @@ const setting_controller_1 = require("./controllers/setting.controller");
|
|
|
140
146
|
const user_activity_history_controller_1 = require("./controllers/user-activity-history.controller");
|
|
141
147
|
const user_view_metadata_controller_1 = require("./controllers/user-view-metadata.controller");
|
|
142
148
|
const user_controller_1 = require("./controllers/user.controller");
|
|
149
|
+
const ai_interaction_entity_1 = require("./entities/ai-interaction.entity");
|
|
143
150
|
const chatter_message_details_entity_1 = require("./entities/chatter-message-details.entity");
|
|
144
151
|
const chatter_message_entity_1 = require("./entities/chatter-message.entity");
|
|
152
|
+
const dashboard_question_sql_dataset_config_entity_1 = require("./entities/dashboard-question-sql-dataset-config.entity");
|
|
153
|
+
const dashboard_question_entity_1 = require("./entities/dashboard-question.entity");
|
|
154
|
+
const dashboard_variable_entity_1 = require("./entities/dashboard-variable.entity");
|
|
155
|
+
const dashboard_entity_1 = require("./entities/dashboard.entity");
|
|
145
156
|
const export_template_entity_1 = require("./entities/export-template.entity");
|
|
146
157
|
const export_transaction_entity_1 = require("./entities/export-transaction.entity");
|
|
147
158
|
const import_transaction_error_log_entity_1 = require("./entities/import-transaction-error-log.entity");
|
|
@@ -155,6 +166,7 @@ const setting_entity_1 = require("./entities/setting.entity");
|
|
|
155
166
|
const user_activity_history_entity_1 = require("./entities/user-activity-history.entity");
|
|
156
167
|
const user_view_metadata_entity_1 = require("./entities/user-view-metadata.entity");
|
|
157
168
|
const user_entity_1 = require("./entities/user.entity");
|
|
169
|
+
const http_exception_filter_1 = require("./filters/http-exception.filter");
|
|
158
170
|
const model_metadata_helper_service_1 = require("./helpers/model-metadata-helper.service");
|
|
159
171
|
const module_metadata_helper_service_1 = require("./helpers/module-metadata-helper.service");
|
|
160
172
|
const api_email_publisher_database_service_1 = require("./jobs/database/api-email-publisher-database.service");
|
|
@@ -169,19 +181,30 @@ const otp_publisher_database_service_1 = require("./jobs/database/otp-publisher-
|
|
|
169
181
|
const otp_subscriber_database_service_1 = require("./jobs/database/otp-subscriber-database.service");
|
|
170
182
|
const sms_publisher_database_service_1 = require("./jobs/database/sms-publisher-database.service");
|
|
171
183
|
const sms_subscriber_database_service_1 = require("./jobs/database/sms-subscriber-database.service");
|
|
184
|
+
const trigger_mcp_client_publisher_database_service_1 = require("./jobs/database/trigger-mcp-client-publisher-database.service");
|
|
185
|
+
const trigger_mcp_client_subscriber_database_service_1 = require("./jobs/database/trigger-mcp-client-subscriber-database.service");
|
|
172
186
|
const whatsapp_publisher_database_service_1 = require("./jobs/database/whatsapp-publisher-database.service");
|
|
173
187
|
const whatsapp_subscriber_database_service_1 = require("./jobs/database/whatsapp-subscriber-database.service");
|
|
188
|
+
const dashboard_mapper_1 = require("./mappers/dashboard-mapper");
|
|
189
|
+
const dashboard_repository_1 = require("./repository/dashboard.repository");
|
|
174
190
|
const field_metadata_repository_1 = require("./repository/field-metadata.repository");
|
|
175
191
|
const field_repository_1 = require("./repository/field.repository");
|
|
176
192
|
const media_repository_1 = require("./repository/media.repository");
|
|
177
193
|
const security_rule_repository_1 = require("./repository/security-rule.repository");
|
|
178
194
|
const permission_metadata_seeder_service_1 = require("./seeders/permission-metadata-seeder.service");
|
|
179
195
|
const system_fields_seeder_service_1 = require("./seeders/system-fields-seeder.service");
|
|
196
|
+
const ai_interaction_service_1 = require("./services/ai-interaction.service");
|
|
180
197
|
const chatter_message_details_service_1 = require("./services/chatter-message-details.service");
|
|
181
198
|
const chatter_message_service_1 = require("./services/chatter-message.service");
|
|
182
199
|
const concat_computed_field_provider_service_1 = require("./services/computed-fields/concat-computed-field-provider.service");
|
|
183
200
|
const concat_entity_computed_field_provider_service_1 = require("./services/computed-fields/entity/concat-entity-computed-field-provider.service");
|
|
184
201
|
const csv_service_1 = require("./services/csv.service");
|
|
202
|
+
const dashboard_question_sql_dataset_config_service_1 = require("./services/dashboard-question-sql-dataset-config.service");
|
|
203
|
+
const dashboard_question_service_1 = require("./services/dashboard-question.service");
|
|
204
|
+
const dashboard_variable_sql_dynamic_provider_service_1 = require("./services/dashboard-selection-providers/dashboard-variable-sql-dynamic-provider.service");
|
|
205
|
+
const dashboard_variable_test_dynamic_provider_service_1 = require("./services/dashboard-selection-providers/dashboard-variable-test-dynamic-provider.service");
|
|
206
|
+
const dashboard_variable_service_1 = require("./services/dashboard-variable.service");
|
|
207
|
+
const dashboard_service_1 = require("./services/dashboard.service");
|
|
185
208
|
const excel_service_1 = require("./services/excel.service");
|
|
186
209
|
const export_template_service_1 = require("./services/export-template.service");
|
|
187
210
|
const export_transaction_service_1 = require("./services/export-transaction.service");
|
|
@@ -190,6 +213,9 @@ const import_transaction_service_1 = require("./services/import-transaction.serv
|
|
|
190
213
|
const locale_service_1 = require("./services/locale.service");
|
|
191
214
|
const file_s3_storage_provider_1 = require("./services/mediaStorageProviders/file-s3-storage-provider");
|
|
192
215
|
const file_storage_provider_1 = require("./services/mediaStorageProviders/file-storage-provider");
|
|
216
|
+
const chartjs_sql_data_provider_service_1 = require("./services/question-data-providers/chartjs-sql-data-provider.service");
|
|
217
|
+
const prime_react_datatable_sql_data_provider_service_1 = require("./services/question-data-providers/prime-react-datatable-sql-data-provider.service");
|
|
218
|
+
const prime_react_meter_group_sql_data_provider_service_1 = require("./services/question-data-providers/prime-react-meter-group-sql-data-provider.service");
|
|
193
219
|
const publisher_factory_service_1 = require("./services/queues/publisher-factory.service");
|
|
194
220
|
const request_context_service_1 = require("./services/request-context.service");
|
|
195
221
|
const role_metadata_service_1 = require("./services/role-metadata.service");
|
|
@@ -197,18 +223,25 @@ const saved_filters_service_1 = require("./services/saved-filters.service");
|
|
|
197
223
|
const scheduled_job_service_1 = require("./services/scheduled-job.service");
|
|
198
224
|
const scheduler_service_1 = require("./services/scheduled-jobs/scheduler.service");
|
|
199
225
|
const security_rule_service_1 = require("./services/security-rule.service");
|
|
226
|
+
const list_of_dashboard_question_providers_selection_provider_service_1 = require("./services/selection-providers/list-of-dashboard-question-providers-selection-provider.service");
|
|
227
|
+
const list_of_dashboard_variable_providers_selection_provider_service_1 = require("./services/selection-providers/list-of-dashboard-variable-providers-selection-provider.service");
|
|
200
228
|
const list_of_scheduled_jobs_selection_provider_service_1 = require("./services/selection-providers/list-of-scheduled-jobs-selection-provider.service");
|
|
201
229
|
const locale_list_selection_provider_service_1 = require("./services/selection-providers/locale-list-selection-provider.service");
|
|
202
230
|
const setting_service_1 = require("./services/setting.service");
|
|
231
|
+
const sql_expression_resolver_service_1 = require("./services/sql-expression-resolver.service");
|
|
203
232
|
const user_activity_history_service_1 = require("./services/user-activity-history.service");
|
|
204
233
|
const user_view_metadata_service_1 = require("./services/user-view-metadata.service");
|
|
205
234
|
const user_service_1 = require("./services/user.service");
|
|
206
235
|
const audit_subscriber_1 = require("./subscribers/audit.subscriber");
|
|
207
236
|
const computed_entity_field_subscriber_1 = require("./subscribers/computed-entity-field.subscriber");
|
|
208
237
|
const created_by_updated_by_subscriber_1 = require("./subscribers/created-by-updated-by.subscriber");
|
|
238
|
+
const dashboard_question_sql_dataset_config_subscriber_1 = require("./subscribers/dashboard-question-sql-dataset-config.subscriber");
|
|
239
|
+
const dashboard_question_subscriber_1 = require("./subscribers/dashboard-question.subscriber");
|
|
240
|
+
const dashboard_variable_subscriber_1 = require("./subscribers/dashboard-variable.subscriber");
|
|
241
|
+
const dashboard_subscriber_1 = require("./subscribers/dashboard.subscriber");
|
|
209
242
|
const security_rule_subscriber_1 = require("./subscribers/security-rule.subscriber");
|
|
210
243
|
const view_metadata_subscriber_1 = require("./subscribers/view-metadata.subscriber");
|
|
211
|
-
const
|
|
244
|
+
const crud_service_1 = require("./services/crud.service");
|
|
212
245
|
let SolidCoreModule = class SolidCoreModule {
|
|
213
246
|
};
|
|
214
247
|
exports.SolidCoreModule = SolidCoreModule;
|
|
@@ -249,12 +282,14 @@ exports.SolidCoreModule = SolidCoreModule = __decorate([
|
|
|
249
282
|
import_transaction_entity_1.ImportTransaction,
|
|
250
283
|
import_transaction_error_log_entity_1.ImportTransactionErrorLog,
|
|
251
284
|
user_activity_history_entity_1.UserActivityHistory,
|
|
285
|
+
ai_interaction_entity_1.AiInteraction,
|
|
252
286
|
]),
|
|
253
287
|
config_1.ConfigModule.forFeature(app_builder_config_1.default),
|
|
254
288
|
config_1.ConfigModule.forFeature(common_config_1.default),
|
|
255
289
|
config_1.ConfigModule.forFeature(iam_config_1.iamConfig),
|
|
256
290
|
config_1.ConfigModule.forFeature(iam_config_1.jwtConfig),
|
|
257
291
|
jwt_1.JwtModule.registerAsync(iam_config_1.jwtConfig.asProvider()),
|
|
292
|
+
schedule_1.ScheduleModule.forRoot(),
|
|
258
293
|
serve_static_1.ServeStaticModule.forRoot({
|
|
259
294
|
rootPath: (0, path_1.join)(process.cwd(), 'media-files-storage'),
|
|
260
295
|
serveRoot: '/media-files-storage',
|
|
@@ -269,6 +304,11 @@ exports.SolidCoreModule = SolidCoreModule = __decorate([
|
|
|
269
304
|
axios_1.HttpModule,
|
|
270
305
|
config_1.ConfigModule,
|
|
271
306
|
nestjs_cls_1.ClsModule,
|
|
307
|
+
typeorm_1.TypeOrmModule.forFeature([dashboard_entity_1.Dashboard]),
|
|
308
|
+
typeorm_1.TypeOrmModule.forFeature([dashboard_variable_entity_1.DashboardVariable]),
|
|
309
|
+
typeorm_1.TypeOrmModule.forFeature([dashboard_question_entity_1.DashboardQuestion]),
|
|
310
|
+
typeorm_1.TypeOrmModule.forFeature([dashboard_question_sql_dataset_config_entity_1.DashboardQuestionSqlDatasetConfig]),
|
|
311
|
+
typeorm_1.TypeOrmModule.forFeature([ai_interaction_entity_1.AiInteraction]),
|
|
272
312
|
],
|
|
273
313
|
controllers: [
|
|
274
314
|
module_metadata_controller_1.ModuleMetadataController,
|
|
@@ -307,6 +347,11 @@ exports.SolidCoreModule = SolidCoreModule = __decorate([
|
|
|
307
347
|
import_transaction_controller_1.ImportTransactionController,
|
|
308
348
|
import_transaction_error_log_controller_1.ImportTransactionErrorLogController,
|
|
309
349
|
user_activity_history_controller_1.UserActivityHistoryController,
|
|
350
|
+
dashboard_controller_1.DashboardController,
|
|
351
|
+
dashboard_variable_controller_1.DashboardVariableController,
|
|
352
|
+
dashboard_question_controller_1.DashboardQuestionController,
|
|
353
|
+
dashboard_question_sql_dataset_config_controller_1.DashboardQuestionSqlDatasetConfigController,
|
|
354
|
+
ai_interaction_controller_1.AiInteractionController,
|
|
310
355
|
],
|
|
311
356
|
providers: [
|
|
312
357
|
{
|
|
@@ -340,6 +385,7 @@ exports.SolidCoreModule = SolidCoreModule = __decorate([
|
|
|
340
385
|
solid_introspect_service_1.SolidIntrospectService,
|
|
341
386
|
core_1.DiscoveryService,
|
|
342
387
|
crud_helper_service_1.CrudHelperService,
|
|
388
|
+
crud_service_1.CRUDService,
|
|
343
389
|
core_1.Reflector,
|
|
344
390
|
core_1.MetadataScanner,
|
|
345
391
|
command_service_1.CommandService,
|
|
@@ -368,6 +414,8 @@ exports.SolidCoreModule = SolidCoreModule = __decorate([
|
|
|
368
414
|
sms_template_service_1.SmsTemplateService,
|
|
369
415
|
email_template_service_1.EmailTemplateService,
|
|
370
416
|
publisher_factory_service_1.PublisherFactory,
|
|
417
|
+
trigger_mcp_client_publisher_database_service_1.TriggerMcpClientPublisherDatabase,
|
|
418
|
+
trigger_mcp_client_subscriber_database_service_1.TriggerMcpClientSubscriberDatabase,
|
|
371
419
|
email_publisher_service_1.EmailQueuePublisher,
|
|
372
420
|
email_subscriber_service_1.EmailQueueSubscriber,
|
|
373
421
|
email_publisher_database_service_1.EmailQueuePublisherDatabase,
|
|
@@ -451,6 +499,25 @@ exports.SolidCoreModule = SolidCoreModule = __decorate([
|
|
|
451
499
|
computed_field_evaluation_subscriber_service_1.ComputedFieldEvaluationSubscriber,
|
|
452
500
|
concat_entity_computed_field_provider_service_1.ConcatEntityComputedFieldProvider,
|
|
453
501
|
user_activity_history_service_1.UserActivityHistoryService,
|
|
502
|
+
dashboard_service_1.DashboardService,
|
|
503
|
+
dashboard_variable_service_1.DashboardVariableService,
|
|
504
|
+
dashboard_question_service_1.DashboardQuestionService,
|
|
505
|
+
dashboard_variable_sql_dynamic_provider_service_1.DashboardVariableSQLDynamicProvider,
|
|
506
|
+
dashboard_variable_test_dynamic_provider_service_1.DasbhoardVariableTestDynamicProvider,
|
|
507
|
+
list_of_dashboard_variable_providers_selection_provider_service_1.ListOfDashboardVariableProvidersSelectionProvider,
|
|
508
|
+
list_of_dashboard_question_providers_selection_provider_service_1.ListOfDashboardQuestionProvidersSelectionProvider,
|
|
509
|
+
dashboard_question_sql_dataset_config_service_1.DashboardQuestionSqlDatasetConfigService,
|
|
510
|
+
chartjs_sql_data_provider_service_1.ChartJsSqlDataProvider,
|
|
511
|
+
prime_react_meter_group_sql_data_provider_service_1.PrimeReactMeterGroupSqlDataProvider,
|
|
512
|
+
prime_react_datatable_sql_data_provider_service_1.PrimeReactDatatableSqlDataProvider,
|
|
513
|
+
sql_expression_resolver_service_1.SqlExpressionResolverService,
|
|
514
|
+
ai_interaction_service_1.AiInteractionService,
|
|
515
|
+
dashboard_mapper_1.DashboardMapper,
|
|
516
|
+
dashboard_repository_1.DashboardRepository,
|
|
517
|
+
dashboard_subscriber_1.DashboardSubscriber,
|
|
518
|
+
dashboard_variable_subscriber_1.DashboardVariableSubscriber,
|
|
519
|
+
dashboard_question_subscriber_1.DashboardQuestionSubscriber,
|
|
520
|
+
dashboard_question_sql_dataset_config_subscriber_1.DashboardQuestionSqlDatasetConfigSubscriber,
|
|
454
521
|
],
|
|
455
522
|
exports: [
|
|
456
523
|
module_metadata_service_1.ModuleMetadataService,
|
|
@@ -460,6 +527,7 @@ exports.SolidCoreModule = SolidCoreModule = __decorate([
|
|
|
460
527
|
media_service_1.MediaService,
|
|
461
528
|
core_1.DiscoveryService,
|
|
462
529
|
crud_helper_service_1.CrudHelperService,
|
|
530
|
+
crud_service_1.CRUDService,
|
|
463
531
|
platform_express_1.MulterModule,
|
|
464
532
|
file_service_1.FileService,
|
|
465
533
|
solid_registry_1.SolidRegistry,
|
|
@@ -483,6 +551,12 @@ exports.SolidCoreModule = SolidCoreModule = __decorate([
|
|
|
483
551
|
field_repository_1.FieldRepository,
|
|
484
552
|
scheduler_service_1.SchedulerServiceImpl,
|
|
485
553
|
user_activity_history_service_1.UserActivityHistoryService,
|
|
554
|
+
csv_service_1.CsvService,
|
|
555
|
+
excel_service_1.ExcelService,
|
|
556
|
+
solid_introspect_service_1.SolidIntrospectService,
|
|
557
|
+
import_transaction_service_1.ImportTransactionService,
|
|
558
|
+
axios_1.HttpModule,
|
|
559
|
+
list_of_values_service_1.ListOfValuesService
|
|
486
560
|
],
|
|
487
561
|
})
|
|
488
562
|
], SolidCoreModule);
|