@quillsql/admin 1.6.0 → 1.6.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 (151) hide show
  1. package/dist/cjs/Admin.d.ts.map +1 -1
  2. package/dist/cjs/Admin.js +24 -11
  3. package/dist/cjs/AdminProvider.d.ts +2 -1
  4. package/dist/cjs/AdminProvider.d.ts.map +1 -1
  5. package/dist/cjs/AdminProvider.js +13 -24
  6. package/dist/cjs/api/ConnectionClient.d.ts +8 -0
  7. package/dist/cjs/api/ConnectionClient.d.ts.map +1 -1
  8. package/dist/cjs/api/ConnectionClient.js +42 -8
  9. package/dist/cjs/components/DashboardSelectPopover.d.ts.map +1 -1
  10. package/dist/cjs/components/DashboardSelectPopover.js +20 -3
  11. package/dist/cjs/components/DropDownMenuWithLabel.d.ts.map +1 -1
  12. package/dist/cjs/components/DropDownMenuWithLabel.js +4 -35
  13. package/dist/cjs/components/EmptyDashboardComponent/index.d.ts.map +1 -1
  14. package/dist/cjs/components/EmptyDashboardComponent/index.js +11 -9
  15. package/dist/cjs/components/QuillSelect.d.ts.map +1 -1
  16. package/dist/cjs/components/QuillSelect.js +2 -2
  17. package/dist/cjs/components/SegmentedControl.d.ts +4 -2
  18. package/dist/cjs/components/SegmentedControl.d.ts.map +1 -1
  19. package/dist/cjs/components/SegmentedControl.js +22 -16
  20. package/dist/cjs/components/SqlTextEditor.d.ts +9 -1
  21. package/dist/cjs/components/SqlTextEditor.d.ts.map +1 -1
  22. package/dist/cjs/components/SqlTextEditor.js +60 -12
  23. package/dist/cjs/components/UiComponents.d.ts.map +1 -1
  24. package/dist/cjs/components/UiComponents.js +11 -2
  25. package/dist/cjs/constants/dataTypes.d.ts +2 -0
  26. package/dist/cjs/constants/dataTypes.d.ts.map +1 -0
  27. package/dist/cjs/constants/dataTypes.js +21 -0
  28. package/dist/cjs/forms/client_onboard/ConnectDatabase.d.ts.map +1 -1
  29. package/dist/cjs/forms/client_onboard/ConnectDatabase.js +9 -17
  30. package/dist/cjs/forms/client_onboard/CreateSqlViews.d.ts.map +1 -1
  31. package/dist/cjs/forms/client_onboard/CreateSqlViews.js +24 -11
  32. package/dist/cjs/forms/sql_views/CreateEditSqlView.d.ts +4 -1
  33. package/dist/cjs/forms/sql_views/CreateEditSqlView.d.ts.map +1 -1
  34. package/dist/cjs/forms/sql_views/CreateEditSqlView.js +87 -36
  35. package/dist/cjs/modals/EditFiltersModal.d.ts.map +1 -1
  36. package/dist/cjs/modals/EditFiltersModal.js +13 -3
  37. package/dist/cjs/modals/NewDashboardModal.js +2 -2
  38. package/dist/cjs/modals/PromoteDashModal.js +2 -2
  39. package/dist/cjs/modals/PromoteViewModal.d.ts +2 -1
  40. package/dist/cjs/modals/PromoteViewModal.d.ts.map +1 -1
  41. package/dist/cjs/modals/PromoteViewModal.js +46 -36
  42. package/dist/cjs/primitives/TextInputPrimitive.d.ts +1 -0
  43. package/dist/cjs/primitives/TextInputPrimitive.d.ts.map +1 -1
  44. package/dist/cjs/primitives/TextInputPrimitive.js +35 -20
  45. package/dist/cjs/public_components/CreateEnvironment.d.ts +2 -1
  46. package/dist/cjs/public_components/CreateEnvironment.d.ts.map +1 -1
  47. package/dist/cjs/public_components/CreateEnvironment.js +4 -1
  48. package/dist/cjs/public_components/DashboardBuilder.d.ts.map +1 -1
  49. package/dist/cjs/public_components/DashboardBuilder.js +67 -156
  50. package/dist/cjs/public_components/DashboardManager.d.ts.map +1 -1
  51. package/dist/cjs/public_components/DashboardManager.js +72 -73
  52. package/dist/cjs/public_components/SQLViewManager.d.ts +1 -0
  53. package/dist/cjs/public_components/SQLViewManager.d.ts.map +1 -1
  54. package/dist/cjs/public_components/SQLViewManager.js +216 -40
  55. package/dist/cjs/utils/astProcessing.d.ts +2 -0
  56. package/dist/cjs/utils/astProcessing.d.ts.map +1 -0
  57. package/dist/cjs/utils/astProcessing.js +41 -0
  58. package/dist/cjs/utils/astProcessing.uspec.d.ts +2 -0
  59. package/dist/cjs/utils/astProcessing.uspec.d.ts.map +1 -0
  60. package/dist/cjs/utils/astProcessing.uspec.js +26 -0
  61. package/dist/cjs/utils/columnProcessing.d.ts +3 -0
  62. package/dist/cjs/utils/columnProcessing.d.ts.map +1 -0
  63. package/dist/cjs/utils/columnProcessing.js +42 -0
  64. package/dist/cjs/utils/dataEditor.d.ts +2 -2
  65. package/dist/cjs/utils/dataEditor.d.ts.map +1 -1
  66. package/dist/cjs/utils/dataEditor.js +4 -2
  67. package/dist/cjs/utils/databases.d.ts +0 -1
  68. package/dist/cjs/utils/databases.d.ts.map +1 -1
  69. package/dist/cjs/utils/databases.js +5 -6
  70. package/dist/cjs/utils/monacoAutocomplete.d.ts +21 -0
  71. package/dist/cjs/utils/monacoAutocomplete.d.ts.map +1 -0
  72. package/dist/cjs/utils/monacoAutocomplete.js +250 -0
  73. package/dist/cjs/utils/schema.d.ts +5 -0
  74. package/dist/cjs/utils/schema.d.ts.map +1 -1
  75. package/dist/cjs/utils/schema.js +129 -0
  76. package/dist/esm/Admin.d.ts.map +1 -1
  77. package/dist/esm/Admin.js +24 -11
  78. package/dist/esm/AdminProvider.d.ts +2 -1
  79. package/dist/esm/AdminProvider.d.ts.map +1 -1
  80. package/dist/esm/AdminProvider.js +13 -24
  81. package/dist/esm/api/ConnectionClient.d.ts +8 -0
  82. package/dist/esm/api/ConnectionClient.d.ts.map +1 -1
  83. package/dist/esm/api/ConnectionClient.js +42 -8
  84. package/dist/esm/components/DashboardSelectPopover.d.ts.map +1 -1
  85. package/dist/esm/components/DashboardSelectPopover.js +20 -3
  86. package/dist/esm/components/DropDownMenuWithLabel.d.ts.map +1 -1
  87. package/dist/esm/components/DropDownMenuWithLabel.js +4 -35
  88. package/dist/esm/components/EmptyDashboardComponent/index.d.ts.map +1 -1
  89. package/dist/esm/components/EmptyDashboardComponent/index.js +11 -9
  90. package/dist/esm/components/QuillSelect.d.ts.map +1 -1
  91. package/dist/esm/components/QuillSelect.js +2 -2
  92. package/dist/esm/components/SegmentedControl.d.ts +4 -2
  93. package/dist/esm/components/SegmentedControl.d.ts.map +1 -1
  94. package/dist/esm/components/SegmentedControl.js +22 -16
  95. package/dist/esm/components/SqlTextEditor.d.ts +9 -1
  96. package/dist/esm/components/SqlTextEditor.d.ts.map +1 -1
  97. package/dist/esm/components/SqlTextEditor.js +59 -11
  98. package/dist/esm/components/UiComponents.d.ts.map +1 -1
  99. package/dist/esm/components/UiComponents.js +12 -3
  100. package/dist/esm/constants/dataTypes.d.ts +2 -0
  101. package/dist/esm/constants/dataTypes.d.ts.map +1 -0
  102. package/dist/esm/constants/dataTypes.js +18 -0
  103. package/dist/esm/forms/client_onboard/ConnectDatabase.d.ts.map +1 -1
  104. package/dist/esm/forms/client_onboard/ConnectDatabase.js +9 -17
  105. package/dist/esm/forms/client_onboard/CreateSqlViews.d.ts.map +1 -1
  106. package/dist/esm/forms/client_onboard/CreateSqlViews.js +25 -12
  107. package/dist/esm/forms/sql_views/CreateEditSqlView.d.ts +4 -1
  108. package/dist/esm/forms/sql_views/CreateEditSqlView.d.ts.map +1 -1
  109. package/dist/esm/forms/sql_views/CreateEditSqlView.js +87 -36
  110. package/dist/esm/modals/EditFiltersModal.d.ts.map +1 -1
  111. package/dist/esm/modals/EditFiltersModal.js +13 -3
  112. package/dist/esm/modals/NewDashboardModal.js +2 -2
  113. package/dist/esm/modals/PromoteDashModal.js +2 -2
  114. package/dist/esm/modals/PromoteViewModal.d.ts +2 -1
  115. package/dist/esm/modals/PromoteViewModal.d.ts.map +1 -1
  116. package/dist/esm/modals/PromoteViewModal.js +50 -40
  117. package/dist/esm/primitives/TextInputPrimitive.d.ts +1 -0
  118. package/dist/esm/primitives/TextInputPrimitive.d.ts.map +1 -1
  119. package/dist/esm/primitives/TextInputPrimitive.js +33 -21
  120. package/dist/esm/public_components/CreateEnvironment.d.ts +2 -1
  121. package/dist/esm/public_components/CreateEnvironment.d.ts.map +1 -1
  122. package/dist/esm/public_components/CreateEnvironment.js +4 -1
  123. package/dist/esm/public_components/DashboardBuilder.d.ts.map +1 -1
  124. package/dist/esm/public_components/DashboardBuilder.js +68 -157
  125. package/dist/esm/public_components/DashboardManager.d.ts.map +1 -1
  126. package/dist/esm/public_components/DashboardManager.js +73 -74
  127. package/dist/esm/public_components/SQLViewManager.d.ts +1 -0
  128. package/dist/esm/public_components/SQLViewManager.d.ts.map +1 -1
  129. package/dist/esm/public_components/SQLViewManager.js +216 -42
  130. package/dist/esm/utils/astProcessing.d.ts +2 -0
  131. package/dist/esm/utils/astProcessing.d.ts.map +1 -0
  132. package/dist/esm/utils/astProcessing.js +37 -0
  133. package/dist/esm/utils/astProcessing.uspec.d.ts +2 -0
  134. package/dist/esm/utils/astProcessing.uspec.d.ts.map +1 -0
  135. package/dist/esm/utils/astProcessing.uspec.js +24 -0
  136. package/dist/esm/utils/columnProcessing.d.ts +3 -0
  137. package/dist/esm/utils/columnProcessing.d.ts.map +1 -0
  138. package/dist/esm/utils/columnProcessing.js +37 -0
  139. package/dist/esm/utils/dataEditor.d.ts +2 -2
  140. package/dist/esm/utils/dataEditor.d.ts.map +1 -1
  141. package/dist/esm/utils/dataEditor.js +4 -2
  142. package/dist/esm/utils/databases.d.ts +0 -1
  143. package/dist/esm/utils/databases.d.ts.map +1 -1
  144. package/dist/esm/utils/databases.js +5 -6
  145. package/dist/esm/utils/monacoAutocomplete.d.ts +21 -0
  146. package/dist/esm/utils/monacoAutocomplete.d.ts.map +1 -0
  147. package/dist/esm/utils/monacoAutocomplete.js +245 -0
  148. package/dist/esm/utils/schema.d.ts +5 -0
  149. package/dist/esm/utils/schema.d.ts.map +1 -1
  150. package/dist/esm/utils/schema.js +126 -1
  151. package/package.json +3 -2
