@solidxai/core-ui 0.1.11 → 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 (105) hide show
  1. package/dist/adapters/auth/signInWithOAuthAccessCode.d.ts +1 -1
  2. package/dist/adapters/auth/signInWithOAuthAccessCode.d.ts.map +1 -1
  3. package/dist/adapters/auth/signInWithOAuthAccessCode.js.map +1 -1
  4. package/dist/adapters/auth/signInWithOAuthAccessCode.ts +1 -1
  5. package/dist/components/auth/SolidLogin.d.ts.map +1 -1
  6. package/dist/components/auth/SolidLogin.js +10 -6
  7. package/dist/components/auth/SolidLogin.js.map +1 -1
  8. package/dist/components/auth/SolidLogin.tsx +19 -3
  9. package/dist/components/auth/SolidRegister.d.ts.map +1 -1
  10. package/dist/components/auth/SolidRegister.js +12 -8
  11. package/dist/components/auth/SolidRegister.js.map +1 -1
  12. package/dist/components/auth/SolidRegister.tsx +19 -3
  13. package/dist/components/common/GeneralSettings.d.ts.map +1 -1
  14. package/dist/components/common/GeneralSettings.js +46 -43
  15. package/dist/components/common/GeneralSettings.js.map +1 -1
  16. package/dist/components/common/GeneralSettings.tsx +22 -0
  17. package/dist/components/common/SocialMediaLogin.d.ts +2 -1
  18. package/dist/components/common/SocialMediaLogin.d.ts.map +1 -1
  19. package/dist/components/common/SocialMediaLogin.js +6 -6
  20. package/dist/components/common/SocialMediaLogin.js.map +1 -1
  21. package/dist/components/common/SocialMediaLogin.tsx +36 -8
  22. package/dist/components/common/SolidLoadingState.d.ts +10 -0
  23. package/dist/components/common/SolidLoadingState.d.ts.map +1 -0
  24. package/dist/components/common/SolidLoadingState.js +8 -0
  25. package/dist/components/common/SolidLoadingState.js.map +1 -0
  26. package/dist/components/common/SolidLoadingState.module.css +56 -0
  27. package/dist/components/common/SolidLoadingState.tsx +28 -0
  28. package/dist/components/core/json/SolidJsonEditor.css +195 -0
  29. package/dist/components/core/json/SolidJsonEditor.d.ts +19 -0
  30. package/dist/components/core/json/SolidJsonEditor.d.ts.map +1 -0
  31. package/dist/components/core/json/SolidJsonEditor.js +109 -0
  32. package/dist/components/core/json/SolidJsonEditor.js.map +1 -0
  33. package/dist/components/core/json/SolidJsonEditor.tsx +150 -0
  34. package/dist/components/core/module/CreateModule.css +70 -2
  35. package/dist/components/core/module/CreateModule.d.ts.map +1 -1
  36. package/dist/components/core/module/CreateModule.js +2 -2
  37. package/dist/components/core/module/CreateModule.js.map +1 -1
  38. package/dist/components/core/module/CreateModule.tsx +13 -1
  39. package/dist/components/shad-cn-ui/SolidTabs.d.ts.map +1 -1
  40. package/dist/components/shad-cn-ui/SolidTabs.js +1 -1
  41. package/dist/components/shad-cn-ui/SolidTabs.js.map +1 -1
  42. package/dist/components/shad-cn-ui/SolidTabs.tsx +1 -0
  43. package/dist/index.d.ts +5 -0
  44. package/dist/index.d.ts.map +1 -1
  45. package/dist/index.js +5 -0
  46. package/dist/index.js.map +1 -1
  47. package/dist/index.ts +16 -0
  48. package/dist/redux/api/datasourceIntrospectionApi.d.ts +203 -0
  49. package/dist/redux/api/datasourceIntrospectionApi.d.ts.map +1 -0
  50. package/dist/redux/api/datasourceIntrospectionApi.js +71 -0
  51. package/dist/redux/api/datasourceIntrospectionApi.js.map +1 -0
  52. package/dist/redux/api/datasourceIntrospectionApi.ts +261 -0
  53. package/dist/redux/api/datasourceManagementApi.d.ts +46 -0
  54. package/dist/redux/api/datasourceManagementApi.d.ts.map +1 -0
  55. package/dist/redux/api/datasourceManagementApi.js +35 -0
  56. package/dist/redux/api/datasourceManagementApi.js.map +1 -0
  57. package/dist/redux/api/datasourceManagementApi.ts +86 -0
  58. package/dist/redux/store/StoreProvider.d.ts.map +1 -1
  59. package/dist/redux/store/StoreProvider.js +4 -2
  60. package/dist/redux/store/StoreProvider.js.map +1 -1
  61. package/dist/redux/store/StoreProvider.tsx +9 -1
  62. package/dist/redux/store/defaultStoreConfig.d.ts +23 -0
  63. package/dist/redux/store/defaultStoreConfig.d.ts.map +1 -1
  64. package/dist/redux/store/defaultStoreConfig.js +4 -0
  65. package/dist/redux/store/defaultStoreConfig.js.map +1 -1
  66. package/dist/redux/store/defaultStoreConfig.ts +4 -0
  67. package/dist/resources/solid-custom.css +72 -18
  68. package/dist/routes/guards/AdminGuard.d.ts.map +1 -1
  69. package/dist/routes/guards/AdminGuard.js +2 -1
  70. package/dist/routes/guards/AdminGuard.js.map +1 -1
  71. package/dist/routes/guards/AdminGuard.tsx +7 -1
  72. package/dist/routes/guards/AuthGuard.d.ts.map +1 -1
  73. package/dist/routes/guards/AuthGuard.js +2 -1
  74. package/dist/routes/guards/AuthGuard.js.map +1 -1
  75. package/dist/routes/guards/AuthGuard.tsx +8 -2
  76. package/dist/routes/guards/GuestGuard.d.ts.map +1 -1
  77. package/dist/routes/guards/GuestGuard.js +2 -1
  78. package/dist/routes/guards/GuestGuard.js.map +1 -1
  79. package/dist/routes/guards/GuestGuard.tsx +8 -2
  80. package/dist/routes/pages/admin/core/DashboardPage.d.ts.map +1 -1
  81. package/dist/routes/pages/admin/core/DashboardPage.js +7 -5
  82. package/dist/routes/pages/admin/core/DashboardPage.js.map +1 -1
  83. package/dist/routes/pages/admin/core/DashboardPage.module.css +18 -0
  84. package/dist/routes/pages/admin/core/DashboardPage.tsx +50 -32
  85. package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.css +828 -0
  86. package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.d.ts +3 -0
  87. package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.d.ts.map +1 -0
  88. package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.js +947 -0
  89. package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.js.map +1 -0
  90. package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.tsx +1719 -0
  91. package/dist/routes/pages/admin/core/DatasourcesPage.css +337 -0
  92. package/dist/routes/pages/admin/core/DatasourcesPage.d.ts +3 -0
  93. package/dist/routes/pages/admin/core/DatasourcesPage.d.ts.map +1 -0
  94. package/dist/routes/pages/admin/core/DatasourcesPage.js +221 -0
  95. package/dist/routes/pages/admin/core/DatasourcesPage.js.map +1 -0
  96. package/dist/routes/pages/admin/core/DatasourcesPage.tsx +540 -0
  97. package/dist/routes/solidRoutes.d.ts.map +1 -1
  98. package/dist/routes/solidRoutes.js +7 -1
  99. package/dist/routes/solidRoutes.js.map +1 -1
  100. package/dist/routes/solidRoutes.tsx +6 -0
  101. package/dist/routes/types.d.ts +1 -1
  102. package/dist/routes/types.d.ts.map +1 -1
  103. package/dist/routes/types.js.map +1 -1
  104. package/dist/routes/types.ts +1 -0
  105. package/package.json +1 -1
