@trilogy-data/trilogy-studio-components 0.1.25 → 0.1.27

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 (200) hide show
  1. package/dist/AssetAutoImporter-OHphsfW9.js +403 -0
  2. package/dist/ChatCreatorModal-CuXha6Dg.js +218 -0
  3. package/dist/ChatModelSelect-Cz7axWjP.js +40 -0
  4. package/dist/{CodeBlock-PT4no49I.js → CodeBlock-BBsaC6hX.js} +4 -4
  5. package/dist/{CommunityModels-D7zWnHgG.js → CommunityModels-CIQQhO-y.js} +106 -75
  6. package/dist/{ConnectionErrorPopup-FSs7U-Yl.js → ConnectionErrorPopup-7vpqgF0s.js} +1 -1
  7. package/dist/{ConnectionView-COnTTuA4.js → ConnectionView-7Jj_Ggdi.js} +49 -49
  8. package/dist/{CreateEditorFromDatasourcePopup-snOh1d5h.js → CreateEditorFromDatasourcePopup-CrVHUWFl.js} +4 -4
  9. package/dist/{Dashboard-D1ZCTw5r.js → Dashboard-DxSi9W6Q.js} +276 -280
  10. package/dist/{DashboardImportSelector-CNxibXlS.js → DashboardImportSelector-kuDRDYi8.js} +2 -2
  11. package/dist/{DashboardMobile-D_m0xv17.js → DashboardMobile-CZEgTb0R.js} +39 -39
  12. package/dist/{DrilldownPane-CBs5ZojS.js → DrilldownPane-BheRHJMs.js} +5 -7
  13. package/dist/{Editor-DhsP18KE.js → Editor-D6tdutTm.js} +106 -104
  14. package/dist/{ErrorMessage-XMn_08gJ.js → ErrorMessage-D5JeF3Iz.js} +4 -4
  15. package/dist/{GlobalChatPanel-DFx9A4yP.js → GlobalChatPanel-BXZh0sdD.js} +169 -134
  16. package/dist/{IDE-BRMLxTfP.js → IDE-T8PmyAQ_.js} +200 -203
  17. package/dist/{JobsView-C9PYS6pZ.js → JobsView-Ca97MiSd.js} +12 -13
  18. package/dist/{LLMChat-Cqg6pTgC.js → LLMChat-Cch33Yd_.js} +3 -3
  19. package/dist/{LLMView-VkJpP-49.js → LLMView-BDb6wD74.js} +26 -26
  20. package/dist/{LoadingView-s1uznGwG.js → LoadingView-B-xFwd2N.js} +2 -2
  21. package/dist/{MarkdownRenderer-BNDuEyG-.js → MarkdownRenderer-BWvdx0k3.js} +531 -430
  22. package/dist/MobileIDE-DpdEQEqc.js +783 -0
  23. package/dist/{ModelCard-D8tKkK9-.js → ModelCard-DkAMP4X9.js} +19 -20
  24. package/dist/{ModelView-rAurf9n8.js → ModelView-DomyhN8g.js} +7 -7
  25. package/dist/PageLoading-BAvKGo9h.js +5937 -0
  26. package/dist/{ResultComponent-_-1qZCfv.js → ResultComponent-zoOSoRLe.js} +8 -8
  27. package/dist/{Results-CQGpFmPQ.js → Results-dq-SlJbU.js} +17 -19
  28. package/dist/{StatusIcon-BylPx2EO.js → StatusIcon-AbxNvJ6p.js} +2 -2
  29. package/dist/{StoreTokenModal-zCSYhfrw.js → StoreTokenModal-CM8WXdu1.js} +2 -2
  30. package/dist/{SymbolsPane-BpmL___H.js → SymbolsPane-DfaxeaPS.js} +6 -3
  31. package/dist/{TrilogyEmbedProvider-WA_dlv9e.js → TrilogyEmbedProvider-D3h0gYnX.js} +9 -9
  32. package/dist/{TutorialPage-CZGBRJdq.js → TutorialPage-BtEJG7cT.js} +27 -28
  33. package/dist/{VegaLiteChart-CmkOw6yD.js → VegaLiteChart-BVyAab-o.js} +12191 -10975
  34. package/dist/{WelcomePage-CLKvAvk-.js → WelcomePage-BoqzYBLr.js} +5 -5
  35. package/dist/{embedTheme-Bub46ILG.js → _plugin-vue_export-helper-f9Rw-Il4.js} +14 -6
  36. package/dist/assets/{css.worker-9aDGcEUy.js → css.worker-niORQtzO.js} +14 -14
  37. package/dist/assets/{html.worker-D2LKDpnG.js → html.worker-CO5LvJpF.js} +17 -17
  38. package/dist/assets/json.worker-BezHzWUV.js +58 -0
  39. package/dist/assets/{ts.worker-Bz0-EaKK.js → ts.worker-CYhxGg0r.js} +107 -107
  40. package/dist/{results-DTgAKr5j.js → base-DuKnVD-A.js} +216 -45
  41. package/dist/components/AssetAutoImporter.vue.d.ts.map +1 -1
  42. package/dist/components/FeedbackBanner.vue.d.ts +4 -0
  43. package/dist/components/FeedbackBanner.vue.d.ts.map +1 -0
  44. package/dist/components/TipsCTA.vue.d.ts +1 -1
  45. package/dist/components/VegaLiteChart.vue.d.ts.map +1 -1
  46. package/dist/components/chartHelpers.d.ts +9 -1
  47. package/dist/components/chartHelpers.d.ts.map +1 -1
  48. package/dist/components/chartRenderManager.d.ts +4 -1
  49. package/dist/components/chartRenderManager.d.ts.map +1 -1
  50. package/dist/components/community/AddStoreModal.vue.d.ts +1 -1
  51. package/dist/components/community/AddStoreModal.vue.d.ts.map +1 -1
  52. package/dist/components/community/CommunityModelCard.vue.d.ts.map +1 -1
  53. package/dist/components/dashboard/DashboardCreatorIcon.vue.d.ts +54 -0
  54. package/dist/components/dashboard/DashboardCreatorIcon.vue.d.ts.map +1 -0
  55. package/dist/components/dashboard/DashboardProvenance.vue.d.ts +30 -0
  56. package/dist/components/dashboard/DashboardProvenance.vue.d.ts.map +1 -0
  57. package/dist/components/dashboard/ReportLayout.vue.d.ts +19 -0
  58. package/dist/components/dashboard/ReportLayout.vue.d.ts.map +1 -0
  59. package/dist/components/editor/Editor.vue.d.ts +3 -3
  60. package/dist/components/editor/Editor.vue.d.ts.map +1 -1
  61. package/dist/components/editor/EditorCreatorIcon.vue.d.ts +62 -0
  62. package/dist/components/editor/EditorCreatorIcon.vue.d.ts.map +1 -0
  63. package/dist/components/editor/ValidationComponent.vue.d.ts +50 -0
  64. package/dist/components/editor/ValidationComponent.vue.d.ts.map +1 -0
  65. package/dist/components/jobs/JobsAddStoreModal.vue.d.ts.map +1 -1
  66. package/dist/components/llm/ChatCreatorModal.vue.d.ts +17 -1
  67. package/dist/components/llm/ChatCreatorModal.vue.d.ts.map +1 -1
  68. package/dist/components/llm/ChatModelSelect.vue.d.ts +13 -0
  69. package/dist/components/llm/ChatModelSelect.vue.d.ts.map +1 -0
  70. package/dist/components/llm/GlobalChatPanel.vue.d.ts.map +1 -1
  71. package/dist/components/model/ModelCard.vue.d.ts +3 -3
  72. package/dist/components/sidebar/CommunityModelList.vue.d.ts +33 -50
  73. package/dist/components/sidebar/CommunityModelList.vue.d.ts.map +1 -1
  74. package/dist/components/sidebar/CommunityModelListItem.vue.d.ts.map +1 -1
  75. package/dist/components/sidebar/EditorList.vue.d.ts +32 -49
  76. package/dist/components/sidebar/EditorList.vue.d.ts.map +1 -1
  77. package/dist/components/sidebar/LLMConnectionList.vue.d.ts.map +1 -1
  78. package/dist/components/sidebar/Sidebar.vue.d.ts +65 -99
  79. package/dist/components/sidebar/Sidebar.vue.d.ts.map +1 -1
  80. package/dist/components/tutorial/TutorialPrompt.vue.d.ts +3 -3
  81. package/dist/components/tutorial/TutorialPrompt.vue.d.ts.map +1 -1
  82. package/dist/{remoteWorker-Dkv3TJ0j.js → connections-CWH3zwH2.js} +4544 -4126
  83. package/dist/connections.js +3 -4
  84. package/dist/{cssMode-D4Rzr1Cu.js → cssMode-zpO2ap2B.js} +5 -6
  85. package/dist/dashboard.js +54 -57
  86. package/dist/dashboards/layerSpec.d.ts +38 -4
  87. package/dist/dashboards/layerSpec.d.ts.map +1 -1
  88. package/dist/dashboards/lineAreaSpec.d.ts +8 -80
  89. package/dist/dashboards/lineAreaSpec.d.ts.map +1 -1
  90. package/dist/dashboards/mapSpec.d.ts +1 -0
  91. package/dist/dashboards/mapSpec.d.ts.map +1 -1
  92. package/dist/dashboards/spec.d.ts.map +1 -1
  93. package/dist/data/tutorial/documentation.d.ts.map +1 -1
  94. package/dist/data/tutorial/startupScripts.d.ts +3 -0
  95. package/dist/data/tutorial/startupScripts.d.ts.map +1 -0
  96. package/dist/{dist-CXoL8kXK.js → dist-1z5KURzS.js} +55 -50
  97. package/dist/{dist-DKkuvbPb.js → dist-Bv3D2p5A.js} +20 -18
  98. package/dist/{editor.main-Cl8i7rHY.js → editor.main-BQh6DxDB.js} +33 -33
  99. package/dist/{editorRefinementRuntime-C_YmXRy4.js → editorStore-CAlMJftt.js} +2084 -946
  100. package/dist/embed.js +2 -2
  101. package/dist/entry.dashboard.d.ts +1 -0
  102. package/dist/entry.dashboard.d.ts.map +1 -1
  103. package/dist/{freemarker2-fW5NBILf.js → freemarker2-DQBqlEXc.js} +1 -1
  104. package/dist/{globalChatRuntime-oMLiPLNC.js → globalChatRuntime-CyS7vH51.js} +18 -18
  105. package/dist/{handlebars-dG4w8UUY.js → handlebars-tgYxaM70.js} +1 -1
  106. package/dist/{helpers-DcWCa6bX.js → helpers-BbVlA3Pf.js} +39 -39
  107. package/dist/{html-1Dq70BdU.js → html-jJahD3Mi.js} +1 -1
  108. package/dist/{htmlMode--IQmLBeh.js → htmlMode-BA1-8l2e.js} +5 -6
  109. package/dist/{javascript-CTzBM4sF.js → javascript-Cypfo7va.js} +1 -1
  110. package/dist/{jsonMode-DzeJjIEH.js → jsonMode-xJye8PWS.js} +25 -25
  111. package/dist/{liquid-DlHThiki.js → liquid-BGDrv5da.js} +1 -1
  112. package/dist/llm/data/constants.d.ts +1 -1
  113. package/dist/llm/data/constants.d.ts.map +1 -1
  114. package/dist/llm/data/trilogySyntax.generated.d.ts +7 -1
  115. package/dist/llm/data/trilogySyntax.generated.d.ts.map +1 -1
  116. package/dist/llm/docsIndex.d.ts.map +1 -1
  117. package/dist/llm/openai.d.ts +2 -1
  118. package/dist/llm/openai.d.ts.map +1 -1
  119. package/dist/llm-ClU-2rgk.js +18493 -0
  120. package/dist/llm.js +2 -3
  121. package/dist/{localStorage-CSuYS7QE.js → localStorage-CGQ1iJXt.js} +39 -42
  122. package/dist/{lspLanguageFeatures-Cdfs3EKq.js → lspLanguageFeatures-V3e_p9oN.js} +32 -32
  123. package/dist/{mdx-fn3g4PH5.js → mdx-BUR1aImW.js} +1 -1
  124. package/dist/models/helpers.d.ts.map +1 -1
  125. package/dist/monaco.js +3 -3
  126. package/dist/{python-CCVj0pFt.js → python-YLkl0pc6.js} +1 -1
  127. package/dist/{razor-Cj3flYnk.js → razor-BP8TRMDY.js} +1 -1
  128. package/dist/{reconcile-Bk7M797_.js → reconcile-DXIvGwBk.js} +1 -1
  129. package/dist/{remoteStoreSync-CLvZJrTK.js → remoteStoreSync-CuQBWpWf.js} +3 -3
  130. package/dist/remotes/displayHelpers.d.ts.map +1 -1
  131. package/dist/remotes/genericStoreMetadata.d.ts +1 -0
  132. package/dist/remotes/genericStoreMetadata.d.ts.map +1 -1
  133. package/dist/remotes/models.d.ts +37 -5
  134. package/dist/remotes/models.d.ts.map +1 -1
  135. package/dist/remotes/staticStorePresets.d.ts +22 -0
  136. package/dist/remotes/staticStorePresets.d.ts.map +1 -0
  137. package/dist/remotes/storeService.d.ts +25 -4
  138. package/dist/remotes/storeService.d.ts.map +1 -1
  139. package/dist/{rolldown-runtime-Dqa2HsxW.js → rolldown-runtime-B0aSnxlc.js} +2 -2
  140. package/dist/static/test_import.vue.d.ts +4 -0
  141. package/dist/static/test_import.vue.d.ts.map +1 -0
  142. package/dist/stores/communityApiStore.d.ts +32 -60
  143. package/dist/stores/communityApiStore.d.ts.map +1 -1
  144. package/dist/stores/connectionStore.d.ts.map +1 -1
  145. package/dist/stores/resolver.d.ts +5 -0
  146. package/dist/stores/resolver.d.ts.map +1 -1
  147. package/dist/stores/urlStore.d.ts +1 -0
  148. package/dist/stores/urlStore.d.ts.map +1 -1
  149. package/dist/stores-LlyiwSbK.js +2604 -0
  150. package/dist/stores.js +4 -7
  151. package/dist/trilogy-studio-components.css +1 -1
  152. package/dist/{tsMode-GI4xMYAl.js → tsMode-BH9HS_sH.js} +64 -66
  153. package/dist/{typescript-CPibXi3J.js → typescript-BM-ynfk9.js} +1 -1
  154. package/dist/{useChatWithTools-GV1ufcqw.js → useChatWithTools-m3Jn_SV-.js} +11 -11
  155. package/dist/{useDashboard-OoBKkkuQ.js → useDashboard-BOAuvVEw.js} +1013 -1021
  156. package/dist/{tabulator_esm-CxLvGDp8.js → useGlobalChatPanel-DuP1q7_f.js} +1729 -711
  157. package/dist/{useResizableDialog-B0ePSts4.js → useResizableDialog-Cs90WJdF.js} +2 -2
  158. package/dist/views/MobileIDE.vue.d.ts.map +1 -1
  159. package/dist/views/ModelView.vue.d.ts +6 -6
  160. package/dist/views/ModelView.vue.d.ts.map +1 -1
  161. package/dist/views/TutorialPage.vue.d.ts +41 -58
  162. package/dist/views/TutorialPage.vue.d.ts.map +1 -1
  163. package/dist/views.js +193 -195
  164. package/dist/{editor.api2-ClD5pp8H.js → workers-B9Eybl-M.js} +16252 -15926
  165. package/dist/{xml-BNyphceI.js → xml-M5WFPSpA.js} +1 -1
  166. package/dist/{yaml-DE5Vz0PH.js → yaml-CEeFwjz9.js} +1 -1
  167. package/package.json +29 -20
  168. package/dist/AssetAutoImporter-DfMd_DSk.js +0 -403
  169. package/dist/ChatCreatorModal-BTqY06B6.js +0 -177
  170. package/dist/DashboardCreatorInline-LWvf--2x.js +0 -129
  171. package/dist/DataTable-DoRDynP1.js +0 -365
  172. package/dist/EditorCreatorInline-D6_y1H_h.js +0 -125
  173. package/dist/LoadingButton-OH3frQuO.js +0 -138
  174. package/dist/MobileIDE-CHGJoh05.js +0 -781
  175. package/dist/ModalDialog-D1EOG4rl.js +0 -42
  176. package/dist/ModelCreator-DrxLxeyH.js +0 -253
  177. package/dist/PageLoading-I6mr-7NB.js +0 -2666
  178. package/dist/Tooltip-Dihir4zs.js +0 -103
  179. package/dist/_plugin-vue_export-helper-B3ysoDQm.js +0 -8
  180. package/dist/assets/json.worker-CJ5MmO5Q.js +0 -58
  181. package/dist/base-C8IuZWqY.js +0 -164
  182. package/dist/connectionHistoryStorage-DKJHiKJY.js +0 -111
  183. package/dist/connectionHistoryStore-DQeBvStZ.js +0 -61
  184. package/dist/connections-CJSb1TZl.js +0 -229
  185. package/dist/constants-DgFEYN2b.js +0 -7
  186. package/dist/dashboardStore-CNkWQ4r7.js +0 -641
  187. package/dist/demoSetup-DiW3ROFQ.js +0 -2941
  188. package/dist/editorRefinementToolExecutor-mX8ClQ63.js +0 -4498
  189. package/dist/editorStore-Ch7k-gse.js +0 -972
  190. package/dist/formatting-BbJ5ICgh.js +0 -6
  191. package/dist/llm-_807I79k.js +0 -11965
  192. package/dist/llmStore-CSzM1IZd.js +0 -153
  193. package/dist/monaco.contribution-ikesdolO.js +0 -128
  194. package/dist/stores-C1wUWiFm.js +0 -1708
  195. package/dist/trilogy-BroD2Qmp.js +0 -4
  196. package/dist/urlStore-Dgmwx1YI.js +0 -54
  197. package/dist/useGlobalChatPanel-CIeUyZba.js +0 -85
  198. package/dist/useIsMobile-CNpUQAvk.js +0 -8
  199. package/dist/usePrismHighlight-DVyDiDAL.js +0 -183
  200. package/dist/workers-Br7ThUKL.js +0 -47
