@solidstarters/solid-core 1.2.136 → 1.2.138

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/dist/controllers/ai-interaction.controller.d.ts +1 -0
  2. package/dist/controllers/ai-interaction.controller.d.ts.map +1 -1
  3. package/dist/controllers/ai-interaction.controller.js +12 -0
  4. package/dist/controllers/ai-interaction.controller.js.map +1 -1
  5. package/dist/dtos/create-dashboard-question.dto.d.ts.map +1 -1
  6. package/dist/dtos/create-dashboard-question.dto.js.map +1 -1
  7. package/dist/dtos/create-dashboard.dto.d.ts +2 -0
  8. package/dist/dtos/create-dashboard.dto.d.ts.map +1 -1
  9. package/dist/dtos/create-dashboard.dto.js +13 -1
  10. package/dist/dtos/create-dashboard.dto.js.map +1 -1
  11. package/dist/dtos/update-dashboard-question.dto.d.ts.map +1 -1
  12. package/dist/dtos/update-dashboard-question.dto.js.map +1 -1
  13. package/dist/dtos/update-dashboard.dto.d.ts +2 -0
  14. package/dist/dtos/update-dashboard.dto.d.ts.map +1 -1
  15. package/dist/dtos/update-dashboard.dto.js +13 -1
  16. package/dist/dtos/update-dashboard.dto.js.map +1 -1
  17. package/dist/entities/dashboard-question.entity.d.ts.map +1 -1
  18. package/dist/entities/dashboard-question.entity.js.map +1 -1
  19. package/dist/entities/dashboard.entity.d.ts +2 -0
  20. package/dist/entities/dashboard.entity.d.ts.map +1 -1
  21. package/dist/entities/dashboard.entity.js +9 -1
  22. package/dist/entities/dashboard.entity.js.map +1 -1
  23. package/dist/helpers/module.helper.d.ts.map +1 -1
  24. package/dist/helpers/module.helper.js +9 -2
  25. package/dist/helpers/module.helper.js.map +1 -1
  26. package/dist/interfaces.d.ts +5 -0
  27. package/dist/interfaces.d.ts.map +1 -1
  28. package/dist/interfaces.js.map +1 -1
  29. package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.d.ts.map +1 -1
  30. package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.js +23 -3
  31. package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.js.map +1 -1
  32. package/dist/seeders/seed-data/solid-core-metadata.json +45 -0
  33. package/dist/services/ai-interaction.service.d.ts +4 -1
  34. package/dist/services/ai-interaction.service.d.ts.map +1 -1
  35. package/dist/services/ai-interaction.service.js +34 -4
  36. package/dist/services/ai-interaction.service.js.map +1 -1
  37. package/dist/services/dashboard.service.d.ts.map +1 -1
  38. package/dist/services/dashboard.service.js +7 -2
  39. package/dist/services/dashboard.service.js.map +1 -1
  40. package/dist/services/mcp-tool-response-handlers/mcp-tool-response-handler-factory.service.d.ts +9 -0
  41. package/dist/services/mcp-tool-response-handlers/mcp-tool-response-handler-factory.service.d.ts.map +1 -0
  42. package/dist/services/mcp-tool-response-handlers/mcp-tool-response-handler-factory.service.js +40 -0
  43. package/dist/services/mcp-tool-response-handlers/mcp-tool-response-handler-factory.service.js.map +1 -0
  44. package/dist/services/mcp-tool-response-handlers/solid-create-module-mcp-tool-response-handler.service.d.ts +14 -0
  45. package/dist/services/mcp-tool-response-handlers/solid-create-module-mcp-tool-response-handler.service.d.ts.map +1 -0
  46. package/dist/services/mcp-tool-response-handlers/solid-create-module-mcp-tool-response-handler.service.js +48 -0
  47. package/dist/services/mcp-tool-response-handlers/solid-create-module-mcp-tool-response-handler.service.js.map +1 -0
  48. package/dist/services/module-metadata.service.d.ts.map +1 -1
  49. package/dist/services/module-metadata.service.js.map +1 -1
  50. package/dist/services/scheduled-jobs/scheduled-job.interface.d.ts +1 -1
  51. package/dist/services/scheduled-jobs/scheduled-job.interface.d.ts.map +1 -1
  52. package/dist/services/scheduled-jobs/scheduled-job.interface.js.map +1 -1
  53. package/dist/services/scheduled-jobs/scheduler.service.js +1 -6
  54. package/dist/services/scheduled-jobs/scheduler.service.js.map +1 -1
  55. package/dist/services/sql-expression-resolver.service.d.ts +3 -0
  56. package/dist/services/sql-expression-resolver.service.d.ts.map +1 -1
  57. package/dist/services/sql-expression-resolver.service.js +18 -3
  58. package/dist/services/sql-expression-resolver.service.js.map +1 -1
  59. package/dist/solid-core.module.d.ts.map +1 -1
  60. package/dist/solid-core.module.js +4 -0
  61. package/dist/solid-core.module.js.map +1 -1
  62. package/dist/subscribers/dashboard.subscriber.d.ts +1 -0
  63. package/dist/subscribers/dashboard.subscriber.d.ts.map +1 -1
  64. package/dist/subscribers/dashboard.subscriber.js +17 -2
  65. package/dist/subscribers/dashboard.subscriber.js.map +1 -1
  66. package/dist/tsconfig.tsbuildinfo +1 -1
  67. package/package.json +1 -1
  68. package/src/controllers/ai-interaction.controller.ts +6 -0
  69. package/src/dtos/create-dashboard-question.dto.ts +4 -5
  70. package/src/dtos/create-dashboard.dto.ts +8 -0
  71. package/src/dtos/update-dashboard-question.dto.ts +4 -5
  72. package/src/dtos/update-dashboard.dto.ts +8 -0
  73. package/src/entities/dashboard-question.entity.ts +2 -3
  74. package/src/entities/dashboard.entity.ts +4 -0
  75. package/src/helpers/module.helper.ts +33 -20
  76. package/src/interfaces.ts +6 -0
  77. package/src/jobs/database/trigger-mcp-client-subscriber-database.service.ts +29 -11
  78. package/src/seeders/seed-data/solid-core-metadata.json +45 -0
  79. package/src/services/ai-interaction.service.ts +50 -2
  80. package/src/services/dashboard.service.ts +7 -2
  81. package/src/services/mcp-tool-response-handlers/mcp-tool-response-handler-factory.service.ts +36 -0
  82. package/src/services/mcp-tool-response-handlers/solid-create-module-mcp-tool-response-handler.service.ts +55 -0
  83. package/src/services/module-metadata.service.ts +0 -5
  84. package/src/services/scheduled-jobs/scheduled-job.interface.ts +1 -1
  85. package/src/services/scheduled-jobs/scheduler.service.ts +6 -6
  86. package/src/services/sql-expression-resolver.service.ts +16 -2
  87. package/src/solid-core.module.ts +5 -0
  88. package/src/subscribers/dashboard.subscriber.ts +24 -3