@@ -0,0 +1,203 @@
1
+ export type DatasourceIntrospectionBootstrap = {
2
+ module: {
3
+ id: number;
4
+ name: string;
5
+ displayName: string;
6
+ description: string;
7
+ defaultDataSource: string;
8
+ };
9
+ datasources: Array<{
10
+ name: string;
11
+ displayName: string;
12
+ type: string;
13
+ envPrefix: string;
14
+ isDefault: boolean;
15
+ synchronize: boolean | null;
16
+ host: string;
17
+ port: number | null;
18
+ database: string;
19
+ }>;
20
+ recommendedDatasourceName: string | null;
21
+ };
22
+ export type DatasourceIntrospectionTableRecord = {
23
+ schema: string | null;
24
+ tableName: string;
25
+ mapped: boolean;
26
+ mappedModelId: number | null;
27
+ mappedModelSingularName: string | null;
28
+ mappedModelDisplayName: string | null;
29
+ mappedModuleId: number | null;
30
+ mappedModuleName: string | null;
31
+ mappedModuleDisplayName: string | null;
32
+ suggestedLegacyTableType: "none" | "existing_id" | "generated_id";
33
+ suggestedBaseClassName: string;
34
+ suggestedIdColumnName: string | null;
35
+ suggestedUserKeyField: string;
36
+ columnCount: number;
37
+ physicalColumnCount: number;
38
+ };
39
+ export type DatasourceIntrospectionTablesResponse = {
40
+ module: DatasourceIntrospectionBootstrap["module"];
41
+ datasource: DatasourceIntrospectionBootstrap["datasources"][number];
42
+ synchronizeBlocked: boolean;
43
+ synchronizeMessage: string | null;
44
+ records: DatasourceIntrospectionTableRecord[];
45
+ meta: {
46
+ totalRecords: number;
47
+ };
48
+ };
49
+ export type DatasourceIntrospectionTableDetail = {
50
+ module: DatasourceIntrospectionBootstrap["module"];
51
+ datasource: DatasourceIntrospectionBootstrap["datasources"][number];
52
+ table: DatasourceIntrospectionTableRecord;
53
+ columns: Array<{
54
+ columnName: string;
55
+ fieldName: string;
56
+ dataType: string;
57
+ solidFieldType: string;
58
+ ormType: string;
59
+ nullable: boolean;
60
+ defaultValue: string | null;
61
+ characterMaximumLength: number | null;
62
+ numericPrecision: number | null;
63
+ numericScale: number | null;
64
+ ordinalPosition: number | null;
65
+ isAutoGenerated: boolean;
66
+ handledBySuperclass: boolean;
67
+ superclassFieldName: string | null;
68
+ }>;
69
+ rawDdl: {
70
+ statement: string | null;
71
+ available: boolean;
72
+ note: string | null;
73
+ };
74
+ userKeyCandidates: Array<{
75
+ name: string;
76
+ label: string;
77
+ score: number;
78
+ reason: string;
79
+ isDefault: boolean;
80
+ }>;
81
+ suggestedMetadata: {
82
+ singularName: string;
83
+ pluralName: string;
84
+ displayName: string;
85
+ tableName: string;
86
+ schema: string | null;
87
+ dataSource: string;
88
+ dataSourceType: string;
89
+ legacyTableType: "none" | "existing_id" | "generated_id";
90
+ baseClassName: string;
91
+ userKeyField: string;
92
+ synchronize: false;
93
+ };
94
+ };
95
+ export type DatasourceIntrospectionMappingColumn = {
96
+ columnName: string;
97
+ fieldName: string;
98
+ dataType: string;
99
+ solidFieldType: string;
100
+ ormType: string;
101
+ nullable: boolean;
102
+ defaultValue: string | null;
103
+ characterMaximumLength: number | null;
104
+ numericPrecision: number | null;
105
+ numericScale: number | null;
106
+ ordinalPosition: number | null;
107
+ isAutoGenerated: boolean;
108
+ handledBySuperclass: boolean;
109
+ superclassFieldName: string | null;
110
+ fieldId: number | null;
111
+ include: boolean;
112
+ matched: boolean;
113
+ isPrimaryKey: boolean;
114
+ };
115
+ export type DatasourceIntrospectionMappingRequest = {
116
+ mapped: boolean;
117
+ modelId: number | null;
118
+ singularName: string;
119
+ pluralName: string;
120
+ displayName: string;
121
+ description: string;
122
+ tableName: string;
123
+ schema: string | null;
124
+ dataSource: string;
125
+ dataSourceType: string;
126
+ legacyTableType: "none" | "existing_id" | "generated_id";
127
+ baseClassName: string;
128
+ userKeyField: string;
129
+ enableAuditTracking: boolean;
130
+ enableSoftDelete: boolean;
131
+ draftPublishWorkflow: boolean;
132
+ internationalisation: boolean;
133
+ plannedMigrationTimestamp?: number | null;
134
+ columns: DatasourceIntrospectionMappingColumn[];
135
+ reviewedModel?: Record<string, any>;
136
+ };
137
+ export type DatasourceIntrospectionMappingPreview = {
138
+ operation: "create" | "update";
139
+ mappedModelId: number | null;
140
+ metadataJson: {
141
+ filePath: string;
142
+ model: Record<string, any>;
143
+ };
144
+ migration: {
145
+ willGenerate: boolean;
146
+ filePath: string | null;
147
+ fileName: string | null;
148
+ className: string | null;
149
+ timestamp: number | null;
150
+ content: string | null;
151
+ note: string;
152
+ missingSystemColumns: string[];
153
+ };
154
+ summary: {
155
+ includedColumnNames: string[];
156
+ removedColumnNames: string[];
157
+ missingSystemColumns: string[];
158
+ generatedSystemColumnCount: number;
159
+ };
160
+ };
161
+ export type DatasourceIntrospectionApplyResponse = DatasourceIntrospectionMappingPreview & {
162
+ modelId: number | null;
163
+ migration: DatasourceIntrospectionMappingPreview["migration"] & {
164
+ written: boolean;
165
+ };
166
+ };
167
+ export declare const datasourceIntrospectionApi: 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>, {
168
+ getDatasourceIntrospectionBootstrap: import("@reduxjs/toolkit/query/react").QueryDefinition<number, 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>, "DatasourceIntrospection", DatasourceIntrospectionBootstrap, "datasourceIntrospectionApi">;
169
+ getDatasourceIntrospectionTables: import("@reduxjs/toolkit/query/react").QueryDefinition<{
170
+ moduleId: number;
171
+ datasource: string;
172
+ }, 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>, "DatasourceIntrospection", DatasourceIntrospectionTablesResponse, "datasourceIntrospectionApi">;
173
+ getDatasourceIntrospectionTableDetail: import("@reduxjs/toolkit/query/react").QueryDefinition<{
174
+ moduleId: number;
175
+ datasource: string;
176
+ table: string;
177
+ schema?: string | null | undefined;
178
+ }, 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>, "DatasourceIntrospection", DatasourceIntrospectionTableDetail, "datasourceIntrospectionApi">;
179
+ previewDatasourceIntrospectionMapping: import("@reduxjs/toolkit/query/react").MutationDefinition<{
180
+ moduleId: number;
181
+ payload: DatasourceIntrospectionMappingRequest;
182
+ }, 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>, "DatasourceIntrospection", DatasourceIntrospectionMappingPreview, "datasourceIntrospectionApi">;
183
+ applyDatasourceIntrospectionMapping: import("@reduxjs/toolkit/query/react").MutationDefinition<{
184
+ moduleId: number;
185
+ payload: DatasourceIntrospectionMappingRequest;
186
+ }, 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>, "DatasourceIntrospection", DatasourceIntrospectionApplyResponse, "datasourceIntrospectionApi">;
187
+ }, "datasourceIntrospectionApi", "DatasourceIntrospection", typeof import("@reduxjs/toolkit/query/react").coreModuleName | typeof import("@reduxjs/toolkit/query/react").reactHooksModuleName>;
188
+ export declare const useGetDatasourceIntrospectionBootstrapQuery: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseQuery<import("@reduxjs/toolkit/query/react").QueryDefinition<number, 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>, "DatasourceIntrospection", DatasourceIntrospectionBootstrap, "datasourceIntrospectionApi">>, useGetDatasourceIntrospectionTablesQuery: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseQuery<import("@reduxjs/toolkit/query/react").QueryDefinition<{
189
+ moduleId: number;
190
+ datasource: string;
191
+ }, 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>, "DatasourceIntrospection", DatasourceIntrospectionTablesResponse, "datasourceIntrospectionApi">>, useGetDatasourceIntrospectionTableDetailQuery: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseQuery<import("@reduxjs/toolkit/query/react").QueryDefinition<{
192
+ moduleId: number;
193
+ datasource: string;
194
+ table: string;
195
+ schema?: string | null | undefined;
196
+ }, 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>, "DatasourceIntrospection", DatasourceIntrospectionTableDetail, "datasourceIntrospectionApi">>, usePreviewDatasourceIntrospectionMappingMutation: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseMutation<import("@reduxjs/toolkit/query/react").MutationDefinition<{
197
+ moduleId: number;
198
+ payload: DatasourceIntrospectionMappingRequest;
199
+ }, 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>, "DatasourceIntrospection", DatasourceIntrospectionMappingPreview, "datasourceIntrospectionApi">>, useApplyDatasourceIntrospectionMappingMutation: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseMutation<import("@reduxjs/toolkit/query/react").MutationDefinition<{
200
+ moduleId: number;
201
+ payload: DatasourceIntrospectionMappingRequest;
202
+ }, 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>, "DatasourceIntrospection", DatasourceIntrospectionApplyResponse, "datasourceIntrospectionApi">>;
203
+ //# sourceMappingURL=datasourceIntrospectionApi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"datasourceIntrospectionApi.d.ts","sourceRoot":"","sources":["../../../src/redux/api/datasourceIntrospectionApi.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,71 @@
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 datasourceIntrospectionApi = createApi({
14
+ reducerPath: "datasourceIntrospectionApi",
15
+ baseQuery: baseQueryWithAuth,
16
+ tagTypes: ["DatasourceIntrospection"],
17
+ endpoints: function (builder) { return ({
18
+ getDatasourceIntrospectionBootstrap: builder.query({
19
+ query: function (moduleId) { return "/datasource-introspection/modules/".concat(moduleId, "/bootstrap"); },
20
+ providesTags: ["DatasourceIntrospection"],
21
+ transformResponse: function (response) { return unwrapEnvelope(response); },
22
+ }),
23
+ getDatasourceIntrospectionTables: builder.query({
24
+ query: function (_a) {
25
+ var moduleId = _a.moduleId, datasource = _a.datasource;
26
+ return "/datasource-introspection/modules/".concat(moduleId, "/tables?datasource=").concat(encodeURIComponent(datasource));
27
+ },
28
+ providesTags: ["DatasourceIntrospection"],
29
+ transformResponse: function (response) { return unwrapEnvelope(response); },
30
+ }),
31
+ getDatasourceIntrospectionTableDetail: builder.query({
32
+ query: function (_a) {
33
+ var moduleId = _a.moduleId, datasource = _a.datasource, table = _a.table, schema = _a.schema;
34
+ var searchParams = new URLSearchParams();
35
+ searchParams.set("datasource", datasource);
36
+ searchParams.set("table", table);
37
+ if (schema) {
38
+ searchParams.set("schema", schema);
39
+ }
40
+ return "/datasource-introspection/modules/".concat(moduleId, "/table-detail?").concat(searchParams.toString());
41
+ },
42
+ providesTags: ["DatasourceIntrospection"],
43
+ transformResponse: function (response) { return unwrapEnvelope(response); },
44
+ }),
45
+ previewDatasourceIntrospectionMapping: builder.mutation({
46
+ query: function (_a) {
47
+ var moduleId = _a.moduleId, payload = _a.payload;
48
+ return ({
49
+ url: "/datasource-introspection/modules/".concat(moduleId, "/mapping-preview"),
50
+ method: "POST",
51
+ body: payload,
52
+ });
53
+ },
54
+ transformResponse: function (response) { return unwrapEnvelope(response); },
55
+ }),
56
+ applyDatasourceIntrospectionMapping: builder.mutation({
57
+ query: function (_a) {
58
+ var moduleId = _a.moduleId, payload = _a.payload;
59
+ return ({
60
+ url: "/datasource-introspection/modules/".concat(moduleId, "/apply-mapping"),
61
+ method: "POST",
62
+ body: payload,
63
+ });
64
+ },
65
+ invalidatesTags: ["DatasourceIntrospection"],
66
+ transformResponse: function (response) { return unwrapEnvelope(response); },
67
+ }),
68
+ }); },
69
+ });
70
+ export var useGetDatasourceIntrospectionBootstrapQuery = datasourceIntrospectionApi.useGetDatasourceIntrospectionBootstrapQuery, useGetDatasourceIntrospectionTablesQuery = datasourceIntrospectionApi.useGetDatasourceIntrospectionTablesQuery, useGetDatasourceIntrospectionTableDetailQuery = datasourceIntrospectionApi.useGetDatasourceIntrospectionTableDetailQuery, usePreviewDatasourceIntrospectionMappingMutation = datasourceIntrospectionApi.usePreviewDatasourceIntrospectionMappingMutation, useApplyDatasourceIntrospectionMappingMutation = datasourceIntrospectionApi.useApplyDatasourceIntrospectionMappingMutation;
71
+ //# sourceMappingURL=datasourceIntrospectionApi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"datasourceIntrospectionApi.js","sourceRoot":"","sources":["../../../src/redux/api/datasourceIntrospectionApi.ts"],"names":[],"mappings":"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","sourcesContent":["import { createApi } from \"@reduxjs/toolkit/query/react\";\nimport { baseQueryWithAuth } from \"./fetchBaseQuery\";\n\nexport type DatasourceIntrospectionBootstrap = {\n module: {\n id: number;\n name: string;\n displayName: string;\n description: string;\n defaultDataSource: string;\n };\n datasources: Array<{\n name: string;\n displayName: string;\n type: string;\n envPrefix: string;\n isDefault: boolean;\n synchronize: boolean | null;\n host: string;\n port: number | null;\n database: string;\n }>;\n recommendedDatasourceName: string | null;\n};\n\nexport type DatasourceIntrospectionTableRecord = {\n schema: string | null;\n tableName: string;\n mapped: boolean;\n mappedModelId: number | null;\n mappedModelSingularName: string | null;\n mappedModelDisplayName: string | null;\n mappedModuleId: number | null;\n mappedModuleName: string | null;\n mappedModuleDisplayName: string | null;\n suggestedLegacyTableType: \"none\" | \"existing_id\" | \"generated_id\";\n suggestedBaseClassName: string;\n suggestedIdColumnName: string | null;\n suggestedUserKeyField: string;\n columnCount: number;\n physicalColumnCount: number;\n};\n\nexport type DatasourceIntrospectionTablesResponse = {\n module: DatasourceIntrospectionBootstrap[\"module\"];\n datasource: DatasourceIntrospectionBootstrap[\"datasources\"][number];\n synchronizeBlocked: boolean;\n synchronizeMessage: string | null;\n records: DatasourceIntrospectionTableRecord[];\n meta: {\n totalRecords: number;\n };\n};\n\nexport type DatasourceIntrospectionTableDetail = {\n module: DatasourceIntrospectionBootstrap[\"module\"];\n datasource: DatasourceIntrospectionBootstrap[\"datasources\"][number];\n table: DatasourceIntrospectionTableRecord;\n columns: Array<{\n columnName: string;\n fieldName: string;\n dataType: string;\n solidFieldType: string;\n ormType: string;\n nullable: boolean;\n defaultValue: string | null;\n characterMaximumLength: number | null;\n numericPrecision: number | null;\n numericScale: number | null;\n ordinalPosition: number | null;\n isAutoGenerated: boolean;\n handledBySuperclass: boolean;\n superclassFieldName: string | null;\n }>;\n rawDdl: {\n statement: string | null;\n available: boolean;\n note: string | null;\n };\n userKeyCandidates: Array<{\n name: string;\n label: string;\n score: number;\n reason: string;\n isDefault: boolean;\n }>;\n suggestedMetadata: {\n singularName: string;\n pluralName: string;\n displayName: string;\n tableName: string;\n schema: string | null;\n dataSource: string;\n dataSourceType: string;\n legacyTableType: \"none\" | \"existing_id\" | \"generated_id\";\n baseClassName: string;\n userKeyField: string;\n synchronize: false;\n };\n};\n\nexport type DatasourceIntrospectionMappingColumn = {\n columnName: string;\n fieldName: string;\n dataType: string;\n solidFieldType: string;\n ormType: string;\n nullable: boolean;\n defaultValue: string | null;\n characterMaximumLength: number | null;\n numericPrecision: number | null;\n numericScale: number | null;\n ordinalPosition: number | null;\n isAutoGenerated: boolean;\n handledBySuperclass: boolean;\n superclassFieldName: string | null;\n fieldId: number | null;\n include: boolean;\n matched: boolean;\n isPrimaryKey: boolean;\n};\n\nexport type DatasourceIntrospectionMappingRequest = {\n mapped: boolean;\n modelId: number | null;\n singularName: string;\n pluralName: string;\n displayName: string;\n description: string;\n tableName: string;\n schema: string | null;\n dataSource: string;\n dataSourceType: string;\n legacyTableType: \"none\" | \"existing_id\" | \"generated_id\";\n baseClassName: string;\n userKeyField: string;\n enableAuditTracking: boolean;\n enableSoftDelete: boolean;\n draftPublishWorkflow: boolean;\n internationalisation: boolean;\n plannedMigrationTimestamp?: number | null;\n columns: DatasourceIntrospectionMappingColumn[];\n reviewedModel?: Record<string, any>;\n};\n\nexport type DatasourceIntrospectionMappingPreview = {\n operation: \"create\" | \"update\";\n mappedModelId: number | null;\n metadataJson: {\n filePath: string;\n model: Record<string, any>;\n };\n migration: {\n willGenerate: boolean;\n filePath: string | null;\n fileName: string | null;\n className: string | null;\n timestamp: number | null;\n content: string | null;\n note: string;\n missingSystemColumns: string[];\n };\n summary: {\n includedColumnNames: string[];\n removedColumnNames: string[];\n missingSystemColumns: string[];\n generatedSystemColumnCount: number;\n };\n};\n\nexport type DatasourceIntrospectionApplyResponse = DatasourceIntrospectionMappingPreview & {\n modelId: number | null;\n migration: DatasourceIntrospectionMappingPreview[\"migration\"] & {\n written: boolean;\n };\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 datasourceIntrospectionApi = createApi({\n reducerPath: \"datasourceIntrospectionApi\",\n baseQuery: baseQueryWithAuth,\n tagTypes: [\"DatasourceIntrospection\"],\n endpoints: (builder) => ({\n getDatasourceIntrospectionBootstrap: builder.query<DatasourceIntrospectionBootstrap, number>({\n query: (moduleId) => `/datasource-introspection/modules/${moduleId}/bootstrap`,\n providesTags: [\"DatasourceIntrospection\"],\n transformResponse: (response: any) => unwrapEnvelope<DatasourceIntrospectionBootstrap>(response),\n }),\n getDatasourceIntrospectionTables: builder.query<\n DatasourceIntrospectionTablesResponse,\n { moduleId: number; datasource: string }\n >({\n query: ({ moduleId, datasource }) =>\n `/datasource-introspection/modules/${moduleId}/tables?datasource=${encodeURIComponent(datasource)}`,\n providesTags: [\"DatasourceIntrospection\"],\n transformResponse: (response: any) => unwrapEnvelope<DatasourceIntrospectionTablesResponse>(response),\n }),\n getDatasourceIntrospectionTableDetail: builder.query<\n DatasourceIntrospectionTableDetail,\n { moduleId: number; datasource: string; table: string; schema?: string | null }\n >({\n query: ({ moduleId, datasource, table, schema }) => {\n const searchParams = new URLSearchParams();\n searchParams.set(\"datasource\", datasource);\n searchParams.set(\"table\", table);\n if (schema) {\n searchParams.set(\"schema\", schema);\n }\n\n return `/datasource-introspection/modules/${moduleId}/table-detail?${searchParams.toString()}`;\n },\n providesTags: [\"DatasourceIntrospection\"],\n transformResponse: (response: any) => unwrapEnvelope<DatasourceIntrospectionTableDetail>(response),\n }),\n previewDatasourceIntrospectionMapping: builder.mutation<\n DatasourceIntrospectionMappingPreview,\n { moduleId: number; payload: DatasourceIntrospectionMappingRequest }\n >({\n query: ({ moduleId, payload }) => ({\n url: `/datasource-introspection/modules/${moduleId}/mapping-preview`,\n method: \"POST\",\n body: payload,\n }),\n transformResponse: (response: any) => unwrapEnvelope<DatasourceIntrospectionMappingPreview>(response),\n }),\n applyDatasourceIntrospectionMapping: builder.mutation<\n DatasourceIntrospectionApplyResponse,\n { moduleId: number; payload: DatasourceIntrospectionMappingRequest }\n >({\n query: ({ moduleId, payload }) => ({\n url: `/datasource-introspection/modules/${moduleId}/apply-mapping`,\n method: \"POST\",\n body: payload,\n }),\n invalidatesTags: [\"DatasourceIntrospection\"],\n transformResponse: (response: any) => unwrapEnvelope<DatasourceIntrospectionApplyResponse>(response),\n }),\n }),\n});\n\nexport const {\n useGetDatasourceIntrospectionBootstrapQuery,\n useGetDatasourceIntrospectionTablesQuery,\n useGetDatasourceIntrospectionTableDetailQuery,\n usePreviewDatasourceIntrospectionMappingMutation,\n useApplyDatasourceIntrospectionMappingMutation,\n} = datasourceIntrospectionApi;\n"]}
@@ -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"}