@@ -0,0 +1,21 @@
1
+ import { Monaco } from '@monaco-editor/react';
2
+ import { ColumnsByTable } from './table';
3
+ import { Range } from 'monaco-editor';
4
+ interface CompletionItem {
5
+ label: string;
6
+ kind: number;
7
+ insertText: string;
8
+ insertTextRules: number;
9
+ range: any;
10
+ detail?: string;
11
+ }
12
+ export declare function generateSuggestionsBySchema(schema: ColumnsByTable[], monaco: Monaco, range: Range, databaseType: string): CompletionItem[];
13
+ export declare function generateSuggestionsByDatasource(monaco: Monaco, range: Range, databaseType: string): {
14
+ label: string;
15
+ kind: import("monaco-editor").languages.CompletionItemKind;
16
+ insertText: string;
17
+ insertTextRules: import("monaco-editor").languages.CompletionItemInsertTextRule;
18
+ range: Range;
19
+ }[];
20
+ export {};
21
+ //# sourceMappingURL=monacoAutocomplete.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"monacoAutocomplete.d.ts","sourceRoot":"","sources":["../../../src/utils/monacoAutocomplete.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,OAAO,EAAY,KAAK,EAAE,MAAM,eAAe,CAAC;AAEhD,UAAU,cAAc;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,GAAG,CAAC;IACX,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAyOD,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,cAAc,EAAE,EACxB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,MAAM,GACnB,cAAc,EAAE,CA2BlB;AAED,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,MAAM;;;;;;IAiBrB"}
@@ -0,0 +1,245 @@
1
+ import { processColumnReference } from './columnProcessing';
2
+ const GENERIC_DATASOURCE_SUGGESTIONS = (monaco, range) => {
3
+ return [
4
+ {
5
+ label: 'SELECT',
6
+ kind: monaco.languages.CompletionItemKind.Keyword,
7
+ insertText: 'SELECT',
8
+ insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
9
+ range,
10
+ },
11
+ {
12
+ label: 'FROM',
13
+ kind: monaco.languages.CompletionItemKind.Keyword,
14
+ insertText: 'FROM',
15
+ insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
16
+ range,
17
+ },
18
+ {
19
+ label: 'JOIN',
20
+ kind: monaco.languages.CompletionItemKind.Keyword,
21
+ insertText: 'JOIN',
22
+ insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
23
+ range,
24
+ },
25
+ {
26
+ label: 'LEFT JOIN',
27
+ kind: monaco.languages.CompletionItemKind.Keyword,
28
+ insertText: 'LEFT JOIN',
29
+ insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
30
+ range,
31
+ },
32
+ {
33
+ label: 'INNER JOIN',
34
+ kind: monaco.languages.CompletionItemKind.Keyword,
35
+ insertText: 'INNER JOIN',
36
+ insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
37
+ range,
38
+ },
39
+ {
40
+ label: 'MAX',
41
+ kind: monaco.languages.CompletionItemKind.Keyword,
42
+ insertText: 'MAX',
43
+ insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
44
+ range,
45
+ },
46
+ {
47
+ label: 'MIN',
48
+ kind: monaco.languages.CompletionItemKind.Keyword,
49
+ insertText: 'MIN',
50
+ insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
51
+ range,
52
+ },
53
+ {
54
+ label: 'ON',
55
+ kind: monaco.languages.CompletionItemKind.Keyword,
56
+ insertText: 'ON',
57
+ insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
58
+ range,
59
+ },
60
+ {
61
+ label: 'WHERE',
62
+ kind: monaco.languages.CompletionItemKind.Keyword,
63
+ insertText: 'WHERE',
64
+ insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
65
+ range,
66
+ },
67
+ {
68
+ label: 'LIMIT',
69
+ kind: monaco.languages.CompletionItemKind.Keyword,
70
+ insertText: 'LIMIT',
71
+ insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
72
+ range,
73
+ },
74
+ {
75
+ label: 'GROUP BY',
76
+ kind: monaco.languages.CompletionItemKind.Keyword,
77
+ insertText: 'GROUP BY',
78
+ insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
79
+ range,
80
+ },
81
+ {
82
+ label: 'ORDER BY',
83
+ kind: monaco.languages.CompletionItemKind.Keyword,
84
+ insertText: 'ORDER BY',
85
+ insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
86
+ range,
87
+ },
88
+ {
89
+ label: 'LIKE',
90
+ kind: monaco.languages.CompletionItemKind.Keyword,
91
+ insertText: 'LIKE',
92
+ insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
93
+ range,
94
+ },
95
+ {
96
+ label: 'BETWEEN',
97
+ kind: monaco.languages.CompletionItemKind.Keyword,
98
+ insertText: 'BETWEEN',
99
+ insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
100
+ range,
101
+ },
102
+ {
103
+ label: 'AS',
104
+ kind: monaco.languages.CompletionItemKind.Keyword,
105
+ insertText: 'AS',
106
+ insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
107
+ range,
108
+ },
109
+ {
110
+ label: 'LOWER',
111
+ kind: monaco.languages.CompletionItemKind.Keyword,
112
+ insertText: 'LOWER',
113
+ insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
114
+ range,
115
+ },
116
+ {
117
+ label: 'UPPER',
118
+ kind: monaco.languages.CompletionItemKind.Keyword,
119
+ insertText: 'UPPER',
120
+ insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
121
+ range,
122
+ },
123
+ ];
124
+ };
125
+ const POSTGRES_DATASOURCE_SUGGESTIONS = (monaco, range) => {
126
+ return [
127
+ {
128
+ label: 'EXTRACT',
129
+ kind: monaco.languages.CompletionItemKind.Keyword,
130
+ insertText: 'EXTRACT',
131
+ insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
132
+ range,
133
+ },
134
+ {
135
+ label: 'TO_TIMESTAMP',
136
+ kind: monaco.languages.CompletionItemKind.Keyword,
137
+ insertText: 'TO_TIMESTAMP',
138
+ insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
139
+ range,
140
+ },
141
+ {
142
+ label: 'CURRENT_DATE',
143
+ kind: monaco.languages.CompletionItemKind.Keyword,
144
+ insertText: 'CURRENT_DATE',
145
+ insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
146
+ range,
147
+ },
148
+ {
149
+ label: 'CURRENT_TIMESTAMP',
150
+ kind: monaco.languages.CompletionItemKind.Keyword,
151
+ insertText: 'CURRENT_TIMESTAMP',
152
+ insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
153
+ range,
154
+ },
155
+ ];
156
+ };
157
+ const BIGQUERY_DATASOURCE_SUGGESTIONS = (monaco, range) => {
158
+ return [
159
+ {
160
+ label: 'CURRENT_TIMESTAMP',
161
+ kind: monaco.languages.CompletionItemKind.Keyword,
162
+ insertText: 'CURRENT_TIMESTAMP',
163
+ insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
164
+ range,
165
+ },
166
+ {
167
+ label: 'EXTRACT',
168
+ kind: monaco.languages.CompletionItemKind.Keyword,
169
+ insertText: 'EXTRACT',
170
+ insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
171
+ range,
172
+ },
173
+ {
174
+ label: 'FORMAT_TIMESTAMP',
175
+ kind: monaco.languages.CompletionItemKind.Keyword,
176
+ insertText: 'FORMAT_TIMESTAMP',
177
+ insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
178
+ range,
179
+ },
180
+ {
181
+ label: 'PARSE_TIMESTAMP',
182
+ kind: monaco.languages.CompletionItemKind.Keyword,
183
+ insertText: 'PARSE_TIMESTAMP',
184
+ insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
185
+ range,
186
+ },
187
+ {
188
+ label: 'TIMESTAMP_ADD',
189
+ kind: monaco.languages.CompletionItemKind.Keyword,
190
+ insertText: 'TIMESTAMP_ADD',
191
+ insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
192
+ range,
193
+ },
194
+ {
195
+ label: 'TIMESTAMP_DIFF',
196
+ kind: monaco.languages.CompletionItemKind.Keyword,
197
+ insertText: 'TIMESTAMP_DIFF',
198
+ insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
199
+ range,
200
+ },
201
+ ];
202
+ };
203
+ export function generateSuggestionsBySchema(schema, monaco, range, databaseType) {
204
+ const suggestions = [];
205
+ schema.forEach((table) => {
206
+ const curSuggestion = {
207
+ label: table.tableName,
208
+ kind: monaco.languages.CompletionItemKind.Field,
209
+ insertText: `${processColumnReference(table.tableName, databaseType)}`,
210
+ insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
211
+ range,
212
+ };
213
+ suggestions.push(curSuggestion);
214
+ table.columns.forEach((column) => {
215
+ const insertText = `${processColumnReference(column.columnName, databaseType)}`;
216
+ const curSuggestion = {
217
+ label: column.columnName,
218
+ kind: monaco.languages.CompletionItemKind.Field,
219
+ insertText,
220
+ detail: table.tableName,
221
+ insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
222
+ range,
223
+ };
224
+ suggestions.push(curSuggestion);
225
+ });
226
+ }, []);
227
+ return suggestions;
228
+ }
229
+ export function generateSuggestionsByDatasource(monaco, range, databaseType) {
230
+ switch (databaseType.toLowerCase()) {
231
+ case 'snowflake':
232
+ case 'postgresql':
233
+ return [
234
+ ...POSTGRES_DATASOURCE_SUGGESTIONS(monaco, range),
235
+ ...GENERIC_DATASOURCE_SUGGESTIONS(monaco, range),
236
+ ];
237
+ case 'bigquery':
238
+ return [
239
+ ...BIGQUERY_DATASOURCE_SUGGESTIONS(monaco, range),
240
+ ...GENERIC_DATASOURCE_SUGGESTIONS(monaco, range),
241
+ ];
242
+ default:
243
+ return GENERIC_DATASOURCE_SUGGESTIONS(monaco, range);
244
+ }
245
+ }
@@ -25,4 +25,9 @@ export interface SchemaDetails {
25
25
  customerView?: string;
26
26
  };
