@solidxai/core 0.1.10 → 0.1.11-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (158) hide show
  1. package/dist/controllers/datasource-introspection.controller.d.ts +234 -0
  2. package/dist/controllers/datasource-introspection.controller.d.ts.map +1 -0
  3. package/dist/controllers/datasource-introspection.controller.js +98 -0
  4. package/dist/controllers/datasource-introspection.controller.js.map +1 -0
  5. package/dist/controllers/datasource-management.controller.d.ts +18 -0
  6. package/dist/controllers/datasource-management.controller.d.ts.map +1 -0
  7. package/dist/controllers/datasource-management.controller.js +55 -0
  8. package/dist/controllers/datasource-management.controller.js.map +1 -0
  9. package/dist/dtos/create-datasource-management.dto.d.ts +25 -0
  10. package/dist/dtos/create-datasource-management.dto.d.ts.map +1 -0
  11. package/dist/dtos/create-datasource-management.dto.js +169 -0
  12. package/dist/dtos/create-datasource-management.dto.js.map +1 -0
  13. package/dist/dtos/datasource-introspection-mapping.dto.d.ts +45 -0
  14. package/dist/dtos/datasource-introspection-mapping.dto.d.ts.map +1 -0
  15. package/dist/dtos/datasource-introspection-mapping.dto.js +233 -0
  16. package/dist/dtos/datasource-introspection-mapping.dto.js.map +1 -0
  17. package/dist/index.d.ts +5 -0
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +5 -0
  20. package/dist/index.js.map +1 -1
  21. package/dist/interfaces/datasource-introspection-provider.interface.d.ts +26 -0
  22. package/dist/interfaces/datasource-introspection-provider.interface.d.ts.map +1 -0
  23. package/dist/interfaces/datasource-introspection-provider.interface.js +3 -0
  24. package/dist/interfaces/datasource-introspection-provider.interface.js.map +1 -0
  25. package/dist/repository/scheduled-job.repository.d.ts +3 -0
  26. package/dist/repository/scheduled-job.repository.d.ts.map +1 -1
  27. package/dist/repository/scheduled-job.repository.js +60 -0
  28. package/dist/repository/scheduled-job.repository.js.map +1 -1
  29. package/dist/seeders/module-metadata-seeder.service.d.ts +32 -1
  30. package/dist/seeders/module-metadata-seeder.service.d.ts.map +1 -1
  31. package/dist/seeders/module-metadata-seeder.service.js +1011 -230
  32. package/dist/seeders/module-metadata-seeder.service.js.map +1 -1
  33. package/dist/seeders/seed-data/solid-core-metadata.json +21 -0
  34. package/dist/services/action-metadata.service.d.ts +7 -0
  35. package/dist/services/action-metadata.service.d.ts.map +1 -1
  36. package/dist/services/action-metadata.service.js +76 -3
  37. package/dist/services/action-metadata.service.js.map +1 -1
  38. package/dist/services/authentication.service.js +1 -1
  39. package/dist/services/authentication.service.js.map +1 -1
  40. package/dist/services/dashboard-providers/mq-dashboard-latency-trend-provider.service.d.ts.map +1 -1
  41. package/dist/services/dashboard-providers/mq-dashboard-latency-trend-provider.service.js +2 -2
  42. package/dist/services/dashboard-providers/mq-dashboard-latency-trend-provider.service.js.map +1 -1
  43. package/dist/services/dashboard-providers/mq-dashboard-messages-over-time-provider.service.d.ts.map +1 -1
  44. package/dist/services/dashboard-providers/mq-dashboard-messages-over-time-provider.service.js +2 -2
  45. package/dist/services/dashboard-providers/mq-dashboard-messages-over-time-provider.service.js.map +1 -1
  46. package/dist/services/dashboard-providers/mq-dashboard-provider-utils.d.ts +3 -0
  47. package/dist/services/dashboard-providers/mq-dashboard-provider-utils.d.ts.map +1 -1
  48. package/dist/services/dashboard-providers/mq-dashboard-provider-utils.js +71 -0
  49. package/dist/services/dashboard-providers/mq-dashboard-provider-utils.js.map +1 -1
  50. package/dist/services/dashboard-providers/mq-dashboard-queue-sla-heatmap-provider.service.d.ts.map +1 -1
  51. package/dist/services/dashboard-providers/mq-dashboard-queue-sla-heatmap-provider.service.js +3 -3
  52. package/dist/services/dashboard-providers/mq-dashboard-queue-sla-heatmap-provider.service.js.map +1 -1
  53. package/dist/services/datasource-introspection/mssql-datasource-introspection-provider.service.d.ts +11 -0
  54. package/dist/services/datasource-introspection/mssql-datasource-introspection-provider.service.d.ts.map +1 -0
  55. package/dist/services/datasource-introspection/mssql-datasource-introspection-provider.service.js +181 -0
  56. package/dist/services/datasource-introspection/mssql-datasource-introspection-provider.service.js.map +1 -0
  57. package/dist/services/datasource-introspection/mysql-datasource-introspection-provider.service.d.ts +11 -0
  58. package/dist/services/datasource-introspection/mysql-datasource-introspection-provider.service.d.ts.map +1 -0
  59. package/dist/services/datasource-introspection/mysql-datasource-introspection-provider.service.js +90 -0
  60. package/dist/services/datasource-introspection/mysql-datasource-introspection-provider.service.js.map +1 -0
  61. package/dist/services/datasource-introspection/postgres-datasource-introspection-provider.service.d.ts +11 -0
  62. package/dist/services/datasource-introspection/postgres-datasource-introspection-provider.service.d.ts.map +1 -0
  63. package/dist/services/datasource-introspection/postgres-datasource-introspection-provider.service.js +156 -0
  64. package/dist/services/datasource-introspection/postgres-datasource-introspection-provider.service.js.map +1 -0
  65. package/dist/services/datasource-introspection.service.d.ts +288 -0
  66. package/dist/services/datasource-introspection.service.d.ts.map +1 -0
  67. package/dist/services/datasource-introspection.service.js +1278 -0
  68. package/dist/services/datasource-introspection.service.js.map +1 -0
  69. package/dist/services/datasource-management.service.d.ts +60 -0
  70. package/dist/services/datasource-management.service.d.ts.map +1 -0
  71. package/dist/services/datasource-management.service.js +461 -0
  72. package/dist/services/datasource-management.service.js.map +1 -0
  73. package/dist/services/field-metadata.service.d.ts.map +1 -1
  74. package/dist/services/field-metadata.service.js +19 -0
  75. package/dist/services/field-metadata.service.js.map +1 -1
  76. package/dist/services/model-metadata.service.d.ts +1 -3
  77. package/dist/services/model-metadata.service.d.ts.map +1 -1
  78. package/dist/services/model-metadata.service.js +47 -15
  79. package/dist/services/model-metadata.service.js.map +1 -1
  80. package/dist/services/role-metadata.service.d.ts +5 -0
  81. package/dist/services/role-metadata.service.d.ts.map +1 -1
  82. package/dist/services/role-metadata.service.js +85 -31
  83. package/dist/services/role-metadata.service.js.map +1 -1
  84. package/dist/services/selection-providers/mq-dashboard-message-broker-variable-options-provider.service.d.ts.map +1 -1
  85. package/dist/services/selection-providers/mq-dashboard-message-broker-variable-options-provider.service.js +2 -3
  86. package/dist/services/selection-providers/mq-dashboard-message-broker-variable-options-provider.service.js.map +1 -1
  87. package/dist/services/selection-providers/mq-dashboard-queue-name-variable-options-provider.service.d.ts.map +1 -1
  88. package/dist/services/selection-providers/mq-dashboard-queue-name-variable-options-provider.service.js +2 -3
  89. package/dist/services/selection-providers/mq-dashboard-queue-name-variable-options-provider.service.js.map +1 -1
  90. package/dist/services/setting.service.d.ts +1 -0
  91. package/dist/services/setting.service.d.ts.map +1 -1
  92. package/dist/services/setting.service.js +32 -8
  93. package/dist/services/setting.service.js.map +1 -1
  94. package/dist/services/solid-ts-morph.service.d.ts +1 -1
  95. package/dist/services/solid-ts-morph.service.d.ts.map +1 -1
  96. package/dist/services/solid-ts-morph.service.js.map +1 -1
  97. package/dist/services/view-metadata.service.d.ts +6 -0
  98. package/dist/services/view-metadata.service.d.ts.map +1 -1
  99. package/dist/services/view-metadata.service.js +66 -1
  100. package/dist/services/view-metadata.service.js.map +1 -1
  101. package/dist/solid-core.module.d.ts.map +1 -1
  102. package/dist/solid-core.module.js +16 -0
  103. package/dist/solid-core.module.js.map +1 -1
  104. package/dist-tests/api/authenticate.spec.js +119 -0
  105. package/dist-tests/api/authenticate.spec.js.map +1 -0
  106. package/dist-tests/api/crud-service.findOne.cityMaster.spec.js +97 -0
  107. package/dist-tests/api/crud-service.findOne.cityMaster.spec.js.map +1 -0
  108. package/dist-tests/api/ping.spec.js +21 -0
  109. package/dist-tests/api/ping.spec.js.map +1 -0
  110. package/dist-tests/helpers/auth.js +41 -0
  111. package/dist-tests/helpers/auth.js.map +1 -0
  112. package/dist-tests/helpers/env.js +11 -0
  113. package/dist-tests/helpers/env.js.map +1 -0
  114. package/docs/agent-hub-grooming.md +301 -0
  115. package/docs/dashboards/AGENTIC_DASHBOARD_IMPLEMENTATION_PLAN.md +438 -0
  116. package/docs/dashboards/dashboard-curl-smoke-tests.txt +146 -0
  117. package/docs/dashboards/delete-legacy-dashboard-metadata.sql +172 -0
  118. package/docs/datasource-introspection-ddl-analysis.md +326 -0
  119. package/docs/datasource-introspection-implementation-plan.md +306 -0
  120. package/docs/grouping-enhancements.md +89 -0
  121. package/docs/java-spring/README.md +3 -0
  122. package/docs/java-spring/solid-core-module-deep-dive-report.md +1317 -0
  123. package/docs/module-package-import-handoff.md +691 -0
  124. package/docs/seed-changes.md +65 -0
  125. package/docs/test-data-workflow.md +200 -0
  126. package/docs/type-declaration-import-issue.md +24 -0
  127. package/package.json +1 -1
  128. package/src/controllers/datasource-introspection.controller.ts +58 -0
  129. package/src/controllers/datasource-management.controller.ts +24 -0
  130. package/src/dtos/create-datasource-management.dto.ts +139 -0
  131. package/src/dtos/datasource-introspection-mapping.dto.ts +182 -0
  132. package/src/index.ts +5 -0
  133. package/src/interfaces/datasource-introspection-provider.interface.ts +28 -0
  134. package/src/repository/scheduled-job.repository.ts +73 -0
  135. package/src/seeders/module-metadata-seeder.service.ts +1223 -262
  136. package/src/seeders/seed-data/solid-core-metadata.json +22 -1
  137. package/src/services/action-metadata.service.ts +87 -2
  138. package/src/services/authentication.service.ts +1 -1
  139. package/src/services/dashboard-providers/mq-dashboard-latency-trend-provider.service.ts +9 -4
  140. package/src/services/dashboard-providers/mq-dashboard-messages-over-time-provider.service.ts +9 -4
  141. package/src/services/dashboard-providers/mq-dashboard-provider-utils.ts +82 -0
  142. package/src/services/dashboard-providers/mq-dashboard-queue-sla-heatmap-provider.service.ts +10 -4
  143. package/src/services/datasource-introspection/mssql-datasource-introspection-provider.service.ts +185 -0
  144. package/src/services/datasource-introspection/mysql-datasource-introspection-provider.service.ts +95 -0
  145. package/src/services/datasource-introspection/postgres-datasource-introspection-provider.service.ts +160 -0
  146. package/src/services/datasource-introspection.service.ts +1536 -0
  147. package/src/services/datasource-management.service.ts +566 -0
  148. package/src/services/field-metadata.service.ts +21 -1
  149. package/src/services/model-metadata.service.ts +50 -13
  150. package/src/services/role-metadata.service.ts +100 -47
  151. package/src/services/selection-providers/mq-dashboard-message-broker-variable-options-provider.service.ts +2 -4
  152. package/src/services/selection-providers/mq-dashboard-queue-name-variable-options-provider.service.ts +2 -4
  153. package/src/services/setting.service.ts +43 -12
  154. package/src/services/solid-ts-morph.service.ts +2 -2
  155. package/src/services/view-metadata.service.ts +79 -1
  156. package/src/solid-core.module.ts +16 -0
  157. package/.claude/settings.local.json +0 -15
  158. package/src/services/1.js +0 -6