@@ -35,14 +35,29 @@ let DashboardSubscriber = class DashboardSubscriber {
35
35
  this.logger.debug('No dashboard entity found in the DashboardSubscriber afterInsert method');
36
36
  return;
37
37
  }
38
- await this.dashboardService.saveDashboardToConfig(event.entity);
38
+ await this.saveDashboardToConfig(event.entity, event.queryRunner.manager);
39
39
  }
40
40
  async afterUpdate(event) {
41
41
  if (!event.entity) {
42
42
  this.logger.debug('No dashboard entity found in the DashboardSubscriber afterInsert method');
43
43
  return;
44
44
  }
45
- await this.dashboardService.saveDashboardToConfig(event.databaseEntity);
45
+ await this.saveDashboardToConfig(event.databaseEntity, event.queryRunner.manager);
46
+ }
47
+ async saveDashboardToConfig(dashboard, entityManager) {
48
+ if (!dashboard || !dashboard.id) {
49
+ this.logger.debug('Dashboard or dashboard id is undefined');
50
+ return;
51
+ }
52
+ const populatedDashboard = await entityManager.findOne(dashboard_entity_1.Dashboard, {
53
+ where: { id: dashboard.id },
54
+ relations: ['module'],
55
+ });
56
+ if (!populatedDashboard) {
57
+ this.logger.error(`Dashboard not found for id ${dashboard.id}`);
58
+ return;
59
+ }
60
+ await this.dashboardService.saveDashboardToConfig(populatedDashboard);
46
61
  }