@@ -1,164 +0,0 @@
1
- //#region connections/base.ts
2
- var e = /* @__PURE__ */ function(e) {
3
- return e.TABLE = "table", e.VIEW = "view", e;
4
- }({}), t = class {
5
- name;
6
- type;
7
- trilogyType;
8
- nullable;
9
- primary;
10
- unique;
11
- default;
12
- autoincrement;
13
- description = null;
14
- constructor(e, t, n, r, i, a, o, s, c = null) {
15
- this.name = e, this.type = t, this.trilogyType = n, this.nullable = r, this.primary = i, this.unique = a, this.default = o, this.autoincrement = s, this.description = c;
16
- }
17
- }, n = class {
18
- name;
19
- schema;
20
- database;
21
- columns;
22
- description = null;
23
- assetType = "table";
24
- constructor(e, t, n, r, i = null, a = "table") {
25
- this.name = e, this.columns = r, this.description = i, this.assetType = a, this.schema = t, this.database = n;
26
- }
27
- }, r = class {
28
- name;
29
- tables;
30
- database;
31
- description = null;
32
- constructor(e, t, n, r = null) {
33
- this.name = e, this.tables = t, this.database = n, this.description = r;
34
- }
35
- }, i = class {
36
- name;
37
- schemas;
38
- constructor(e, t) {
39
- this.name = e, this.schemas = t;
40
- }
41
- };
42
- function a(e) {
43
- return e.storage === "remote" ? `remote:${e.remoteStoreId || "unknown"}:${e.name}` : `local:${e.name}`;
44
- }
45
- var o = class {
46
- id;
47
- name;
48
- type;
49
- storage;
50
- model = null;
51
- connected;
52
- error = null;
53
- query_type = "abstract";
54
- running = !1;
55
- databases = null;
56
- secureFields = [];
57
- saveCredential = !1;
58
- initialPollingIntervalMs = 1e3;
59
- maxPollingIntervalMs = 6e4;
60
- maxTotalWaitTimeMs = 36e5;
61
- backoffFactor = 1.5;
62
- changed = !1;
63
- deleted = !1;
64
- hasSchema = !0;
65
- constructor(e, t, n = !0, r, i = !1) {
66
- this.name = e, this.type = t, this.model = r || null, this.storage = "local", this.id = a({
67
- name: e,
68
- storage: this.storage
69
- }), this.query_type = "abstract", this.saveCredential = i, this.connected = !1, n && this.connect().then((e) => {
70
- e && (this.connected = !0);
71
- }).catch((e) => {
72
- throw e instanceof Error && (this.error = e.message), e;
73
- }), this.secureFields = [], this.changed = !1;
74
- }
75
- setAttribute(e, t) {
76
- if (!(e in this)) throw Error(`Attribute "${e}" does not exist on BaseConnection.`);
77
- this[e] !== t && (this.changed = !0, this[e] = t, (e === "name" || e === "storage" || e === "remoteStoreId") && this.recomputeId());
78
- }
79
- recomputeId() {
80
- let e = this.remoteStoreId;
81
- this.id = a({
82
- name: this.name,
83
- storage: this.storage,
84
- remoteStoreId: e
85
- });
86
- }
87
- getSecret() {
88
- return null;
89
- }
90
- delete() {
91
- this.deleted = !0, this.changed = !0;
92
- }
93
- setSecret(e) {}
94
- getSecretName() {
95
- return `trilogy-connection-${this.type}-${this.name}`;
96
- }
97
- listRegisteredFiles() {
98
- return [];
99
- }
100
- async refreshDatabase(e) {
101
- let t = this.databases?.find((t) => t.name === e), n = await this.getSchemas(e);
102
- return t ? (t.schemas = n, n) : null;
103
- }
104
- async refreshSchema(e, t) {
105
- let n = this.databases?.find((t) => t.name === e);
106
- n || (n = new i(e, []), this.databases?.push(n));
107
- let a = await this.getSchemas(e), o = a.find((e) => e.name === t);
108
- o || (o = new r(t, [], e), a.push(o));
109
- let s = await this.getTables(e, t);
110
- return n ? (n.schemas = a, o.tables = s.filter((e) => e.schema === t), o) : null;
111
- }
112
- async refreshColumns(e, t, n) {
113
- let r = this.getLocalTable(e, t, n);
114
- if (!r && (r = await this.getTable(e, n, t), !r)) throw Error(`Table ${n} not found in schema ${t} of database ${e}.`);
115
- let i = await this.getColumns(e, t, r?.name || "");
116
- return r.columns = i, i;
117
- }
118
- async getTableSample(e, t, n, r = 100) {
119
- let i = n;
120
- t && t !== e && (i = `${t}.${i}`), e && (i = `${e}.${i}`);
121
- let a = `SELECT * FROM ${i} LIMIT ${r}`;
122
- return this.query(a);
123
- }
124
- getLocalTable(e, t, n) {
125
- if (!this.databases) return null;
126
- let r = this.databases.find((t) => t.name === e);
127
- return !r || !r.schemas ? null : r.schemas.find((e) => e.name === t)?.tables.find((e) => e.name === n) || null;
128
- }
129
- replaceEscapedStrings(e) {
130
- return e.replace(/* @__PURE__ */ RegExp("!`", "g"), "''");
131
- }
132
- async runScript(e) {
133
- await this.query(e);
134
- }
135
- async query(e, t = null, n = null) {
136
- if (!e) throw Error("Query is empty.");
137
- if (!this.connected) throw console.error(`Cannot execute query. ${this.name} is not connected.`), Error("Connection not established.");
138
- this.running = !0;
139
- try {
140
- let r = await this.query_core(this.replaceEscapedStrings(e), t, n);
141
- return this.running = !1, r;
142
- } catch (e) {
143
- throw this.running = !1, e;
144
- }
145
- }
146
- setModel(e) {
147
- this.setAttribute("model", e);
148
- }
149
- async reset() {
150
- try {
151
- this.connected = !1, this.error = null, await this.connect(), this.connected = !0;
152
- } catch (e) {
153
- throw e instanceof Error && (this.error = e.message), e;
154
- }
155
- }
156
- async setError(e) {
157
- this.error = e, this.connected = !1;
158
- }
159
- static fromJSON(e) {
160
- throw Error("Method not implemented.");
161
- }
162
- };
163
- //#endregion
164
- export { r as a, i, o as n, n as o, t as r, a as s, e as t };
@@ -1,111 +0,0 @@
1
- //#region data/connectionHistoryStorage.ts
2
- var e = class {
3
- dbName;
4
- storeName;
5
- db;
6
- constructor() {
7
- this.dbName = "sqlEditorDB", this.storeName = "queryHistory", this.db = null, this._initDB();
8
- }
9
- async _initDB() {
10
- return new Promise((e, t) => {
11
- let n = indexedDB.open(this.dbName, 1);
12
- n.onerror = (e) => {
13
- console.error("Error opening IndexedDB:", e.target.error), t(e.target.error);
14
- }, n.onupgradeneeded = (e) => {
15
- let t = e.target.result;
16
- if (!t.objectStoreNames.contains(this.storeName)) {
17
- let e = t.createObjectStore(this.storeName, {
18
- keyPath: "id",
19
- autoIncrement: !0
20
- });
21
- e.createIndex("connectionName", "connectionName", { unique: !1 }), e.createIndex("timestamp", "timestamp", { unique: !1 });
22
- }
23
- }, n.onsuccess = (t) => {
24
- this.db = t.target.result, e();
25
- };
26
- });
27
- }
28
- async addQuery(e, t) {
29
- this.db || await this._initDB();
30
- let n = {
31
- connectionName: e,
32
- query: t.query,
33
- generatedQuery: t.generatedQuery || null,
34
- timestamp: (/* @__PURE__ */ new Date()).toISOString(),
35
- executionTime: t.executionTime,
36
- status: t.status,
37
- errorMessage: t.errorMessage || null,
38
- resultSize: t.resultSize || 0,
39
- resultColumns: t.resultColumns || 0
40
- };
41
- return new Promise((t, r) => {
42
- if (!this.db) {
43
- r(/* @__PURE__ */ Error("Database not initialized"));
44
- return;
45
- }
46
- let i = this.db.transaction([this.storeName], "readwrite").objectStore(this.storeName).add(n);
47
- i.onsuccess = () => {
48
- this._enforceHistorySizeLimit(e).then(() => t(i.result)).catch(r);
49
- }, i.onerror = (e) => {
50
- console.error("Error adding query to history:", e.target.error), r(e.target.error);
51
- };
52
- });
53
- }
54
- async getQueriesForConnection(e, t = 100) {
55
- return this.db || await this._initDB(), new Promise((n, r) => {
56
- if (!this.db) {
57
- r(/* @__PURE__ */ Error("Database not initialized"));
58
- return;
59
- }
60
- let i = this.db.transaction([this.storeName], "readonly").objectStore(this.storeName).index("connectionName").openCursor(IDBKeyRange.only(e), "prev"), a = [];
61
- i.onsuccess = (e) => {
62
- let r = e.target.result;
63
- r && a.length < t ? (a.push(r.value), r.continue()) : n(a);
64
- }, i.onerror = (e) => {
65
- console.error("Error retrieving query history:", e.target.error), r(e.target.error);
66
- };
67
- });
68
- }
69
- async clearConnectionHistory(e) {
70
- return this.db || await this._initDB(), new Promise((t, n) => {
71
- if (!this.db) {
72
- n(/* @__PURE__ */ Error("Database not initialized"));
73
- return;
74
- }
75
- let r = this.db.transaction([this.storeName], "readwrite").objectStore(this.storeName).index("connectionName").openCursor(IDBKeyRange.only(e));
76
- r.onsuccess = (e) => {
77
- let n = e.target.result;
78
- n ? (n.delete(), n.continue()) : t();
79
- }, r.onerror = (e) => {
80
- console.error("Error clearing history:", e.target.error), n(e.target.error);
81
- };
82
- });
83
- }
84
- async _enforceHistorySizeLimit(e) {
85
- return new Promise((t, n) => {
86
- if (!this.db) {
87
- n(/* @__PURE__ */ Error("Database not initialized"));
88
- return;
89
- }
90
- let r = this.db.transaction([this.storeName], "readwrite").objectStore(this.storeName).index("connectionName"), i = r.count(IDBKeyRange.only(e));
91
- i.onsuccess = () => {
92
- let a = i.result;
93
- if (a <= 100) {
94
- t();
95
- return;
96
- }
97
- let o = a - 100, s = r.openCursor(IDBKeyRange.only(e)), c = 0;
98
- s.onsuccess = (e) => {
99
- let n = e.target.result;
100
- n && c < o ? (n.delete(), c++, n.continue()) : t();
101
- }, s.onerror = (e) => {
102
- console.error("Error trimming history:", e.target.error), n(e.target.error);
103
- };
104
- }, i.onerror = (e) => {
105
- console.error("Error counting history records:", e.target.error), n(e.target.error);
106
- };
107
- });
108
- }
109
- };
110
- //#endregion
111
- export { e as t };
@@ -1,61 +0,0 @@
1
- import { t as e } from "./connectionHistoryStorage-DKJHiKJY.js";
2
- import { ref as t } from "vue";
3
- //#region stores/connectionHistoryStore.ts
4
- var n = null, r = () => (n ||= new e(), n);
5
- function i(e) {
6
- let n = t([]), i = t(!0), a = t(null), o = async () => {
7
- i.value = !0;
8
- try {
9
- let t = await r().getQueriesForConnection(e);
10
- n.value = t, a.value = null;
11
- } catch (e) {
12
- console.error("Failed to load query history:", e), a.value = "Failed to load query history";
13
- } finally {
14
- i.value = !1;
15
- }
16
- }, s = async (t) => {
17
- try {
18
- await r().addQuery(e, t), await o();
19
- } catch (e) {
20
- console.error("Failed to record query:", e), a.value = "Failed to record query";
21
- }
22
- };
23
- return o(), {
24
- history: n,
25
- isLoading: i,
26
- error: a,
27
- recordQuery: s,
28
- clearHistory: async () => {
29
- i.value = !0;
30
- try {
31
- await r().clearConnectionHistory(e), n.value = [], a.value = null;
32
- } catch (e) {
33
- console.error("Failed to clear query history:", e), a.value = "Failed to clear query history";
34
- } finally {
35
- i.value = !1;
36
- }
37
- },
38
- executeWithHistory: async (e, t) => {
39
- let n = performance.now(), r = "success", i = null, a = 0, o = 0, c = null;
40
- try {
41
- c = await e(t), c && Array.isArray(c) && (a = c.length, a > 0 && typeof c[0] == "object" && (o = Object.keys(c[0]).length));
42
- } catch (e) {
43
- throw r = "error", i = e instanceof Error ? e.message : String(e), e;
44
- } finally {
45
- let e = performance.now() - n;
46
- await s({
47
- query: t,
48
- executionTime: e,
49
- status: r,
50
- errorMessage: i,
51
- resultSize: a,
52
- resultColumns: o
53
- });
54
- }
55
- return c;
56
- },
57
- refreshHistory: o
58
- };
59
- }
60
- //#endregion
61
- export { i as t };
@@ -1,229 +0,0 @@
1
- import { r as e, t } from "./results-DTgAKr5j.js";
2
- import { a as n, i as r, n as i, o as a, r as o, t as s } from "./base-C8IuZWqY.js";
3
- //#region connections/motherduck.ts
4
- var c = class n extends i {
5
- connection;
6
- mdToken;
7
- saveCredential;
8
- constructor(e, t, n, r = !1) {
9
- super(e, "motherduck", !0, n, r), this.mdToken = t, this.query_type = "duckdb", this.secureFields = ["mdToken"], this.saveCredential = r;
10
- }
11
- toJSON() {
12
- return {
13
- id: this.id,
14
- name: this.name,
15
- type: this.type,
16
- model: this.model,
17
- mdToken: this.saveCredential ? "saved" : ""
18
- };
19
- }
20
- getSecret() {
21
- return this.mdToken;
22
- }
23
- setSecret(e) {
24
- this.mdToken = e;
25
- }
26
- static async fromJSON(e) {
27
- let t = new n(e.name, "");
28
- return e.model && (t.model = e.model), t;
29
- }
30
- async connect() {
31
- if (!this.mdToken) return console.log("Missing MotherDuck token."), this.error = "Missing MotherDuck token.", !1;
32
- let { MDConnection: e } = await import("@motherduck/wasm-client");
33
- return this.connection = e.create({ mdToken: this.mdToken }), this.error = null, !0;
34
- }
35
- async query(n, r = null, i = null) {
36
- let a = this.replaceEscapedStrings(n);
37
- r && Object.keys(r).length > 0 && (a = a.replace(/(?<!:):([a-zA-Z_]\w*)/g, (e, t) => {
38
- if (!(t in r)) return `:${t}`;
39
- let n = r[t];
40
- return typeof n == "string" ? `'${n.replace(/'/g, "''")}'` : String(n);
41
- }));
42
- let o = await this.connection.evaluateQuery(a);
43
- return new e(new Map(o.data.columnNames().map((e) => [e, {
44
- name: e,
45
- type: t.STRING,
46
- description: ""
47
- }])), o.data.toRows());
48
- }
49
- }, l = null;
50
- function u(e) {
51
- l = e;
52
- }
53
- var d = {};
54
- async function f() {
55
- return (await import("sql.js")).default;
56
- }
57
- async function p(e = "default") {
58
- if (d[e]) return d[e];
59
- let t = await f(), n = {};
60
- l?.wasmUrl && (n.locateFile = () => l.wasmUrl);
61
- let r = await t(n), i = new r.Database();
62
- return d[e] = {
63
- sql: r,
64
- db: i
65
- }, {
66
- sql: r,
67
- db: i
68
- };
69
- }
70
- var m = class c extends i {
71
- db;
72
- sql;
73
- static fromJSON(e) {
74
- let t = new c(e.name);
75
- return e.model && (t.model = e.model), t;
76
- }
77
- toJSON() {
78
- return {
79
- id: this.id,
80
- name: this.name,
81
- type: this.type,
82
- model: this.model
83
- };
84
- }
85
- async connect() {
86
- let e = await p(this.name);
87
- return this.db = e.db, this.sql = e.sql, !0;
88
- }
89
- constructor(e, t) {
90
- super(e, "sqlite", !1, t), this.query_type = "sqlite", this.hasSchema = !1;
91
- }
92
- sanitizeTableName(e) {
93
- let t = e.replace(/[^a-zA-Z0-9]/g, "_");
94
- return /^\d/.test(t) ? `t_${t}` : t;
95
- }
96
- getFileType(e) {
97
- return e.type === "text/csv" || e.name.endsWith(".csv") ? "csv" : "db";
98
- }
99
- inferColumnType(e) {
100
- let t = e.filter((e) => e !== null && e !== "");
101
- return t.length === 0 ? "TEXT" : t.every((e) => /^-?\d+$/.test(e)) ? "INTEGER" : t.every((e) => /^-?\d+\.?\d*([eE][+-]?\d+)?$/.test(e)) ? "REAL" : "TEXT";
102
- }
103
- parseCSV(e) {
104
- let t = e.split(/\r?\n/).filter((e) => e.trim() !== "");
105
- if (t.length === 0) return {
106
- headers: [],
107
- rows: []
108
- };
109
- let n = (e) => {
110
- let t = [], n = "", r = !1;
111
- for (let i = 0; i < e.length; i++) {
112
- let a = e[i];
113
- r ? a === "\"" && e[i + 1] === "\"" ? (n += "\"", i++) : a === "\"" ? r = !1 : n += a : a === "\"" ? r = !0 : a === "," ? (t.push(n.trim()), n = "") : n += a;
114
- }
115
- return t.push(n.trim()), t;
116
- };
117
- return {
118
- headers: n(t[0]),
119
- rows: t.slice(1).map(n)
120
- };
121
- }
122
- async processCSV(e, t, n) {
123
- n?.("Analyzing CSV structure...");
124
- let r = await e.text(), { headers: i, rows: a } = this.parseCSV(r);
125
- if (i.length === 0) throw Error("CSV file has no columns");
126
- let o = a.slice(0, 100), s = i.map((e, t) => {
127
- let n = o.map((e) => e[t] ?? null);
128
- return this.inferColumnType(n);
129
- }), c = i.map((e, t) => `"${e.replace(/[^a-zA-Z0-9_]/g, "_")}" ${s[t]}`).join(", ");
130
- this.db.run(`DROP TABLE IF EXISTS ${t}`), this.db.run(`CREATE TABLE ${t} (${c})`), n?.("Importing CSV data...");
131
- let l = `INSERT INTO ${t} VALUES (${i.map((e, t) => `:v${t}`).join(", ")})`;
132
- this.db.run("BEGIN TRANSACTION");
133
- try {
134
- for (let e of a) {
135
- let t = {};
136
- i.forEach((n, r) => {
137
- let i = e[r];
138
- i === void 0 || i === "" ? t[`:v${r}`] = null : s[r] === "INTEGER" ? t[`:v${r}`] = parseInt(i, 10) : s[r] === "REAL" ? t[`:v${r}`] = parseFloat(i) : t[`:v${r}`] = i;
139
- }), this.db.run(l, t);
140
- }
141
- this.db.run("COMMIT");
142
- } catch (e) {
143
- throw this.db.run("ROLLBACK"), e;
144
- }
145
- }
146
- async processSQLiteFile(e, t) {
147
- t?.(`Loading database ${e.name}...`);
148
- let n = await e.arrayBuffer(), r = new Uint8Array(n);
149
- return this.db.close(), this.db = new this.sql.Database(r), d[this.name] = {
150
- sql: this.sql,
151
- db: this.db
152
- }, "main";
153
- }
154
- async importFile(e, t) {
155
- if (t?.(`Processing ${e.name}...`), this.getFileType(e) === "db") return await this.processSQLiteFile(e, t), await this.getDatabases(), {
156
- type: "database",
157
- name: "main"
158
- };
159
- {
160
- let n = e.name.replace(".csv", ""), r = this.sanitizeTableName(n);
161
- return t?.(`Creating table ${r}...`), await this.processCSV(e, r, t), await this.refreshDatabase("main"), {
162
- type: "table",
163
- name: r
164
- };
165
- }
166
- }
167
- async query_core(t, n = null, r = null) {
168
- let i = this.db.exec(t, n ?? void 0);
169
- if (i.length === 0) return new e(/* @__PURE__ */ new Map(), []);
170
- let a = i[0], o = /* @__PURE__ */ new Map();
171
- return a.columns.forEach((e) => {
172
- o.set(e, {
173
- name: e,
174
- type: this.inferColumnTypeFromValues(a.values, a.columns.indexOf(e)),
175
- description: ""
176
- });
177
- }), new e(o, a.values.map((e) => {
178
- let t = {};
179
- return a.columns.forEach((n, r) => {
180
- t[n] = e[r];
181
- }), t;
182
- }));
183
- }
184
- inferColumnTypeFromValues(e, n) {
185
- for (let r of e) {
186
- let e = r[n];
187
- if (e != null) return typeof e == "number" ? Number.isInteger(e) ? t.INTEGER : t.FLOAT : typeof e == "boolean" ? t.BOOLEAN : t.STRING;
188
- }
189
- return t.STRING;
190
- }
191
- async cancelQuery(e) {
192
- return !1;
193
- }
194
- async getDatabases() {
195
- let e = [new r("main", [])];
196
- return this.databases = e, e;
197
- }
198
- async getSchemas(e) {
199
- return [new n("main", [], "main")];
200
- }
201
- async getTables(e, t) {
202
- let n = this.db.exec("SELECT name, type FROM sqlite_master WHERE type IN ('table', 'view') AND name NOT LIKE 'sqlite_%' ORDER BY name");
203
- return n.length === 0 ? [] : n[0].values.map((e) => new a(e[0], "main", "main", [], null, e[1] === "view" ? s.VIEW : s.TABLE));
204
- }
205
- async getColumns(e, t, n) {
206
- let r = this.db.exec(`PRAGMA table_info("${n}")`);
207
- return r.length === 0 ? [] : r[0].values.map((e) => {
208
- let t = e[1], n = e[2] || "TEXT", r = e[3], i = e[4], a = e[5];
209
- return new o(t, n, this.mapSQLiteTypeToColumnType(n), r === 0, a > 0, !1, i, !1);
210
- });
211
- }
212
- async getTable(e, t, n) {
213
- let r = n || "main", i = this.getLocalTable(e, r, t);
214
- if (i) return i;
215
- let a = (await this.getTables(e, r)).find((e) => e.name === t);
216
- if (!a) throw Error(`Table ${t} not found in database ${e}`);
217
- return a.columns = await this.getColumns(e, r, t), a;
218
- }
219
- async getTableSample(e, t, n, r = 100) {
220
- let i = `SELECT * FROM "${n}" LIMIT ${r}`;
221
- return this.query(i);
222
- }
223
- mapSQLiteTypeToColumnType(e) {
224
- let n = e.toUpperCase();
225
- return n.includes("INT") ? t.INTEGER : n.includes("REAL") || n.includes("FLOAT") || n.includes("DOUBLE") ? t.FLOAT : n.includes("BOOL") ? t.BOOLEAN : n.includes("DATE") && n.includes("TIME") ? t.DATETIME : n.includes("DATE") ? t.DATE : n.includes("NUMERIC") || n.includes("DECIMAL") ? t.NUMERIC : t.STRING;
226
- }
227
- };
228
- //#endregion
229
- export { u as n, c as r, m as t };
@@ -1,7 +0,0 @@
1
- function e(e, t) {
2
- t ||= "+";
3
- let n = e.lastIndexOf(t);
4
- return n === -1 ? e : e.substring(n + t.length);
5
- }
6
- //#endregion
7
- export { e as t };