package/src/index.ts CHANGED
@@ -62,6 +62,7 @@ export * from './dtos/create-view-metadata.dto'
62
62
  export * from './dtos/create-chatter-message.dto'
63
63
  export * from './dtos/create-chatter-message-details.dto'
64
64
  export * from './dtos/create-locale.dto'
65
+ export * from './dtos/create-datasource-management.dto'
65
66
  export * from './dtos/fetch-roles.dto'
66
67
  export * from './dtos/initiate-forgot-password.dto'
67
68
  export * from './dtos/mutate-role-permissions.dto'
@@ -334,7 +335,11 @@ export * from './services/whatsapp/GupshupOtpWhatsappService'
334
335
  export * from './services/setting.service'
335
336
  export * from './services/encryption.service'
336
337
  export * from './services/info.service'
338
+ export * from './services/datasource-management.service'
339
+ export * from './services/datasource-introspection.service'
337
340
  export * from './controllers/info.controller'
341
+ export * from './controllers/datasource-management.controller'
342
+ export * from './controllers/datasource-introspection.controller'
338
343
  export * from './controllers/module-metadata-explorer.controller'
339
344
  export * from './controllers/module-package.controller'
340
345
  export * from './services/settings/default-settings-provider.service'
@@ -0,0 +1,28 @@
1
+ import { DataSource } from "typeorm";
2
+
3
+ export type DatasourceIntrospectionTableRef = {
4
+ tableSchema: string | null;
5
+ tableName: string;
6
+ };
7
+
8
+ export type DatasourceIntrospectionColumn = {
9
+ tableSchema: string | null;
10
+ tableName: string;
11
+ columnName: string;
12
+ dataType: string;
13
+ isAutoGenerated: boolean;
14
+ isNullable: boolean;
15
+ defaultValue: string | null;
16
+ characterMaximumLength: number | null;
17
+ numericPrecision: number | null;
18
+ numericScale: number | null;
19
+ ordinalPosition: number | null;
20
+ };
21
+
22
+ export interface DatasourceIntrospectionProvider {
23
+ readonly type: string;
24
+ supports(type: string): boolean;
25
+ listTables(dataSource: DataSource): Promise<DatasourceIntrospectionTableRef[]>;
26
+ listColumns(dataSource: DataSource): Promise<DatasourceIntrospectionColumn[]>;
27
+ getTableDefinition(dataSource: DataSource, table: DatasourceIntrospectionTableRef): Promise<string | null>;
28
+ }
@@ -34,6 +34,71 @@ export class ScheduledJobRepository extends SolidBaseRepository<ScheduledJob> {
34
34
  super(ScheduledJob, dataSource, requestContextService, securityRuleRepository);
35
35
  }