47
62
  };
48
63
  exports.DashboardSubscriber = DashboardSubscriber;
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard.subscriber.js","sourceRoot":"","sources":["../../src/subscribers/dashboard.subscriber.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAoD;AACpD,6CAAmD;AAEnD,mEAA0D;AAC1D,8FAAyF;AAEzF,qEAAkE;AAClE,qCAA0F;AAGnF,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAE5B,YAEI,UAAuC,EAC9B,2BAAwD,EACxD,gBAAkC;QAF1B,eAAU,GAAV,UAAU,CAAY;QAC9B,gCAA2B,GAA3B,2BAA2B,CAA6B;QACxD,qBAAgB,GAAhB,gBAAgB,CAAkB;QAL9B,WAAM,GAAG,IAAI,eAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAOxD,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,QAAQ;QACJ,OAAO,4BAAS,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAA6B;QAC3C,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yEAAyE,CAAC,CAAC;YAC7F,OAAO;QACX,CAAC;QACD,MAAM,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAA6B;QAC3C,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yEAAyE,CAAC,CAAC;YAC7F,OAAO;QACX,CAAC;QAED,MAAM,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAC5E,CAAC;CAEJ,CAAA;AAhCY,kDAAmB;8BAAnB,mBAAmB;IAD/B,IAAA,mBAAU,GAAE;IAIJ,WAAA,IAAA,0BAAgB,GAAE,CAAA;qCACU,oBAAU;QACD,4DAA2B;QACtC,oCAAgB;GANtC,mBAAmB,CAgC/B","sourcesContent":["import { Injectable, Logger } from '@nestjs/common';\nimport { InjectDataSource } from \"@nestjs/typeorm\";\nimport * as fs from 'fs/promises'; // Use the Promise-based version of fs for async/await\nimport { Dashboard } from 'src/entities/dashboard.entity';\nimport { ModuleMetadataHelperService } from \"src/helpers/module-metadata-helper.service\";\nimport { DashboardMapper } from 'src/mappers/dashboard-mapper';\nimport { DashboardService } from 'src/services/dashboard.service';\nimport { DataSource, EntitySubscriberInterface, InsertEvent, UpdateEvent } from \"typeorm\";\n\n@Injectable()\nexport class DashboardSubscriber implements EntitySubscriberInterface<Dashboard> {\n private readonly logger = new Logger(this.constructor.name);\n constructor(\n @InjectDataSource()\n private readonly dataSource: DataSource,\n readonly moduleMetadataHelperService: ModuleMetadataHelperService,\n readonly dashboardService: DashboardService, // Assuming you have a DashboardService for custom queries\n ) {\n this.dataSource.subscribers.push(this);\n }\n\n listenTo() {\n return Dashboard;\n }\n\n async afterInsert(event: InsertEvent<Dashboard>) {\n if (!event.entity) {\n this.logger.debug('No dashboard entity found in the DashboardSubscriber afterInsert method');\n return;\n }\n await this.dashboardService.saveDashboardToConfig(event.entity);\n }\n\n async afterUpdate(event: UpdateEvent<Dashboard>) {\n if (!event.entity) {\n this.logger.debug('No dashboard entity found in the DashboardSubscriber afterInsert method');\n return;\n }\n\n await this.dashboardService.saveDashboardToConfig(event.databaseEntity);\n }\n\n}"]}
1
+ {"version":3,"file":"dashboard.subscriber.js","sourceRoot":"","sources":["../../src/subscribers/dashboard.subscriber.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAoD;AACpD,6CAAmD;AAEnD,mEAA0D;AAC1D,8FAAyF;AAEzF,qEAAkE;AAClE,qCAAyG;AAGlG,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAE5B,YAEI,UAAuC,EAC9B,2BAAwD,EACxD,gBAAkC;QAF1B,eAAU,GAAV,UAAU,CAAY;QAC9B,gCAA2B,GAA3B,2BAA2B,CAA6B;QACxD,qBAAgB,GAAhB,gBAAgB,CAAkB;QAL9B,WAAM,GAAG,IAAI,eAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAOxD,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,QAAQ;QACJ,OAAO,4BAAS,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAA6B;QAC3C,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yEAAyE,CAAC,CAAC;YAC7F,OAAO;QACX,CAAC;QACD,MAAM,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC9E,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAA6B;QAC3C,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yEAAyE,CAAC,CAAC;YAC7F,OAAO;QACX,CAAC;QAED,MAAM,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACtF,CAAC;IAEO,KAAK,CAAC,qBAAqB,CAAC,SAAoB,EAAE,aAA4B;QAClF,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;YAC9B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;YAC5D,OAAO;QACX,CAAC;QAGD,MAAM,kBAAkB,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,4BAAS,EAAE;YAC9D,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE;YAC3B,SAAS,EAAE,CAAC,QAAQ,CAAC;SACxB,CAAC,CAAC;QAEH,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACtB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC;YAChE,OAAO;QACX,CAAC;QAGD,MAAM,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,CAAC;IAC1E,CAAC;CAEJ,CAAA;AArDY,kDAAmB;8BAAnB,mBAAmB;IAD/B,IAAA,mBAAU,GAAE;IAIJ,WAAA,IAAA,0BAAgB,GAAE,CAAA;qCACU,oBAAU;QACD,4DAA2B;QACtC,oCAAgB;GANtC,mBAAmB,CAqD/B","sourcesContent":["import { Injectable, Logger } from '@nestjs/common';\nimport { InjectDataSource } from \"@nestjs/typeorm\";\nimport * as fs from 'fs/promises'; // Use the Promise-based version of fs for async/await\nimport { Dashboard } from 'src/entities/dashboard.entity';\nimport { ModuleMetadataHelperService } from \"src/helpers/module-metadata-helper.service\";\nimport { DashboardMapper } from 'src/mappers/dashboard-mapper';\nimport { DashboardService } from 'src/services/dashboard.service';\nimport { DataSource, EntityManager, EntitySubscriberInterface, InsertEvent, UpdateEvent } from \"typeorm\";\n\n@Injectable()\nexport class DashboardSubscriber implements EntitySubscriberInterface<Dashboard> {\n private readonly logger = new Logger(this.constructor.name);\n constructor(\n @InjectDataSource()\n private readonly dataSource: DataSource,\n readonly moduleMetadataHelperService: ModuleMetadataHelperService,\n readonly dashboardService: DashboardService, // Assuming you have a DashboardService for custom queries\n ) {\n this.dataSource.subscribers.push(this);\n }\n\n listenTo() {\n return Dashboard;\n }\n\n async afterInsert(event: InsertEvent<Dashboard>) {\n if (!event.entity) {\n this.logger.debug('No dashboard entity found in the DashboardSubscriber afterInsert method');\n return;\n }\n await this.saveDashboardToConfig(event.entity, event.queryRunner.manager);\n }\n\n async afterUpdate(event: UpdateEvent<Dashboard>) {\n if (!event.entity) {\n this.logger.debug('No dashboard entity found in the DashboardSubscriber afterInsert method');\n return;\n }\n\n await this.saveDashboardToConfig(event.databaseEntity, event.queryRunner.manager);\n }\n\n private async saveDashboardToConfig(dashboard: Dashboard, entityManager: EntityManager): Promise<void> {\n if (!dashboard || !dashboard.id) {\n this.logger.debug('Dashboard or dashboard id is undefined');\n return;\n }\n\n // Load the dashboard with module relation populated\n const populatedDashboard = await entityManager.findOne(Dashboard, {\n where: { id: dashboard.id },\n relations: ['module'],\n });\n\n if (!populatedDashboard) {\n this.logger.error(`Dashboard not found for id ${dashboard.id}`);\n return;\n }\n\n // Call the saveDashboardToConfig method from the DashboardService\n await this.dashboardService.saveDashboardToConfig(populatedDashboard);\n }\n\n}"]}