27
27
  }
28
+ export declare const getSchemaInfo: (client: any, caller?: string) => Promise<any>;
29
+ export declare const getSchemaInfoWithCustomFields: (client: any, caller?: string) => Promise<{
30
+ schemaData: any;
31
+ customFieldsByTable: any[];
32
+ }>;
28
33
  //# sourceMappingURL=schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/utils/schema.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa,CAAC,EAAE;QAAE,EAAE,EAAE,GAAG,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC5C,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,wBAAwB,CAAC,EAAE;QAAE,EAAE,EAAE,GAAG,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACvD,cAAc,EAAE;QACd,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,UAAU,CAAC,EAAE;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC;QAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;CACH"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/utils/schema.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa,CAAC,EAAE;QAAE,EAAE,EAAE,GAAG,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC5C,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,wBAAwB,CAAC,EAAE;QAAE,EAAE,EAAE,GAAG,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACvD,cAAc,EAAE;QACd,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,UAAU,CAAC,EAAE;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC;QAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AA4BD,eAAO,MAAM,aAAa,WAAkB,GAAG,kCA2B9C,CAAC;AAEF,eAAO,MAAM,6BAA6B,WAChC,GAAG;;;EA+FZ,CAAC"}
@@ -1 +1,126 @@
1
- export {};
1
+ const parseResponse = (results) => {
2
+ if (results.data?.data) {
3
+ if (results.data.data.queries &&
4
+ results.data.data.queries.queryResults.length > 0) {
5
+ return results.data.data.queries.queryResults;
6
+ }
7
+ else {
8
+ return results.data.data.tables;
9
+ }
10
+ }
11
+ else {
12
+ if (results.queries &&
13
+ results.queries.queryResults &&
14
+ results.queries.queryResults.length > 0) {
15
+ return results.queries.queryResults;
16
+ }
17
+ else {
18
+ return results.data.tables;
19
+ }
20
+ }
21
+ };
22
+ // GET SCHEMA INFO WITHOUT LOOKING FOR CUSTOMER FIELD DATA
23
+ export const getSchemaInfo = async (client, caller = 'se') => {
24
+ const { queryEndpoint, queryHeaders, publicKey, customerId, gatherSchemaData, } = client;
25
+ const response = await fetch(`${queryEndpoint}?schema-${caller}`, {
26
+ method: 'POST',
27
+ headers: {
28
+ ...queryHeaders,
29
+ 'Content-Type': 'application/json',
30
+ },
31
+ body: JSON.stringify({
32
+ metadata: {
33
+ clientId: publicKey,
34
+ publicKey: publicKey,
35
+ task: 'schema',
36
+ removeCustomerField: true,
37
+ orgId: customerId || '*',
38
+ gatherSchemaData,
39
+ },
40
+ }),
41
+ });
42
+ const result = await response.json();
43
+ return parseResponse(result);
44
+ };
45
+ export const getSchemaInfoWithCustomFields = async (client, caller = 'se') => {
46
+ const { queryEndpoint, queryHeaders, publicKey, databaseType, customerId } = client;
47
+ let customFieldsByTableUnique = [];
48
+ let getCustomFields = true;
49
+ if (!customerId || customerId !== '*') {
50
+ try {
51
+ let response = await fetch(`${queryEndpoint}?cfr-${caller}`, {
52
+ method: 'POST',
53
+ headers: {
54
+ ...queryHeaders,
55
+ 'Content-Type': 'application/json',
56
+ },
57
+ body: JSON.stringify({
58
+ metadata: {
59
+ clientId: publicKey,
60
+ publicKey,
61
+ task: 'custom-field-records',
62
+ databaseType: databaseType,
63
+ orgId: customerId,
64
+ },
65
+ }),
66
+ });
67
+ let result = await response.json();
68
+ const extractedData = parseResponse(result);
69
+ const customFieldsByTable = [];
70
+ extractedData.forEach((table) => {
71
+ if (!table.rows) {
72
+ return;
73
+ }
74
+ table.rows.forEach((row) => {
75
+ customFieldsByTable.push({
76
+ ref_table: row.ref_table,
77
+ field: row.field,
78
+ ref_column: row.ref_column,
79
+ type: row.type,
80
+ });
81
+ });
82
+ });
83
+ // make sure the are no duplicate records in extractedData
84
+ const customFieldsByTableSet = new Set();
85
+ customFieldsByTableUnique = customFieldsByTable.filter((item) => {
86
+ if (customFieldsByTableSet.has(item.ref_table + item.field + item.ref_column + item.type)) {
87
+ return false;
88
+ }
89
+ customFieldsByTableSet.add(item.ref_table + item.field + item.ref_column + item.type);
90
+ return true;
91
+ });
92
+ }
93
+ catch (e) {
94
+ console.warn('Error fetching custom fields', e);
95
+ getCustomFields = true;
96
+ }
97
+ }
98
+ const response = await fetch(`${queryEndpoint}?schema-${caller}`, {
99
+ method: 'POST',
100
+ headers: {
101
+ ...queryHeaders,
102
+ 'Content-Type': 'application/json',
103
+ },
104
+ body: JSON.stringify({
105
+ metadata: {
106
+ clientId: publicKey,
107
+ publicKey: publicKey,
108
+ task: 'schema',
109
+ removeCustomerField: true,
110
+ getCustomFields: !client.customerId ||
111
+ client.customerId === '*' ||
112
+ (customFieldsByTableUnique.length === 0 && !getCustomFields)
113
+ ? false
114
+ : true,
115
+ orgId: client.customerId || '*',
116
+ customFieldsByTable: customFieldsByTableUnique,
117
+ // gatherSchemaData: true
118
+ },
119
+ }),
120
+ });
121
+ const result = await response.json();
122
+ return {
123
+ schemaData: parseResponse(result),
124
+ customFieldsByTable: customFieldsByTableUnique,
125
+ };
126
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quillsql/admin",
3
- "version": "1.6.0",
3
+ "version": "1.6.1",
4
4
  "description": "Admin tools for Quill",
5
5
  "exports": {
6
6
  ".": {
@@ -23,7 +23,8 @@
23
23
  "@dnd-kit/utilities": "^3.2.1",
24
24
  "@monaco-editor/react": "^4.5.2",
25
25
  "prism-react-renderer": "^1.3.5",
26
- "prismjs": "^1.29.0"
26
+ "prismjs": "^1.29.0",
27
+ "re-resizable": "^6.9.17"
27
28
  },
28
29
  "devDependencies": {
29
30
  "@repo/eslint-config": "*",