36
36
 
37
+ private normalizeComparableValue(value: any): any {
38
+ if (value instanceof Date) {
39
+ return value.toISOString();
40
+ }
41
+
42
+ if (typeof value === "string") {
43
+ const trimmedValue = value.trim();
44
+ if (
45
+ (trimmedValue.startsWith("{") && trimmedValue.endsWith("}")) ||
46
+ (trimmedValue.startsWith("[") && trimmedValue.endsWith("]"))
47
+ ) {
48
+ try {
49
+ return this.normalizeComparableValue(JSON.parse(trimmedValue));
50
+ } catch {
51
+ return value;
52
+ }
53
+ }
54
+ return value;
55
+ }
56
+
57
+ if (Array.isArray(value)) {
58
+ return value.map((item) => this.normalizeComparableValue(item));
59
+ }
60
+
61
+ if (value && typeof value === "object") {
62
+ return Object.keys(value)
63
+ .sort()
64
+ .reduce((result, key) => {
65
+ result[key] = this.normalizeComparableValue(value[key]);
66
+ return result;
67
+ }, {} as Record<string, any>);
68
+ }
69
+
70
+ return value;
71
+ }
72
+
73
+ private areValuesDifferent(currentValue: any, nextValue: any): boolean {
74
+ const normalizedCurrentValue = this.normalizeComparableValue(currentValue);
75
+ const normalizedNextValue = this.normalizeComparableValue(nextValue);
76
+
77
+ if (
78
+ (normalizedCurrentValue && typeof normalizedCurrentValue === "object") ||
79
+ (normalizedNextValue && typeof normalizedNextValue === "object")
80
+ ) {
81
+ return JSON.stringify(normalizedCurrentValue ?? null) !== JSON.stringify(normalizedNextValue ?? null);
82
+ }
83
+
84
+ return normalizedCurrentValue !== normalizedNextValue;
85
+ }
86
+
87
+ private hasChanges(existing: ScheduledJob, dto: CreateScheduledJobDto, moduleEntity: ModuleMetadata): boolean {
88
+ return existing.scheduleName !== dto.scheduleName
89
+ || existing.isActive !== dto.isActive
90
+ || this.areValuesDifferent(existing.frequency, dto.frequency)
91
+ || this.areValuesDifferent(existing.startTime, dto.startTime)
92
+ || this.areValuesDifferent(existing.endTime, dto.endTime)
93
+ || this.areValuesDifferent(existing.startDate, dto.startDate)
94
+ || this.areValuesDifferent(existing.endDate, dto.endDate)
95
+ || this.areValuesDifferent(existing.dayOfMonth, dto.dayOfMonth)
96
+ || this.areValuesDifferent(existing.dayOfWeek, dto.dayOfWeek)
97
+ || this.areValuesDifferent(existing.job, dto.job)
98
+ || this.areValuesDifferent(existing.cronExpression, dto.cronExpression)
99
+ || existing.module?.id !== moduleEntity.id;
100
+ }
101
+
37
102
  /**
38
103
  * Converts an entity to a plain DTO object.
39
104
  */
@@ -91,9 +156,17 @@ export class ScheduledJobRepository extends SolidBaseRepository<ScheduledJob> {
91
156
  };
92
157
  const existing = await this.findOne({
93
158
  where: { scheduleName: dto.scheduleName },
159
+ relations: {
160
+ module: true,
161
+ },
94
162
  });
95
163
 
96
164
  if (existing) {
165
+ if (!this.hasChanges(existing, dto, moduleEntity)) {
166
+ this.logger.debug(`Skipping scheduled job upsert for ${dto.scheduleName}; no changes detected.`);
167
+ return existing;
168
+ }
169
+
97
170
  const merged = this.merge(existing, jobData);
98
171
  this.logger.debug(`Updating scheduled job: ${dto.scheduleName}`);
99
172
  return this.save(merged);