@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
@@ -0,0 +1,160 @@
1
+ import { Injectable } from "@nestjs/common";
2
+ import { DataSource } from "typeorm";
3
+ import {
4
+ DatasourceIntrospectionColumn,
5
+ DatasourceIntrospectionProvider,
6
+ DatasourceIntrospectionTableRef,
7
+ } from "src/interfaces/datasource-introspection-provider.interface";
8
+
9
+ @Injectable()
10
+ export class PostgresDatasourceIntrospectionProviderService implements DatasourceIntrospectionProvider {
11
+ readonly type = "postgres";
12
+
13
+ supports(type: string) {
14
+ return type?.toLowerCase() === this.type;
15
+ }
16
+
17
+ async listTables(dataSource: DataSource): Promise<DatasourceIntrospectionTableRef[]> {
18
+ const rows = await dataSource.query(`
19
+ SELECT
20
+ TABLE_SCHEMA AS "tableSchema",
21
+ TABLE_NAME AS "tableName"
22
+ FROM INFORMATION_SCHEMA.TABLES
23
+ WHERE TABLE_TYPE = 'BASE TABLE'
24
+ AND TABLE_SCHEMA NOT IN ('pg_catalog', 'information_schema')
25
+ ORDER BY TABLE_SCHEMA, TABLE_NAME
26
+ `);
27
+
28
+ return rows.map((row: any) => ({
29
+ tableSchema: row.tableSchema ?? null,
30
+ tableName: row.tableName,
31
+ }));
32
+ }
33
+
34
+ async listColumns(dataSource: DataSource): Promise<DatasourceIntrospectionColumn[]> {
35
+ const rows = await dataSource.query(`
36
+ SELECT
37
+ TABLE_SCHEMA AS "tableSchema",
38
+ TABLE_NAME AS "tableName",
39
+ COLUMN_NAME AS "columnName",
40
+ DATA_TYPE AS "dataType",
41
+ CASE
42
+ WHEN is_identity = 'YES' THEN true
43
+ WHEN COLUMN_DEFAULT LIKE 'nextval(%' THEN true
44
+ ELSE false
45
+ END AS "isAutoGenerated",
46
+ IS_NULLABLE AS "isNullable",
47
+ COLUMN_DEFAULT AS "defaultValue",
48
+ CHARACTER_MAXIMUM_LENGTH AS "characterMaximumLength",
49
+ NUMERIC_PRECISION AS "numericPrecision",
50
+ NUMERIC_SCALE AS "numericScale",
51
+ ORDINAL_POSITION AS "ordinalPosition"
52
+ FROM INFORMATION_SCHEMA.COLUMNS
53
+ WHERE TABLE_SCHEMA NOT IN ('pg_catalog', 'information_schema')
54
+ ORDER BY TABLE_SCHEMA, TABLE_NAME, ORDINAL_POSITION
55
+ `);
56
+
57
+ return rows.map((row: any) => ({
58
+ tableSchema: row.tableSchema ?? null,
59
+ tableName: row.tableName,
60
+ columnName: row.columnName,
61
+ dataType: row.dataType,
62
+ isAutoGenerated: Boolean(row.isAutoGenerated),
63
+ isNullable: String(row.isNullable).toUpperCase() === "YES",
64
+ defaultValue: row.defaultValue ?? null,
65
+ characterMaximumLength: this.toNumberOrNull(row.characterMaximumLength),
66
+ numericPrecision: this.toNumberOrNull(row.numericPrecision),
67
+ numericScale: this.toNumberOrNull(row.numericScale),
68
+ ordinalPosition: this.toNumberOrNull(row.ordinalPosition),
69
+ }));
70
+ }
71
+
72
+ async getTableDefinition(dataSource: DataSource, table: DatasourceIntrospectionTableRef): Promise<string | null> {
73
+ const rows = await dataSource.query(
74
+ `
75
+ WITH target_table AS (
76
+ SELECT c.oid, n.nspname AS schema_name, c.relname AS table_name
77
+ FROM pg_class c
78
+ INNER JOIN pg_namespace n ON n.oid = c.relnamespace
79
+ WHERE c.relkind = 'r'
80
+ AND c.relname = $1
81
+ AND ($2::text IS NULL OR n.nspname = $2)
82
+ LIMIT 1
83
+ ),
84
+ column_lines AS (
85
+ SELECT
86
+ a.attnum,
87
+ format(
88
+ ' %I %s%s%s%s',
89
+ a.attname,
90
+ format_type(a.atttypid, a.atttypmod),
91
+ CASE
92
+ WHEN a.attidentity = 'a' THEN ' GENERATED ALWAYS AS IDENTITY'
93
+ WHEN a.attidentity = 'd' THEN ' GENERATED BY DEFAULT AS IDENTITY'
94
+ ELSE ''
95
+ END,
96
+ CASE
97
+ WHEN ad.adbin IS NOT NULL THEN ' DEFAULT ' || pg_get_expr(ad.adbin, ad.adrelid)
98
+ ELSE ''
99
+ END,
100
+ CASE
101
+ WHEN a.attnotnull THEN ' NOT NULL'
102
+ ELSE ''
103
+ END
104
+ ) AS line
105
+ FROM target_table tt
106
+ INNER JOIN pg_attribute a ON a.attrelid = tt.oid
107
+ LEFT JOIN pg_attrdef ad
108
+ ON ad.adrelid = a.attrelid
109
+ AND ad.adnum = a.attnum
110
+ WHERE a.attnum > 0
111
+ AND NOT a.attisdropped
112
+ ),
113
+ constraint_lines AS (
114
+ SELECT
115
+ c.conname,
116
+ format(' CONSTRAINT %I %s', c.conname, pg_get_constraintdef(c.oid, true)) AS line
117
+ FROM target_table tt
118
+ INNER JOIN pg_constraint c ON c.conrelid = tt.oid
119
+ WHERE c.contype IN ('p', 'u', 'f', 'c')
120
+ )
121
+ SELECT format(
122
+ 'CREATE TABLE %I.%I (\n%s%s\n);',
123
+ tt.schema_name,
124
+ tt.table_name,
125
+ COALESCE(
126
+ (
127
+ SELECT string_agg(line, ',\n' ORDER BY attnum)
128
+ FROM column_lines
129
+ ),
130
+ ''
131
+ ),
132
+ COALESCE(
133
+ (
134
+ SELECT CASE
135
+ WHEN EXISTS (SELECT 1 FROM constraint_lines)
136
+ THEN ',\n' || string_agg(line, ',\n' ORDER BY conname)
137
+ ELSE ''
138
+ END
139
+ FROM constraint_lines
140
+ ),
141
+ ''
142
+ )
143
+ ) AS ddl
144
+ FROM target_table tt
145
+ `,
146
+ [table.tableName, table.tableSchema],
147
+ );
148
+
149
+ return rows?.[0]?.ddl ?? null;
150
+ }
151
+
152
+ private toNumberOrNull(value: unknown) {
153
+ if (value === null || value === undefined || value === "") {
154
+ return null;
155
+ }
156
+
157
+ const parsed = Number(value);
158
+ return Number.isFinite(parsed) ? parsed : null;
159
+ }
160
+ }