@solidxai/core-ui 0.1.12-beta.0 → 0.1.12-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 (88) hide show
  1. package/dist/components/auth/SolidLogin.d.ts.map +1 -1
  2. package/dist/components/auth/SolidLogin.js +6 -3
  3. package/dist/components/auth/SolidLogin.js.map +1 -1
  4. package/dist/components/auth/SolidLogin.tsx +16 -2
  5. package/dist/components/auth/SolidRegister.d.ts.map +1 -1
  6. package/dist/components/auth/SolidRegister.js +7 -4
  7. package/dist/components/auth/SolidRegister.js.map +1 -1
  8. package/dist/components/auth/SolidRegister.tsx +16 -2
  9. package/dist/components/common/SolidLoadingState.d.ts +10 -0
  10. package/dist/components/common/SolidLoadingState.d.ts.map +1 -0
  11. package/dist/components/common/SolidLoadingState.js +8 -0
  12. package/dist/components/common/SolidLoadingState.js.map +1 -0
  13. package/dist/components/common/SolidLoadingState.module.css +56 -0
  14. package/dist/components/common/SolidLoadingState.tsx +28 -0
  15. package/dist/components/core/json/SolidJsonEditor.css +195 -0
  16. package/dist/components/core/json/SolidJsonEditor.d.ts +19 -0
  17. package/dist/components/core/json/SolidJsonEditor.d.ts.map +1 -0
  18. package/dist/components/core/json/SolidJsonEditor.js +109 -0
  19. package/dist/components/core/json/SolidJsonEditor.js.map +1 -0
  20. package/dist/components/core/json/SolidJsonEditor.tsx +150 -0
  21. package/dist/components/core/module/CreateModule.css +70 -2
  22. package/dist/components/core/module/CreateModule.d.ts.map +1 -1
  23. package/dist/components/core/module/CreateModule.js +2 -2
  24. package/dist/components/core/module/CreateModule.js.map +1 -1
  25. package/dist/components/core/module/CreateModule.tsx +13 -1
  26. package/dist/components/shad-cn-ui/SolidTabs.d.ts.map +1 -1
  27. package/dist/components/shad-cn-ui/SolidTabs.js +1 -1
  28. package/dist/components/shad-cn-ui/SolidTabs.js.map +1 -1
  29. package/dist/components/shad-cn-ui/SolidTabs.tsx +1 -0
  30. package/dist/index.d.ts +3 -0
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +3 -0
  33. package/dist/index.js.map +1 -1
  34. package/dist/index.ts +14 -0
  35. package/dist/redux/api/datasourceIntrospectionApi.d.ts +203 -0
  36. package/dist/redux/api/datasourceIntrospectionApi.d.ts.map +1 -0
  37. package/dist/redux/api/datasourceIntrospectionApi.js +71 -0
  38. package/dist/redux/api/datasourceIntrospectionApi.js.map +1 -0
  39. package/dist/redux/api/datasourceIntrospectionApi.ts +261 -0
  40. package/dist/redux/api/datasourceManagementApi.d.ts +46 -0
  41. package/dist/redux/api/datasourceManagementApi.d.ts.map +1 -0
  42. package/dist/redux/api/datasourceManagementApi.js +35 -0
  43. package/dist/redux/api/datasourceManagementApi.js.map +1 -0
  44. package/dist/redux/api/datasourceManagementApi.ts +86 -0
  45. package/dist/redux/store/StoreProvider.d.ts.map +1 -1
  46. package/dist/redux/store/StoreProvider.js +4 -2
  47. package/dist/redux/store/StoreProvider.js.map +1 -1
  48. package/dist/redux/store/StoreProvider.tsx +9 -1
  49. package/dist/redux/store/defaultStoreConfig.d.ts +23 -0
  50. package/dist/redux/store/defaultStoreConfig.d.ts.map +1 -1
  51. package/dist/redux/store/defaultStoreConfig.js +4 -0
  52. package/dist/redux/store/defaultStoreConfig.js.map +1 -1
  53. package/dist/redux/store/defaultStoreConfig.ts +4 -0
  54. package/dist/resources/solid-custom.css +70 -16
  55. package/dist/routes/guards/AdminGuard.d.ts.map +1 -1
  56. package/dist/routes/guards/AdminGuard.js +2 -1
  57. package/dist/routes/guards/AdminGuard.js.map +1 -1
  58. package/dist/routes/guards/AdminGuard.tsx +7 -1
  59. package/dist/routes/guards/AuthGuard.d.ts.map +1 -1
  60. package/dist/routes/guards/AuthGuard.js +2 -1
  61. package/dist/routes/guards/AuthGuard.js.map +1 -1
  62. package/dist/routes/guards/AuthGuard.tsx +8 -2
  63. package/dist/routes/guards/GuestGuard.d.ts.map +1 -1
  64. package/dist/routes/guards/GuestGuard.js +2 -1
  65. package/dist/routes/guards/GuestGuard.js.map +1 -1
  66. package/dist/routes/guards/GuestGuard.tsx +8 -2
  67. package/dist/routes/pages/admin/core/DashboardPage.d.ts.map +1 -1
  68. package/dist/routes/pages/admin/core/DashboardPage.js +7 -5
  69. package/dist/routes/pages/admin/core/DashboardPage.js.map +1 -1
  70. package/dist/routes/pages/admin/core/DashboardPage.module.css +18 -0
  71. package/dist/routes/pages/admin/core/DashboardPage.tsx +50 -32
  72. package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.css +828 -0
  73. package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.d.ts +3 -0
  74. package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.d.ts.map +1 -0
  75. package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.js +947 -0
  76. package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.js.map +1 -0
  77. package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.tsx +1719 -0
  78. package/dist/routes/pages/admin/core/DatasourcesPage.css +337 -0
  79. package/dist/routes/pages/admin/core/DatasourcesPage.d.ts +3 -0
  80. package/dist/routes/pages/admin/core/DatasourcesPage.d.ts.map +1 -0
  81. package/dist/routes/pages/admin/core/DatasourcesPage.js +221 -0
  82. package/dist/routes/pages/admin/core/DatasourcesPage.js.map +1 -0
  83. package/dist/routes/pages/admin/core/DatasourcesPage.tsx +540 -0
  84. package/dist/routes/solidRoutes.d.ts.map +1 -1
  85. package/dist/routes/solidRoutes.js +5 -1
  86. package/dist/routes/solidRoutes.js.map +1 -1
  87. package/dist/routes/solidRoutes.tsx +4 -0
  88. package/package.json +1 -1
@@ -0,0 +1,261 @@
1
+ import { createApi } from "@reduxjs/toolkit/query/react";
2
+ import { baseQueryWithAuth } from "./fetchBaseQuery";
3
+
4
+ export type DatasourceIntrospectionBootstrap = {
5
+ module: {
6
+ id: number;
7
+ name: string;
8
+ displayName: string;
9
+ description: string;
10
+ defaultDataSource: string;
11
+ };
12
+ datasources: Array<{
13
+ name: string;
14
+ displayName: string;
15
+ type: string;
16
+ envPrefix: string;
17
+ isDefault: boolean;
18
+ synchronize: boolean | null;
19
+ host: string;
20
+ port: number | null;
21
+ database: string;
22
+ }>;
23
+ recommendedDatasourceName: string | null;
24
+ };
25
+
26
+ export type DatasourceIntrospectionTableRecord = {
27
+ schema: string | null;
28
+ tableName: string;
29
+ mapped: boolean;
30
+ mappedModelId: number | null;
31
+ mappedModelSingularName: string | null;
32
+ mappedModelDisplayName: string | null;
33
+ mappedModuleId: number | null;
34
+ mappedModuleName: string | null;
35
+ mappedModuleDisplayName: string | null;
36
+ suggestedLegacyTableType: "none" | "existing_id" | "generated_id";
37
+ suggestedBaseClassName: string;
38
+ suggestedIdColumnName: string | null;
39
+ suggestedUserKeyField: string;
40
+ columnCount: number;
41
+ physicalColumnCount: number;
42
+ };
43
+
44
+ export type DatasourceIntrospectionTablesResponse = {
45
+ module: DatasourceIntrospectionBootstrap["module"];
46
+ datasource: DatasourceIntrospectionBootstrap["datasources"][number];
47
+ synchronizeBlocked: boolean;
48
+ synchronizeMessage: string | null;
49
+ records: DatasourceIntrospectionTableRecord[];
50
+ meta: {
51
+ totalRecords: number;
52
+ };
53
+ };
54
+
55
+ export type DatasourceIntrospectionTableDetail = {
56
+ module: DatasourceIntrospectionBootstrap["module"];
57
+ datasource: DatasourceIntrospectionBootstrap["datasources"][number];
58
+ table: DatasourceIntrospectionTableRecord;
59
+ columns: Array<{
60
+ columnName: string;
61
+ fieldName: string;
62
+ dataType: string;
63
+ solidFieldType: string;
64
+ ormType: string;
65
+ nullable: boolean;
66
+ defaultValue: string | null;
67
+ characterMaximumLength: number | null;
68
+ numericPrecision: number | null;
69
+ numericScale: number | null;
70
+ ordinalPosition: number | null;
71
+ isAutoGenerated: boolean;
72
+ handledBySuperclass: boolean;
73
+ superclassFieldName: string | null;
74
+ }>;
75
+ rawDdl: {
76
+ statement: string | null;
77
+ available: boolean;
78
+ note: string | null;
79
+ };
80
+ userKeyCandidates: Array<{
81
+ name: string;
82
+ label: string;
83
+ score: number;
84
+ reason: string;
85
+ isDefault: boolean;
86
+ }>;
87
+ suggestedMetadata: {
88
+ singularName: string;
89
+ pluralName: string;
90
+ displayName: string;
91
+ tableName: string;
92
+ schema: string | null;
93
+ dataSource: string;
94
+ dataSourceType: string;
95
+ legacyTableType: "none" | "existing_id" | "generated_id";
96
+ baseClassName: string;
97
+ userKeyField: string;
98
+ synchronize: false;
99
+ };
100
+ };
101
+
102
+ export type DatasourceIntrospectionMappingColumn = {
103
+ columnName: string;
104
+ fieldName: string;
105
+ dataType: string;
106
+ solidFieldType: string;
107
+ ormType: string;
108
+ nullable: boolean;
109
+ defaultValue: string | null;
110
+ characterMaximumLength: number | null;
111
+ numericPrecision: number | null;
112
+ numericScale: number | null;
113
+ ordinalPosition: number | null;
114
+ isAutoGenerated: boolean;
115
+ handledBySuperclass: boolean;
116
+ superclassFieldName: string | null;
117
+ fieldId: number | null;
118
+ include: boolean;
119
+ matched: boolean;
120
+ isPrimaryKey: boolean;
121
+ };
122
+
123
+ export type DatasourceIntrospectionMappingRequest = {
124
+ mapped: boolean;
125
+ modelId: number | null;
126
+ singularName: string;
127
+ pluralName: string;
128
+ displayName: string;
129
+ description: string;
130
+ tableName: string;
131
+ schema: string | null;
132
+ dataSource: string;
133
+ dataSourceType: string;
134
+ legacyTableType: "none" | "existing_id" | "generated_id";
135
+ baseClassName: string;
136
+ userKeyField: string;
137
+ enableAuditTracking: boolean;
138
+ enableSoftDelete: boolean;
139
+ draftPublishWorkflow: boolean;
140
+ internationalisation: boolean;
141
+ plannedMigrationTimestamp?: number | null;
142
+ columns: DatasourceIntrospectionMappingColumn[];
143
+ reviewedModel?: Record<string, any>;
144
+ };
145
+
146
+ export type DatasourceIntrospectionMappingPreview = {
147
+ operation: "create" | "update";
148
+ mappedModelId: number | null;
149
+ metadataJson: {
150
+ filePath: string;
151
+ model: Record<string, any>;
152
+ };
153
+ migration: {
154
+ willGenerate: boolean;
155
+ filePath: string | null;
156
+ fileName: string | null;
157
+ className: string | null;
158
+ timestamp: number | null;
159
+ content: string | null;
160
+ note: string;
161
+ missingSystemColumns: string[];
162
+ };
163
+ summary: {
164
+ includedColumnNames: string[];
165
+ removedColumnNames: string[];
166
+ missingSystemColumns: string[];
167
+ generatedSystemColumnCount: number;
168
+ };
169
+ };
170
+
171
+ export type DatasourceIntrospectionApplyResponse = DatasourceIntrospectionMappingPreview & {
172
+ modelId: number | null;
173
+ migration: DatasourceIntrospectionMappingPreview["migration"] & {
174
+ written: boolean;
175
+ };
176
+ };
177
+
178
+ function unwrapEnvelope<T = any>(payload: any): T {
179
+ let current = payload;
180
+
181
+ while (
182
+ current
183
+ && typeof current === "object"
184
+ && "data" in current
185
+ && current.data !== undefined
186
+ ) {
187
+ current = current.data;
188
+ }
189
+
190
+ return current as T;
191
+ }
192
+
193
+ export const datasourceIntrospectionApi = createApi({
194
+ reducerPath: "datasourceIntrospectionApi",
195
+ baseQuery: baseQueryWithAuth,
196
+ tagTypes: ["DatasourceIntrospection"],
197
+ endpoints: (builder) => ({
198
+ getDatasourceIntrospectionBootstrap: builder.query<DatasourceIntrospectionBootstrap, number>({
199
+ query: (moduleId) => `/datasource-introspection/modules/${moduleId}/bootstrap`,
200
+ providesTags: ["DatasourceIntrospection"],
201
+ transformResponse: (response: any) => unwrapEnvelope<DatasourceIntrospectionBootstrap>(response),
202
+ }),
203
+ getDatasourceIntrospectionTables: builder.query<
204
+ DatasourceIntrospectionTablesResponse,
205
+ { moduleId: number; datasource: string }
206
+ >({
207
+ query: ({ moduleId, datasource }) =>
208
+ `/datasource-introspection/modules/${moduleId}/tables?datasource=${encodeURIComponent(datasource)}`,
209
+ providesTags: ["DatasourceIntrospection"],
210
+ transformResponse: (response: any) => unwrapEnvelope<DatasourceIntrospectionTablesResponse>(response),
211
+ }),
212
+ getDatasourceIntrospectionTableDetail: builder.query<
213
+ DatasourceIntrospectionTableDetail,
214
+ { moduleId: number; datasource: string; table: string; schema?: string | null }
215
+ >({
216
+ query: ({ moduleId, datasource, table, schema }) => {
217
+ const searchParams = new URLSearchParams();
218
+ searchParams.set("datasource", datasource);
219
+ searchParams.set("table", table);
220
+ if (schema) {
221
+ searchParams.set("schema", schema);
222
+ }
223
+
224
+ return `/datasource-introspection/modules/${moduleId}/table-detail?${searchParams.toString()}`;
225
+ },
226
+ providesTags: ["DatasourceIntrospection"],
227
+ transformResponse: (response: any) => unwrapEnvelope<DatasourceIntrospectionTableDetail>(response),
228
+ }),
229
+ previewDatasourceIntrospectionMapping: builder.mutation<
230
+ DatasourceIntrospectionMappingPreview,
231
+ { moduleId: number; payload: DatasourceIntrospectionMappingRequest }
232
+ >({
233
+ query: ({ moduleId, payload }) => ({
234
+ url: `/datasource-introspection/modules/${moduleId}/mapping-preview`,
235
+ method: "POST",
236
+ body: payload,
237
+ }),
238
+ transformResponse: (response: any) => unwrapEnvelope<DatasourceIntrospectionMappingPreview>(response),
239
+ }),
240
+ applyDatasourceIntrospectionMapping: builder.mutation<
241
+ DatasourceIntrospectionApplyResponse,
242
+ { moduleId: number; payload: DatasourceIntrospectionMappingRequest }
243
+ >({
244
+ query: ({ moduleId, payload }) => ({
245
+ url: `/datasource-introspection/modules/${moduleId}/apply-mapping`,
246
+ method: "POST",
247
+ body: payload,
248
+ }),
249
+ invalidatesTags: ["DatasourceIntrospection"],
250
+ transformResponse: (response: any) => unwrapEnvelope<DatasourceIntrospectionApplyResponse>(response),
251
+ }),
252
+ }),
253
+ });
254
+
255
+ export const {
256
+ useGetDatasourceIntrospectionBootstrapQuery,
257
+ useGetDatasourceIntrospectionTablesQuery,
258
+ useGetDatasourceIntrospectionTableDetailQuery,
259
+ usePreviewDatasourceIntrospectionMappingMutation,
260
+ useApplyDatasourceIntrospectionMappingMutation,
261
+ } = datasourceIntrospectionApi;
@@ -0,0 +1,46 @@
1
+ export type DatasourceManagementRecord = {
2
+ name: string;
3
+ displayName: string;
4
+ type: "postgres" | "mysql" | "mssql" | string;
5
+ envPrefix: string;
6
+ isDefault: boolean;
7
+ host: string;
8
+ port: number | null;
9
+ database: string;
10
+ username: string;
11
+ passwordConfigured: boolean;
12
+ synchronize: boolean | null;
13
+ logging: boolean | null;
14
+ moduleFile: string;
15
+ envFile: string;
16
+ advanced: Record<string, any>;
17
+ };
18
+ export type CreateDatasourceManagementPayload = {
19
+ name: string;
20
+ displayName?: string;
21
+ type: "postgres" | "mysql" | "mssql";
22
+ host: string;
23
+ port: number;
24
+ database: string;
25
+ username: string;
26
+ password: string;
27
+ synchronize?: boolean;
28
+ logging?: boolean;
29
+ ssl?: boolean;
30
+ sslRejectUnauthorized?: boolean;
31
+ poolMax?: number;
32
+ connectionTimeoutMs?: number;
33
+ idleTimeoutMs?: number;
34
+ statementTimeoutMs?: number;
35
+ idleInTxTimeoutMs?: number;
36
+ retryAttempts?: number;
37
+ retryDelayMs?: number;
38
+ encrypt?: boolean;
39
+ trustServerCertificate?: boolean;
40
+ };
41
+ export declare const datasourceManagementApi: import("@reduxjs/toolkit/query/react").Api<import("@reduxjs/toolkit/query/react").BaseQueryFn<string | import("@reduxjs/toolkit/query/react").FetchArgs, unknown, import("@reduxjs/toolkit/query/react").FetchBaseQueryError, {}, import("@reduxjs/toolkit/query/react").FetchBaseQueryMeta>, {
42
+ getDatasources: import("@reduxjs/toolkit/query/react").QueryDefinition<void, import("@reduxjs/toolkit/query/react").BaseQueryFn<string | import("@reduxjs/toolkit/query/react").FetchArgs, unknown, import("@reduxjs/toolkit/query/react").FetchBaseQueryError, {}, import("@reduxjs/toolkit/query/react").FetchBaseQueryMeta>, "DatasourceManagement", DatasourceManagementRecord[], "datasourceManagementApi">;
43
+ createDatasource: import("@reduxjs/toolkit/query/react").MutationDefinition<CreateDatasourceManagementPayload, import("@reduxjs/toolkit/query/react").BaseQueryFn<string | import("@reduxjs/toolkit/query/react").FetchArgs, unknown, import("@reduxjs/toolkit/query/react").FetchBaseQueryError, {}, import("@reduxjs/toolkit/query/react").FetchBaseQueryMeta>, "DatasourceManagement", DatasourceManagementRecord, "datasourceManagementApi">;
44
+ }, "datasourceManagementApi", "DatasourceManagement", typeof import("@reduxjs/toolkit/query/react").coreModuleName | typeof import("@reduxjs/toolkit/query/react").reactHooksModuleName>;
45
+ export declare const useGetDatasourcesQuery: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseQuery<import("@reduxjs/toolkit/query/react").QueryDefinition<void, import("@reduxjs/toolkit/query/react").BaseQueryFn<string | import("@reduxjs/toolkit/query/react").FetchArgs, unknown, import("@reduxjs/toolkit/query/react").FetchBaseQueryError, {}, import("@reduxjs/toolkit/query/react").FetchBaseQueryMeta>, "DatasourceManagement", DatasourceManagementRecord[], "datasourceManagementApi">>, useCreateDatasourceMutation: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseMutation<import("@reduxjs/toolkit/query/react").MutationDefinition<CreateDatasourceManagementPayload, import("@reduxjs/toolkit/query/react").BaseQueryFn<string | import("@reduxjs/toolkit/query/react").FetchArgs, unknown, import("@reduxjs/toolkit/query/react").FetchBaseQueryError, {}, import("@reduxjs/toolkit/query/react").FetchBaseQueryMeta>, "DatasourceManagement", DatasourceManagementRecord, "datasourceManagementApi">>;
46
+ //# sourceMappingURL=datasourceManagementApi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"datasourceManagementApi.d.ts","sourceRoot":"","sources":["../../../src/redux/api/datasourceManagementApi.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,0BAA0B,GAAG;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,CAAC;IAC9C,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,WAAW,EAAE,OAAO,GAAG,IAAI,CAAC;IAC5B,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,iCAAiC,GAAG;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,UAAU,GAAG,OAAO,GAAG,OAAO,CAAC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC,CAAC;AAiBF,eAAO,MAAM,uBAAuB;;;wLAoBlC,CAAC;AAEH,eAAO,MACL,sBAAsB,qcACtB,2BAA2B,oeACF,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { createApi } from "@reduxjs/toolkit/query/react";
2
+ import { baseQueryWithAuth } from "./fetchBaseQuery";
3
+ function unwrapEnvelope(payload) {
4
+ var current = payload;
5
+ while (current
6
+ && typeof current === "object"
7
+ && "data" in current
8
+ && current.data !== undefined) {
9
+ current = current.data;
10
+ }
11
+ return current;
12
+ }
13
+ export var datasourceManagementApi = createApi({
14
+ reducerPath: "datasourceManagementApi",
15
+ baseQuery: baseQueryWithAuth,
16
+ tagTypes: ["DatasourceManagement"],
17
+ endpoints: function (builder) { return ({
18
+ getDatasources: builder.query({
19
+ query: function () { return "/datasource-management"; },
20
+ providesTags: ["DatasourceManagement"],
21
+ transformResponse: function (response) { var _a, _b; return (_b = (_a = unwrapEnvelope(response)) === null || _a === void 0 ? void 0 : _a.records) !== null && _b !== void 0 ? _b : []; },
22
+ }),
23
+ createDatasource: builder.mutation({
24
+ query: function (body) { return ({
25
+ url: "/datasource-management",
26
+ method: "POST",
27
+ body: body,
28
+ }); },
29
+ invalidatesTags: ["DatasourceManagement"],
30
+ transformResponse: function (response) { return unwrapEnvelope(response); },
31
+ }),
32
+ }); },
33
+ });
34
+ export var useGetDatasourcesQuery = datasourceManagementApi.useGetDatasourcesQuery, useCreateDatasourceMutation = datasourceManagementApi.useCreateDatasourceMutation;
35
+ //# sourceMappingURL=datasourceManagementApi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"datasourceManagementApi.js","sourceRoot":"","sources":["../../../src/redux/api/datasourceManagementApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AA4CrD,SAAS,cAAc,CAAU,OAAY;IAC3C,IAAI,OAAO,GAAG,OAAO,CAAC;IAEtB,OACE,OAAO;WACJ,OAAO,OAAO,KAAK,QAAQ;WAC3B,MAAM,IAAI,OAAO;WACjB,OAAO,CAAC,IAAI,KAAK,SAAS,EAC7B;QACA,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;KACxB;IAED,OAAO,OAAY,CAAC;AACtB,CAAC;AAED,MAAM,CAAC,IAAM,uBAAuB,GAAG,SAAS,CAAC;IAC/C,WAAW,EAAE,yBAAyB;IACtC,SAAS,EAAE,iBAAiB;IAC5B,QAAQ,EAAE,CAAC,sBAAsB,CAAC;IAClC,SAAS,EAAE,UAAC,OAAO,IAAK,OAAA,CAAC;QACvB,cAAc,EAAE,OAAO,CAAC,KAAK,CAAqC;YAChE,KAAK,EAAE,cAAM,OAAA,wBAAwB,EAAxB,CAAwB;YACrC,YAAY,EAAE,CAAC,sBAAsB,CAAC;YACtC,iBAAiB,EAAE,UAAC,QAAa,gBAAK,OAAA,MAAA,MAAA,cAAc,CAA6C,QAAQ,CAAC,0CAAE,OAAO,mCAAI,EAAE,CAAA,EAAA;SAC1H,CAAC;QACF,gBAAgB,EAAE,OAAO,CAAC,QAAQ,CAAgE;YAChG,KAAK,EAAE,UAAC,IAAI,IAAK,OAAA,CAAC;gBAChB,GAAG,EAAE,wBAAwB;gBAC7B,MAAM,EAAE,MAAM;gBACd,IAAI,MAAA;aACL,CAAC,EAJe,CAIf;YACF,eAAe,EAAE,CAAC,sBAAsB,CAAC;YACzC,iBAAiB,EAAE,UAAC,QAAa,IAAK,OAAA,cAAc,CAA6B,QAAQ,CAAC,EAApD,CAAoD;SAC3F,CAAC;KACH,CAAC,EAfsB,CAetB;CACH,CAAC,CAAC;AAEH,MAAM,CACJ,IAAA,sBAAsB,GAEpB,uBAAuB,uBAFH,EACtB,2BAA2B,GACzB,uBAAuB,4BADE,CACD","sourcesContent":["import { createApi } from \"@reduxjs/toolkit/query/react\";\nimport { baseQueryWithAuth } from \"./fetchBaseQuery\";\n\nexport type DatasourceManagementRecord = {\n name: string;\n displayName: string;\n type: \"postgres\" | \"mysql\" | \"mssql\" | string;\n envPrefix: string;\n isDefault: boolean;\n host: string;\n port: number | null;\n database: string;\n username: string;\n passwordConfigured: boolean;\n synchronize: boolean | null;\n logging: boolean | null;\n moduleFile: string;\n envFile: string;\n advanced: Record<string, any>;\n};\n\nexport type CreateDatasourceManagementPayload = {\n name: string;\n displayName?: string;\n type: \"postgres\" | \"mysql\" | \"mssql\";\n host: string;\n port: number;\n database: string;\n username: string;\n password: string;\n synchronize?: boolean;\n logging?: boolean;\n ssl?: boolean;\n sslRejectUnauthorized?: boolean;\n poolMax?: number;\n connectionTimeoutMs?: number;\n idleTimeoutMs?: number;\n statementTimeoutMs?: number;\n idleInTxTimeoutMs?: number;\n retryAttempts?: number;\n retryDelayMs?: number;\n encrypt?: boolean;\n trustServerCertificate?: boolean;\n};\n\nfunction unwrapEnvelope<T = any>(payload: any): T {\n let current = payload;\n\n while (\n current\n && typeof current === \"object\"\n && \"data\" in current\n && current.data !== undefined\n ) {\n current = current.data;\n }\n\n return current as T;\n}\n\nexport const datasourceManagementApi = createApi({\n reducerPath: \"datasourceManagementApi\",\n baseQuery: baseQueryWithAuth,\n tagTypes: [\"DatasourceManagement\"],\n endpoints: (builder) => ({\n getDatasources: builder.query<DatasourceManagementRecord[], void>({\n query: () => \"/datasource-management\",\n providesTags: [\"DatasourceManagement\"],\n transformResponse: (response: any) => unwrapEnvelope<{ records?: DatasourceManagementRecord[] }>(response)?.records ?? [],\n }),\n createDatasource: builder.mutation<DatasourceManagementRecord, CreateDatasourceManagementPayload>({\n query: (body) => ({\n url: \"/datasource-management\",\n method: \"POST\",\n body,\n }),\n invalidatesTags: [\"DatasourceManagement\"],\n transformResponse: (response: any) => unwrapEnvelope<DatasourceManagementRecord>(response),\n }),\n }),\n});\n\nexport const {\n useGetDatasourcesQuery,\n useCreateDatasourceMutation,\n} = datasourceManagementApi;\n"]}
@@ -0,0 +1,86 @@
1
+ import { createApi } from "@reduxjs/toolkit/query/react";
2
+ import { baseQueryWithAuth } from "./fetchBaseQuery";
3
+
4
+ export type DatasourceManagementRecord = {
5
+ name: string;
6
+ displayName: string;
7
+ type: "postgres" | "mysql" | "mssql" | string;
8
+ envPrefix: string;
9
+ isDefault: boolean;
10
+ host: string;
11
+ port: number | null;
12
+ database: string;
13
+ username: string;
14
+ passwordConfigured: boolean;
15
+ synchronize: boolean | null;
16
+ logging: boolean | null;
17
+ moduleFile: string;
18
+ envFile: string;
19
+ advanced: Record<string, any>;
20
+ };
21
+
22
+ export type CreateDatasourceManagementPayload = {
23
+ name: string;
24
+ displayName?: string;
25
+ type: "postgres" | "mysql" | "mssql";
26
+ host: string;
27
+ port: number;
28
+ database: string;
29
+ username: string;
30
+ password: string;
31
+ synchronize?: boolean;
32
+ logging?: boolean;
33
+ ssl?: boolean;
34
+ sslRejectUnauthorized?: boolean;
35
+ poolMax?: number;
36
+ connectionTimeoutMs?: number;
37
+ idleTimeoutMs?: number;
38
+ statementTimeoutMs?: number;
39
+ idleInTxTimeoutMs?: number;
40
+ retryAttempts?: number;
41
+ retryDelayMs?: number;
42
+ encrypt?: boolean;
43
+ trustServerCertificate?: boolean;
44
+ };
45
+
46
+ function unwrapEnvelope<T = any>(payload: any): T {
47
+ let current = payload;
48
+
49
+ while (
50
+ current
51
+ && typeof current === "object"
52
+ && "data" in current
53
+ && current.data !== undefined
54
+ ) {
55
+ current = current.data;
56
+ }
57
+
58
+ return current as T;
59
+ }
60
+
61
+ export const datasourceManagementApi = createApi({
62
+ reducerPath: "datasourceManagementApi",
63
+ baseQuery: baseQueryWithAuth,
64
+ tagTypes: ["DatasourceManagement"],
65
+ endpoints: (builder) => ({
66
+ getDatasources: builder.query<DatasourceManagementRecord[], void>({
67
+ query: () => "/datasource-management",
68
+ providesTags: ["DatasourceManagement"],
69
+ transformResponse: (response: any) => unwrapEnvelope<{ records?: DatasourceManagementRecord[] }>(response)?.records ?? [],
70
+ }),
71
+ createDatasource: builder.mutation<DatasourceManagementRecord, CreateDatasourceManagementPayload>({
72
+ query: (body) => ({
73
+ url: "/datasource-management",
74
+ method: "POST",
75
+ body,
76
+ }),
77
+ invalidatesTags: ["DatasourceManagement"],
78
+ transformResponse: (response: any) => unwrapEnvelope<DatasourceManagementRecord>(response),
79
+ }),
80
+ }),
81
+ });
82
+
83
+ export const {
84
+ useGetDatasourcesQuery,
85
+ useCreateDatasourceMutation,
86
+ } = datasourceManagementApi;
@@ -1 +1 @@
1
- {"version":3,"file":"StoreProvider.d.ts","sourceRoot":"","sources":["../../../src/redux/store/StoreProvider.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,EAAE,gBAAgB,EAAmB,MAAM,oBAAoB,CAAC;AAWvE,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,QAAQ,EACR,WAAW,GACZ,EAAE;IACD,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,WAAW,CAAC,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IAC3E,WAAW,CAAC,EAAE,WAAW,CAAC,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;CAClF,2CA6BA"}
1
+ {"version":3,"file":"StoreProvider.d.ts","sourceRoot":"","sources":["../../../src/redux/store/StoreProvider.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,EAAE,gBAAgB,EAAmB,MAAM,oBAAoB,CAAC;AAYvE,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,QAAQ,EACR,WAAW,GACZ,EAAE;IACD,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,WAAW,CAAC,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IAC3E,WAAW,CAAC,EAAE,WAAW,CAAC,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;CAClF,2CAoCA"}
@@ -40,6 +40,7 @@ import { Provider } from "react-redux";
40
40
  import { createSolidStore } from "./createSolidStore";
41
41
  import { eventBus, AppEvents } from "../../helpers/eventBus";
42
42
  import { solidGet } from "../../http/solidHttp";
43
+ import { SolidLoadingState } from "../../components/common/SolidLoadingState";
43
44
  function fetchEntities() {
44
45
  var _a;
45
46
  return __awaiter(this, void 0, void 0, function () {
@@ -80,8 +81,9 @@ export function StoreProvider(_a) {
80
81
  };
81
82
  }, [reducers, middlewares]);
82
83
  var content = useMemo(function () {
83
- if (!store)
84
- return _jsx("div", { children: "Loading..." });
84
+ if (!store) {
85
+ return (_jsx(SolidLoadingState, { title: "Preparing workspace", description: "We are loading the application shell and getting your workspace ready." }));
86
+ }
85
87
  return _jsx(Provider, { store: store, children: children });
86
88
  }, [store, children]);
87
89
  return content;
@@ -1 +1 @@
1
- {"version":3,"file":"StoreProvider.js","sourceRoot":"","sources":["../../../src/redux/store/StoreProvider.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAErD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAmB,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,SAAe,aAAa;;;;;;wBACT,qBAAM,QAAQ,CAAC,wBAAwB,CAAC,EAAA;;oBAAnD,QAAQ,GAAG,SAAwC;oBACnD,IAAI,GAAG,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,CAAC;oBACtB,OAAO,GAAG,CAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,0CAAE,OAAO,KAAI,EAAE,CAAC;oBAC1C,sBAAO,OAAO,CAAC,GAAG,CAAC,UAAC,CAA2B,IAAK,OAAA,CAAC,CAAC,YAAY,EAAd,CAAc,CAAC,EAAC;;;;CACrE;AAED,MAAM,UAAU,aAAa,CAAC,EAQ7B;QAPC,QAAQ,cAAA,EACR,QAAQ,cAAA,EACR,WAAW,iBAAA;IAML,IAAA,KAAoB,QAAQ,CAAoB,IAAI,CAAC,EAApD,KAAK,QAAA,EAAE,QAAQ,QAAqC,CAAC;IAE5D,SAAS,CAAC;QACR,IAAI,OAAO,GAAG,IAAI,CAAC;QACnB,aAAa,EAAE;aACZ,IAAI,CAAC,UAAC,QAAQ;YACb,IAAI,CAAC,OAAO;gBAAE,OAAO;YACrB,QAAQ,CAAC,gBAAgB,CAAC,EAAE,QAAQ,UAAA,EAAE,QAAQ,UAAA,EAAE,WAAW,aAAA,EAAE,CAAC,CAAC,CAAC;QAClE,CAAC,CAAC;aACD,KAAK,CAAC;YACL,IAAI,CAAC,OAAO;gBAAE,OAAO;YACrB,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE;gBACnC,OAAO,EAAE,qDAAqD;aAC/D,CAAC,CAAC;YACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,UAAA,EAAE,WAAW,aAAA,EAAE,CAAC,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;QAEL,OAAO;YACL,OAAO,GAAG,KAAK,CAAC;QAClB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;IAE5B,IAAM,OAAO,GAAG,OAAO,CAAC;QACtB,IAAI,CAAC,KAAK;YAAE,OAAO,uCAAqB,CAAC;QACzC,OAAO,KAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YAAG,QAAQ,GAAY,CAAC;IACvD,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEtB,OAAO,OAAO,CAAC;AACjB,CAAC","sourcesContent":["import { useEffect, useMemo, useState } from \"react\";\nimport type { ReactNode } from \"react\";\nimport { Provider } from \"react-redux\";\nimport { createSolidStore, type SolidStore } from \"./createSolidStore\";\nimport { eventBus, AppEvents } from \"../../helpers/eventBus\";\nimport { solidGet } from \"../../http/solidHttp\";\n\nasync function fetchEntities(): Promise<string[]> {\n const response = await solidGet(\"/model-metadata/public\");\n const data = response?.data;\n const records = data?.data?.records || [];\n return records.map((r: { singularName: string }) => r.singularName);\n}\n\nexport function StoreProvider({\n children,\n reducers,\n middlewares,\n}: {\n children: ReactNode;\n reducers?: NonNullable<Parameters<typeof createSolidStore>[0]>[\"reducers\"];\n middlewares?: NonNullable<Parameters<typeof createSolidStore>[0]>[\"middlewares\"];\n}) {\n const [store, setStore] = useState<SolidStore | null>(null);\n\n useEffect(() => {\n let mounted = true;\n fetchEntities()\n .then((entities) => {\n if (!mounted) return;\n setStore(createSolidStore({ entities, reducers, middlewares }));\n })\n .catch(() => {\n if (!mounted) return;\n eventBus.emit(AppEvents.GlobalError, {\n message: \"Unable to reach the server. Please try again later.\",\n });\n setStore(createSolidStore({ entities: [], reducers, middlewares }));\n });\n\n return () => {\n mounted = false;\n };\n }, [reducers, middlewares]);\n\n const content = useMemo(() => {\n if (!store) return <div>Loading...</div>;\n return <Provider store={store}>{children}</Provider>;\n }, [store, children]);\n\n return content;\n}\n"]}
1
+ {"version":3,"file":"StoreProvider.js","sourceRoot":"","sources":["../../../src/redux/store/StoreProvider.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAErD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAmB,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAE9E,SAAe,aAAa;;;;;;wBACT,qBAAM,QAAQ,CAAC,wBAAwB,CAAC,EAAA;;oBAAnD,QAAQ,GAAG,SAAwC;oBACnD,IAAI,GAAG,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,CAAC;oBACtB,OAAO,GAAG,CAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,0CAAE,OAAO,KAAI,EAAE,CAAC;oBAC1C,sBAAO,OAAO,CAAC,GAAG,CAAC,UAAC,CAA2B,IAAK,OAAA,CAAC,CAAC,YAAY,EAAd,CAAc,CAAC,EAAC;;;;CACrE;AAED,MAAM,UAAU,aAAa,CAAC,EAQ7B;QAPC,QAAQ,cAAA,EACR,QAAQ,cAAA,EACR,WAAW,iBAAA;IAML,IAAA,KAAoB,QAAQ,CAAoB,IAAI,CAAC,EAApD,KAAK,QAAA,EAAE,QAAQ,QAAqC,CAAC;IAE5D,SAAS,CAAC;QACR,IAAI,OAAO,GAAG,IAAI,CAAC;QACnB,aAAa,EAAE;aACZ,IAAI,CAAC,UAAC,QAAQ;YACb,IAAI,CAAC,OAAO;gBAAE,OAAO;YACrB,QAAQ,CAAC,gBAAgB,CAAC,EAAE,QAAQ,UAAA,EAAE,QAAQ,UAAA,EAAE,WAAW,aAAA,EAAE,CAAC,CAAC,CAAC;QAClE,CAAC,CAAC;aACD,KAAK,CAAC;YACL,IAAI,CAAC,OAAO;gBAAE,OAAO;YACrB,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE;gBACnC,OAAO,EAAE,qDAAqD;aAC/D,CAAC,CAAC;YACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,UAAA,EAAE,WAAW,aAAA,EAAE,CAAC,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;QAEL,OAAO;YACL,OAAO,GAAG,KAAK,CAAC;QAClB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;IAE5B,IAAM,OAAO,GAAG,OAAO,CAAC;QACtB,IAAI,CAAC,KAAK,EAAE;YACV,OAAO,CACL,KAAC,iBAAiB,IAChB,KAAK,EAAC,qBAAqB,EAC3B,WAAW,EAAC,wEAAwE,GACpF,CACH,CAAC;SACH;QACD,OAAO,KAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YAAG,QAAQ,GAAY,CAAC;IACvD,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEtB,OAAO,OAAO,CAAC;AACjB,CAAC","sourcesContent":["import { useEffect, useMemo, useState } from \"react\";\nimport type { ReactNode } from \"react\";\nimport { Provider } from \"react-redux\";\nimport { createSolidStore, type SolidStore } from \"./createSolidStore\";\nimport { eventBus, AppEvents } from \"../../helpers/eventBus\";\nimport { solidGet } from \"../../http/solidHttp\";\nimport { SolidLoadingState } from \"../../components/common/SolidLoadingState\";\n\nasync function fetchEntities(): Promise<string[]> {\n const response = await solidGet(\"/model-metadata/public\");\n const data = response?.data;\n const records = data?.data?.records || [];\n return records.map((r: { singularName: string }) => r.singularName);\n}\n\nexport function StoreProvider({\n children,\n reducers,\n middlewares,\n}: {\n children: ReactNode;\n reducers?: NonNullable<Parameters<typeof createSolidStore>[0]>[\"reducers\"];\n middlewares?: NonNullable<Parameters<typeof createSolidStore>[0]>[\"middlewares\"];\n}) {\n const [store, setStore] = useState<SolidStore | null>(null);\n\n useEffect(() => {\n let mounted = true;\n fetchEntities()\n .then((entities) => {\n if (!mounted) return;\n setStore(createSolidStore({ entities, reducers, middlewares }));\n })\n .catch(() => {\n if (!mounted) return;\n eventBus.emit(AppEvents.GlobalError, {\n message: \"Unable to reach the server. Please try again later.\",\n });\n setStore(createSolidStore({ entities: [], reducers, middlewares }));\n });\n\n return () => {\n mounted = false;\n };\n }, [reducers, middlewares]);\n\n const content = useMemo(() => {\n if (!store) {\n return (\n <SolidLoadingState\n title=\"Preparing workspace\"\n description=\"We are loading the application shell and getting your workspace ready.\"\n />\n );\n }\n return <Provider store={store}>{children}</Provider>;\n }, [store, children]);\n\n return content;\n}\n"]}
@@ -4,6 +4,7 @@ import { Provider } from "react-redux";
4
4
  import { createSolidStore, type SolidStore } from "./createSolidStore";
5
5
  import { eventBus, AppEvents } from "../../helpers/eventBus";
6
6
  import { solidGet } from "../../http/solidHttp";
7
+ import { SolidLoadingState } from "../../components/common/SolidLoadingState";
7
8
 
8
9
  async function fetchEntities(): Promise<string[]> {
9
10
  const response = await solidGet("/model-metadata/public");
@@ -44,7 +45,14 @@ export function StoreProvider({
44
45
  }, [reducers, middlewares]);
45
46
 
46
47
  const content = useMemo(() => {
47
- if (!store) return <div>Loading...</div>;
48
+ if (!store) {
49
+ return (
50
+ <SolidLoadingState
51
+ title="Preparing workspace"
52
+ description="We are loading the application shell and getting your workspace ready."
53
+ />
54
+ );
55
+ }
48
56
  return <Provider store={store}>{children}</Provider>;
49
57
  }, [store, children]);
50
58
 
@@ -180,6 +180,29 @@ export declare const solidApiSlices: (import("@reduxjs/toolkit/query").Api<impor
180
180
  deleteMultipleMediaStorageProviders: import("@reduxjs/toolkit/query").MutationDefinition<any, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@reduxjs/toolkit/query").FetchArgs, unknown, import("@reduxjs/toolkit/query").FetchBaseQueryError, {}, import("@reduxjs/toolkit/query").FetchBaseQueryMeta>, never, any, "mediaStorageProviderApi">;
181
181
  deleteMediaStorageProivder: import("@reduxjs/toolkit/query").MutationDefinition<any, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@reduxjs/toolkit/query").FetchArgs, unknown, import("@reduxjs/toolkit/query").FetchBaseQueryError, {}, import("@reduxjs/toolkit/query").FetchBaseQueryMeta>, never, any, "mediaStorageProviderApi">;
182
182
  }, "mediaStorageProviderApi", never, typeof import("@reduxjs/toolkit/query").coreModuleName | typeof import("@reduxjs/toolkit/query/react").reactHooksModuleName> | import("@reduxjs/toolkit/query").Api<import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@reduxjs/toolkit/query").FetchArgs, unknown, import("@reduxjs/toolkit/query").FetchBaseQueryError, {}, import("@reduxjs/toolkit/query").FetchBaseQueryMeta>, {
183
+ getDatasources: import("@reduxjs/toolkit/query").QueryDefinition<void, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@reduxjs/toolkit/query").FetchArgs, unknown, import("@reduxjs/toolkit/query").FetchBaseQueryError, {}, import("@reduxjs/toolkit/query").FetchBaseQueryMeta>, "DatasourceManagement", import("../api/datasourceManagementApi").DatasourceManagementRecord[], "datasourceManagementApi">;
184
+ createDatasource: import("@reduxjs/toolkit/query").MutationDefinition<import("../api/datasourceManagementApi").CreateDatasourceManagementPayload, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@reduxjs/toolkit/query").FetchArgs, unknown, import("@reduxjs/toolkit/query").FetchBaseQueryError, {}, import("@reduxjs/toolkit/query").FetchBaseQueryMeta>, "DatasourceManagement", import("../api/datasourceManagementApi").DatasourceManagementRecord, "datasourceManagementApi">;
185
+ }, "datasourceManagementApi", "DatasourceManagement", typeof import("@reduxjs/toolkit/query").coreModuleName | typeof import("@reduxjs/toolkit/query/react").reactHooksModuleName> | import("@reduxjs/toolkit/query").Api<import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@reduxjs/toolkit/query").FetchArgs, unknown, import("@reduxjs/toolkit/query").FetchBaseQueryError, {}, import("@reduxjs/toolkit/query").FetchBaseQueryMeta>, {
186
+ getDatasourceIntrospectionBootstrap: import("@reduxjs/toolkit/query").QueryDefinition<number, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@reduxjs/toolkit/query").FetchArgs, unknown, import("@reduxjs/toolkit/query").FetchBaseQueryError, {}, import("@reduxjs/toolkit/query").FetchBaseQueryMeta>, "DatasourceIntrospection", import("../api/datasourceIntrospectionApi").DatasourceIntrospectionBootstrap, "datasourceIntrospectionApi">;
187
+ getDatasourceIntrospectionTables: import("@reduxjs/toolkit/query").QueryDefinition<{
188
+ moduleId: number;
189
+ datasource: string;
190
+ }, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@reduxjs/toolkit/query").FetchArgs, unknown, import("@reduxjs/toolkit/query").FetchBaseQueryError, {}, import("@reduxjs/toolkit/query").FetchBaseQueryMeta>, "DatasourceIntrospection", import("../api/datasourceIntrospectionApi").DatasourceIntrospectionTablesResponse, "datasourceIntrospectionApi">;
191
+ getDatasourceIntrospectionTableDetail: import("@reduxjs/toolkit/query").QueryDefinition<{
192
+ moduleId: number;
193
+ datasource: string;
194
+ table: string;
195
+ schema?: string | null | undefined;
196
+ }, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@reduxjs/toolkit/query").FetchArgs, unknown, import("@reduxjs/toolkit/query").FetchBaseQueryError, {}, import("@reduxjs/toolkit/query").FetchBaseQueryMeta>, "DatasourceIntrospection", import("../api/datasourceIntrospectionApi").DatasourceIntrospectionTableDetail, "datasourceIntrospectionApi">;
197
+ previewDatasourceIntrospectionMapping: import("@reduxjs/toolkit/query").MutationDefinition<{
198
+ moduleId: number;
199
+ payload: import("../api/datasourceIntrospectionApi").DatasourceIntrospectionMappingRequest;
200
+ }, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@reduxjs/toolkit/query").FetchArgs, unknown, import("@reduxjs/toolkit/query").FetchBaseQueryError, {}, import("@reduxjs/toolkit/query").FetchBaseQueryMeta>, "DatasourceIntrospection", import("../api/datasourceIntrospectionApi").DatasourceIntrospectionMappingPreview, "datasourceIntrospectionApi">;
201
+ applyDatasourceIntrospectionMapping: import("@reduxjs/toolkit/query").MutationDefinition<{
202
+ moduleId: number;
203
+ payload: import("../api/datasourceIntrospectionApi").DatasourceIntrospectionMappingRequest;
204
+ }, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@reduxjs/toolkit/query").FetchArgs, unknown, import("@reduxjs/toolkit/query").FetchBaseQueryError, {}, import("@reduxjs/toolkit/query").FetchBaseQueryMeta>, "DatasourceIntrospection", import("../api/datasourceIntrospectionApi").DatasourceIntrospectionApplyResponse, "datasourceIntrospectionApi">;
205
+ }, "datasourceIntrospectionApi", "DatasourceIntrospection", typeof import("@reduxjs/toolkit/query").coreModuleName | typeof import("@reduxjs/toolkit/query/react").reactHooksModuleName> | import("@reduxjs/toolkit/query").Api<import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@reduxjs/toolkit/query").FetchArgs, unknown, import("@reduxjs/toolkit/query").FetchBaseQueryError, {}, import("@reduxjs/toolkit/query").FetchBaseQueryMeta>, {
183
206
  getroles: import("@reduxjs/toolkit/query").QueryDefinition<any, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@reduxjs/toolkit/query").FetchArgs, unknown, import("@reduxjs/toolkit/query").FetchBaseQueryError, {}, import("@reduxjs/toolkit/query").FetchBaseQueryMeta>, never, any, "roleApi">;
184
207
  getroleById: import("@reduxjs/toolkit/query").QueryDefinition<any, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@reduxjs/toolkit/query").FetchArgs, unknown, import("@reduxjs/toolkit/query").FetchBaseQueryError, {}, import("@reduxjs/toolkit/query").FetchBaseQueryMeta>, never, any, "roleApi">;
185
208
  createrole: import("@reduxjs/toolkit/query").MutationDefinition<any, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@reduxjs/toolkit/query").FetchArgs, unknown, import("@reduxjs/toolkit/query").FetchBaseQueryError, {}, import("@reduxjs/toolkit/query").FetchBaseQueryMeta>, never, any, "roleApi">;
@@ -1 +1 @@
1
- {"version":3,"file":"defaultStoreConfig.d.ts","sourceRoot":"","sources":["../../../src/redux/store/defaultStoreConfig.ts"],"names":[],"mappings":"AA6BA,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yJAoB1B,CAAC;AAGF,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;CASzB,CAAC"}
1
+ {"version":3,"file":"defaultStoreConfig.d.ts","sourceRoot":"","sources":["../../../src/redux/store/defaultStoreConfig.ts"],"names":[],"mappings":"AA+BA,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yJAsB1B,CAAC;AAGF,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;CASzB,CAAC"}
@@ -25,6 +25,8 @@ import { solidViewsApi } from "../api/solidViewApi";
25
25
  import { userApi } from "../api/userApi";
26
26
  import { apiKeyApi } from "../api/apiKeyApi";
27
27
  import { dashboardRuntimeApi } from "../api/dashboardRuntimeApi";
28
+ import { datasourceManagementApi } from "../api/datasourceManagementApi";
29
+ import { datasourceIntrospectionApi } from "../api/datasourceIntrospectionApi";
28
30
  // 1. Export all APIs in one array
29
31
  export var solidApiSlices = [
30
32
  authApi,
@@ -46,6 +48,8 @@ export var solidApiSlices = [
46
48
  aiInteractionApi,
47
49
  apiKeyApi,
48
50
  dashboardRuntimeApi,
51
+ datasourceManagementApi,
52
+ datasourceIntrospectionApi,
49
53
  ];
50
54
  // 2. Export default reducers
51
55
  export var solidReducers = {
@@ -1 +1 @@
1
- {"version":3,"file":"defaultStoreConfig.js","sourceRoot":"","sources":["../../../src/redux/store/defaultStoreConfig.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,MAAM,uBAAuB,CAAC;AAC1D,OAAO,eAAe,MAAM,2BAA2B,CAAC;AACxD,OAAO,aAAa,MAAM,yBAAyB,CAAC;AACpD,OAAO,YAAY,MAAM,wBAAwB,CAAC;AAClD,OAAO,YAAY,MAAM,wBAAwB,CAAC;AAClD,OAAO,YAAY,MAAM,wBAAwB,CAAC;AAClD,OAAO,WAAW,MAAM,uBAAuB,CAAC;AAChD,OAAO,kBAAkB,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE,kCAAkC;AAClC,MAAM,CAAC,IAAM,cAAc,GAAG;IAC1B,OAAO;IACP,OAAO;IACP,UAAU;IACV,SAAS;IACT,SAAS;IACT,uBAAuB;IACvB,QAAQ;IACR,aAAa;IACb,eAAe;IACf,aAAa;IACb,gBAAgB;IAChB,OAAO;IACP,sBAAsB;IACtB,iBAAiB;IACjB,eAAe;IACf,oBAAoB;IACpB,gBAAgB;IAChB,SAAS;IACT,mBAAmB;CACtB,CAAC;AAEF,6BAA6B;AAC7B,MAAM,CAAC,IAAM,aAAa,GAAG;IACzB,cAAc,EAAE,qBAAqB;IACrC,IAAI,EAAE,WAAW;IACjB,KAAK,EAAE,YAAY;IACnB,KAAK,EAAE,YAAY;IACnB,WAAW,EAAE,aAAa;IAC1B,aAAa,EAAE,eAAe;IAC9B,WAAW,EAAE,kBAAkB;IAC/B,KAAK,EAAE,YAAY;CACtB,CAAC","sourcesContent":["import authenticationReducer from \"../features/authSlice\";\nimport dataViewReducer from \"../features/dataViewSlice\";\nimport navbarReducer from \"../features/navbarSlice\";\nimport popupReducer from \"../features/popupSlice\";\nimport themeReducer from \"../features/themeSlice\";\nimport toastReducer from \"../features/toastSlice\";\nimport userReducer from \"../features/userSlice\";\nimport solidStudioReducer from \"../features/solidStudioSlice\";\nimport { authApi } from \"../api/authApi\";\nimport { aiInteractionApi } from \"../api/aiInteractionApi\";\nimport { exportTemplateApi } from \"../api/exportTemplateApi\";\nimport { fieldsApi } from \"../api/fieldApi\";\nimport { importTransactionApi } from \"../api/importTransactionApi\";\nimport { mediaApi } from \"../api/mediaApi\";\nimport { mediaStorageProviderApi } from \"../api/mediaStorageProviderApi\";\nimport { modulesApi } from \"../api/moduleApi\";\nimport { modelsApi } from \"../api/modelApi\";\nimport { roleApi } from \"../api/roleApi\";\nimport { solidActionsApi } from \"../api/solidActionApi\";\nimport { solidChatterMessageApi } from \"../api/solidChatterMessageApi\";\nimport { solidMenusApi } from \"../api/solidMenuApi\";\nimport { solidServiceApi } from \"../api/solidServiceApi\";\nimport { solidSettingsApi } from \"../api/solidSettingsApi\";\nimport { solidViewsApi } from \"../api/solidViewApi\";\nimport { userApi } from \"../api/userApi\";\nimport { apiKeyApi } from \"../api/apiKeyApi\";\nimport { dashboardRuntimeApi } from \"../api/dashboardRuntimeApi\";\n\n// 1. Export all APIs in one array\nexport const solidApiSlices = [\n authApi,\n userApi,\n modulesApi,\n modelsApi,\n fieldsApi,\n mediaStorageProviderApi,\n mediaApi,\n solidViewsApi,\n solidActionsApi,\n solidMenusApi,\n solidSettingsApi,\n roleApi,\n solidChatterMessageApi,\n exportTemplateApi,\n solidServiceApi,\n importTransactionApi,\n aiInteractionApi,\n apiKeyApi,\n dashboardRuntimeApi,\n];\n\n// 2. Export default reducers\nexport const solidReducers = {\n authentication: authenticationReducer,\n auth: userReducer,\n theme: themeReducer,\n popup: popupReducer,\n navbarState: navbarReducer,\n dataViewState: dataViewReducer,\n solidStudio: solidStudioReducer,\n toast: toastReducer,\n}; \n"]}
1
+ {"version":3,"file":"defaultStoreConfig.js","sourceRoot":"","sources":["../../../src/redux/store/defaultStoreConfig.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,MAAM,uBAAuB,CAAC;AAC1D,OAAO,eAAe,MAAM,2BAA2B,CAAC;AACxD,OAAO,aAAa,MAAM,yBAAyB,CAAC;AACpD,OAAO,YAAY,MAAM,wBAAwB,CAAC;AAClD,OAAO,YAAY,MAAM,wBAAwB,CAAC;AAClD,OAAO,YAAY,MAAM,wBAAwB,CAAC;AAClD,OAAO,WAAW,MAAM,uBAAuB,CAAC;AAChD,OAAO,kBAAkB,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAE/E,kCAAkC;AAClC,MAAM,CAAC,IAAM,cAAc,GAAG;IAC1B,OAAO;IACP,OAAO;IACP,UAAU;IACV,SAAS;IACT,SAAS;IACT,uBAAuB;IACvB,QAAQ;IACR,aAAa;IACb,eAAe;IACf,aAAa;IACb,gBAAgB;IAChB,OAAO;IACP,sBAAsB;IACtB,iBAAiB;IACjB,eAAe;IACf,oBAAoB;IACpB,gBAAgB;IAChB,SAAS;IACT,mBAAmB;IACnB,uBAAuB;IACvB,0BAA0B;CAC7B,CAAC;AAEF,6BAA6B;AAC7B,MAAM,CAAC,IAAM,aAAa,GAAG;IACzB,cAAc,EAAE,qBAAqB;IACrC,IAAI,EAAE,WAAW;IACjB,KAAK,EAAE,YAAY;IACnB,KAAK,EAAE,YAAY;IACnB,WAAW,EAAE,aAAa;IAC1B,aAAa,EAAE,eAAe;IAC9B,WAAW,EAAE,kBAAkB;IAC/B,KAAK,EAAE,YAAY;CACtB,CAAC","sourcesContent":["import authenticationReducer from \"../features/authSlice\";\nimport dataViewReducer from \"../features/dataViewSlice\";\nimport navbarReducer from \"../features/navbarSlice\";\nimport popupReducer from \"../features/popupSlice\";\nimport themeReducer from \"../features/themeSlice\";\nimport toastReducer from \"../features/toastSlice\";\nimport userReducer from \"../features/userSlice\";\nimport solidStudioReducer from \"../features/solidStudioSlice\";\nimport { authApi } from \"../api/authApi\";\nimport { aiInteractionApi } from \"../api/aiInteractionApi\";\nimport { exportTemplateApi } from \"../api/exportTemplateApi\";\nimport { fieldsApi } from \"../api/fieldApi\";\nimport { importTransactionApi } from \"../api/importTransactionApi\";\nimport { mediaApi } from \"../api/mediaApi\";\nimport { mediaStorageProviderApi } from \"../api/mediaStorageProviderApi\";\nimport { modulesApi } from \"../api/moduleApi\";\nimport { modelsApi } from \"../api/modelApi\";\nimport { roleApi } from \"../api/roleApi\";\nimport { solidActionsApi } from \"../api/solidActionApi\";\nimport { solidChatterMessageApi } from \"../api/solidChatterMessageApi\";\nimport { solidMenusApi } from \"../api/solidMenuApi\";\nimport { solidServiceApi } from \"../api/solidServiceApi\";\nimport { solidSettingsApi } from \"../api/solidSettingsApi\";\nimport { solidViewsApi } from \"../api/solidViewApi\";\nimport { userApi } from \"../api/userApi\";\nimport { apiKeyApi } from \"../api/apiKeyApi\";\nimport { dashboardRuntimeApi } from \"../api/dashboardRuntimeApi\";\nimport { datasourceManagementApi } from \"../api/datasourceManagementApi\";\nimport { datasourceIntrospectionApi } from \"../api/datasourceIntrospectionApi\";\n\n// 1. Export all APIs in one array\nexport const solidApiSlices = [\n authApi,\n userApi,\n modulesApi,\n modelsApi,\n fieldsApi,\n mediaStorageProviderApi,\n mediaApi,\n solidViewsApi,\n solidActionsApi,\n solidMenusApi,\n solidSettingsApi,\n roleApi,\n solidChatterMessageApi,\n exportTemplateApi,\n solidServiceApi,\n importTransactionApi,\n aiInteractionApi,\n apiKeyApi,\n dashboardRuntimeApi,\n datasourceManagementApi,\n datasourceIntrospectionApi,\n];\n\n// 2. Export default reducers\nexport const solidReducers = {\n authentication: authenticationReducer,\n auth: userReducer,\n theme: themeReducer,\n popup: popupReducer,\n navbarState: navbarReducer,\n dataViewState: dataViewReducer,\n solidStudio: solidStudioReducer,\n toast: toastReducer,\n}; \n"]}
@@ -25,6 +25,8 @@ import { solidViewsApi } from "../api/solidViewApi";
25
25
  import { userApi } from "../api/userApi";
26
26
  import { apiKeyApi } from "../api/apiKeyApi";
27
27
  import { dashboardRuntimeApi } from "../api/dashboardRuntimeApi";
28
+ import { datasourceManagementApi } from "../api/datasourceManagementApi";
29
+ import { datasourceIntrospectionApi } from "../api/datasourceIntrospectionApi";
28
30
 
29
31
  // 1. Export all APIs in one array
30
32
  export const solidApiSlices = [
@@ -47,6 +49,8 @@ export const solidApiSlices = [
47
49
  aiInteractionApi,
48
50
  apiKeyApi,
49
51
  dashboardRuntimeApi,
52
+ datasourceManagementApi,
53
+ datasourceIntrospectionApi,
50
54
  ];
51
55
 
52
56
  // 2. Export default reducers