windmill-components 1.269.4 → 1.291.4

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 (339) hide show
  1. package/package/ata/apis.d.ts +8 -5
  2. package/package/ata/apis.js +20 -9
  3. package/package/ata/edgeCases.js +5 -1
  4. package/package/ata/index.d.ts +3 -3
  5. package/package/ata/index.js +51 -28
  6. package/package/common.d.ts +1 -0
  7. package/package/components/AddUser.svelte +15 -6
  8. package/package/components/ApiConnectForm.svelte +1 -1
  9. package/package/components/ArgEnum.svelte +1 -1
  10. package/package/components/ArgEnum.svelte.d.ts +1 -1
  11. package/package/components/ArgInfo.svelte +2 -1
  12. package/package/components/ArgInput.svelte +7 -6
  13. package/package/components/ArgInput.svelte.d.ts +1 -1
  14. package/package/components/ArrayTypeNarrowing.svelte +2 -0
  15. package/package/components/CenteredModal.svelte +5 -2
  16. package/package/components/ChangeInstanceUsername.svelte +123 -0
  17. package/package/components/ChangeInstanceUsername.svelte.d.ts +20 -0
  18. package/package/components/ContentSearch.svelte +3 -4
  19. package/package/components/ContentSearch.svelte.d.ts +0 -3
  20. package/package/components/DateTimeInput.svelte +73 -9
  21. package/package/components/DateTimeInput.svelte.d.ts +8 -1
  22. package/package/components/DefaultScripts.svelte +26 -0
  23. package/package/components/DefaultScripts.svelte.d.ts +14 -0
  24. package/package/components/DefaultScriptsInner.svelte +75 -0
  25. package/package/components/DefaultScriptsInner.svelte.d.ts +14 -0
  26. package/package/components/Dev.svelte +59 -17
  27. package/package/components/DisplayResult.svelte +73 -67
  28. package/package/components/DurationMs.svelte +9 -8
  29. package/package/components/DurationMs.svelte.d.ts +1 -0
  30. package/package/components/Editor.svelte +23 -7
  31. package/package/components/FieldHeader.svelte +7 -7
  32. package/package/components/FlowBuilder.svelte +24 -13
  33. package/package/components/FlowBuilder.svelte.d.ts +0 -3
  34. package/package/components/FlowLoopIterationPreview.svelte +6 -5
  35. package/package/components/FlowMetadata.svelte +6 -2
  36. package/package/components/FlowPreviewContent.svelte +5 -5
  37. package/package/components/FolderEditor.svelte +20 -39
  38. package/package/components/GroupEditor.svelte +1 -1
  39. package/package/components/HighlightCode.svelte +7 -5
  40. package/package/components/IconedResourceType.svelte +5 -3
  41. package/package/components/IconedResourceType.svelte.d.ts +21 -7
  42. package/package/components/InputTransformForm.svelte +6 -1
  43. package/package/components/InstanceSettings.svelte +29 -17
  44. package/package/components/InstanceSettings.svelte.d.ts +3 -0
  45. package/package/components/InviteGlobalUser.svelte +1 -1
  46. package/package/components/JobArgs.svelte +20 -7
  47. package/package/components/JobStatus.svelte +8 -2
  48. package/package/components/LightweightArgInput.svelte +30 -14
  49. package/package/components/LightweightSchemaForm.svelte +1 -0
  50. package/package/components/LogViewer.svelte +21 -6
  51. package/package/components/ModulePreview.svelte +19 -11
  52. package/package/components/ModulePreview.svelte.d.ts +3 -2
  53. package/package/components/ObjectResourceInput.svelte +2 -0
  54. package/package/components/ObjectResourceInput.svelte.d.ts +1 -0
  55. package/package/components/Password.svelte +5 -2
  56. package/package/components/Password.svelte.d.ts +1 -0
  57. package/package/components/Path.svelte +10 -11
  58. package/package/components/ResourcePicker.svelte +28 -9
  59. package/package/components/ResourcePicker.svelte.d.ts +1 -0
  60. package/package/components/RunChart.svelte +1 -0
  61. package/package/components/RunForm.svelte +9 -17
  62. package/package/components/RunFormAdvancedPopup.svelte +11 -12
  63. package/package/components/S3FilePicker.svelte +1 -0
  64. package/package/components/ScheduleEditorInner.svelte +10 -9
  65. package/package/components/ScheduleEditorInner.svelte.d.ts +2 -2
  66. package/package/components/SchemaEditor.svelte +12 -1
  67. package/package/components/SchemaForm.svelte +1 -2
  68. package/package/components/SchemaModal.svelte +2 -2
  69. package/package/components/ScriptBuilder.svelte +152 -79
  70. package/package/components/ScriptBuilder.svelte.d.ts +1 -1
  71. package/package/components/ScriptEditor.svelte +8 -9
  72. package/package/components/ScriptSchedules.svelte +99 -0
  73. package/package/components/ScriptSchedules.svelte.d.ts +20 -0
  74. package/package/components/ShareModal.svelte +1 -0
  75. package/package/components/StringTypeNarrowing.svelte +9 -3
  76. package/package/components/SuperadminSettings.svelte +114 -10
  77. package/package/components/TestJobLoader.svelte +8 -0
  78. package/package/components/TestJobLoader.svelte.d.ts +1 -0
  79. package/package/components/TimeAgo.svelte +2 -2
  80. package/package/components/TimelineBar.svelte +5 -2
  81. package/package/components/Toggle.svelte +5 -2
  82. package/package/components/Toggle.svelte.d.ts +1 -0
  83. package/package/components/Tooltip.svelte +13 -2
  84. package/package/components/Tooltip.svelte.d.ts +1 -0
  85. package/package/components/Uptodate.svelte +12 -6
  86. package/package/components/UserSettings.svelte +87 -73
  87. package/package/components/WorkerTagPicker.svelte +4 -2
  88. package/package/components/WorkflowTimeline.svelte +106 -0
  89. package/package/components/WorkflowTimeline.svelte.d.ts +18 -0
  90. package/package/components/WorkspaceGroup.svelte +1 -0
  91. package/package/components/apps/components/buttons/AppButton.svelte +9 -19
  92. package/package/components/apps/components/display/AppCustomComponent.svelte +2 -4
  93. package/package/components/apps/components/display/dbtable/AppDbExplorer.svelte +246 -94
  94. package/package/components/apps/components/display/dbtable/AppDbExplorer.svelte.d.ts +0 -3
  95. package/package/components/apps/components/display/dbtable/DbExplorerCount.svelte +17 -5
  96. package/package/components/apps/components/display/dbtable/DbExplorerCount.svelte.d.ts +6 -2
  97. package/package/components/apps/components/display/dbtable/DeleteRow.svelte +6 -4
  98. package/package/components/apps/components/display/dbtable/DeleteRow.svelte.d.ts +3 -3
  99. package/package/components/apps/components/display/dbtable/InsertRow.svelte +55 -37
  100. package/package/components/apps/components/display/dbtable/InsertRow.svelte.d.ts +17 -1
  101. package/package/components/apps/components/display/dbtable/InsertRowRunnable.svelte +4 -3
  102. package/package/components/apps/components/display/dbtable/InsertRowRunnable.svelte.d.ts +2 -2
  103. package/package/components/apps/components/display/dbtable/UpdateCell.svelte +5 -4
  104. package/package/components/apps/components/display/dbtable/UpdateCell.svelte.d.ts +3 -3
  105. package/package/components/apps/components/display/dbtable/queries/count.d.ts +4 -0
  106. package/package/components/apps/components/display/dbtable/queries/count.js +140 -0
  107. package/package/components/apps/components/display/dbtable/queries/delete.d.ts +3 -0
  108. package/package/components/apps/components/display/dbtable/queries/delete.js +68 -0
  109. package/package/components/apps/components/display/dbtable/queries/insert.d.ts +5 -0
  110. package/package/components/apps/components/display/dbtable/queries/insert.js +121 -0
  111. package/package/components/apps/components/display/dbtable/queries/select.d.ts +7 -0
  112. package/package/components/apps/components/display/dbtable/queries/select.js +196 -0
  113. package/package/components/apps/components/display/dbtable/queries/update.d.ts +3 -0
  114. package/package/components/apps/components/display/dbtable/queries/update.js +75 -0
  115. package/package/components/apps/components/display/dbtable/utils.d.ts +79 -0
  116. package/package/components/apps/components/display/dbtable/utils.js +284 -309
  117. package/package/components/apps/components/display/table/AppAggridExplorerTable.svelte +39 -19
  118. package/package/components/apps/components/display/table/AppAggridExplorerTable.svelte.d.ts +0 -2
  119. package/package/components/apps/components/display/table/AppAggridTable.svelte +4 -1
  120. package/package/components/apps/components/display/table/AppTable.svelte +4 -0
  121. package/package/components/apps/components/display/table/AppTable.svelte.d.ts +2 -2
  122. package/package/components/apps/components/display/table/utils.js +42 -0
  123. package/package/components/apps/components/helpers/InputValue.svelte +10 -8
  124. package/package/components/apps/components/helpers/InputValue.svelte.d.ts +1 -0
  125. package/package/components/apps/components/helpers/RefreshButton.svelte +1 -1
  126. package/package/components/apps/components/helpers/ResolveConfig.svelte +2 -0
  127. package/package/components/apps/components/helpers/RunnableComponent.svelte +6 -2
  128. package/package/components/apps/components/helpers/eval.d.ts +2 -2
  129. package/package/components/apps/components/helpers/eval.js +33 -11
  130. package/package/components/apps/components/inputs/AppCheckbox.svelte +4 -0
  131. package/package/components/apps/components/inputs/AppCheckbox.svelte.d.ts +1 -0
  132. package/package/components/apps/components/inputs/AppDateInput.svelte +2 -2
  133. package/package/components/apps/components/inputs/AppDateTimeInput.svelte +121 -0
  134. package/package/components/apps/components/inputs/AppDateTimeInput.svelte.d.ts +22 -0
  135. package/package/components/apps/components/inputs/AppSelect.svelte +5 -0
  136. package/package/components/apps/components/inputs/AppSelect.svelte.d.ts +1 -0
  137. package/package/components/apps/components/inputs/AppTimeInput.svelte +103 -0
  138. package/package/components/apps/components/inputs/AppTimeInput.svelte.d.ts +21 -0
  139. package/package/components/apps/components/layout/AppConditionalWrapper.svelte +0 -1
  140. package/package/components/apps/components/layout/AppDecisionTree.svelte +12 -0
  141. package/package/components/apps/components/layout/AppStepper.svelte +4 -2
  142. package/package/components/apps/editor/AppEditor.svelte +19 -4
  143. package/package/components/apps/editor/AppEditorHeader.svelte +42 -14
  144. package/package/components/apps/editor/AppEditorHeader.svelte.d.ts +2 -0
  145. package/package/components/apps/editor/AppTimeline.svelte +4 -4
  146. package/package/components/apps/editor/DecisionTreeDebug.svelte +1 -1
  147. package/package/components/apps/editor/DeploymentHistory.svelte +1 -1
  148. package/package/components/apps/editor/GridEditorMenu.svelte +3 -3
  149. package/package/components/apps/editor/RecomputeAllComponents.svelte +1 -1
  150. package/package/components/apps/editor/SettingsPanel.svelte +2 -0
  151. package/package/components/apps/editor/TabsDebug.svelte +2 -2
  152. package/package/components/apps/editor/appUtils.js +8 -0
  153. package/package/components/apps/editor/component/Component.svelte +21 -0
  154. package/package/components/apps/editor/component/components.d.ts +168 -9
  155. package/package/components/apps/editor/component/components.js +203 -10
  156. package/package/components/apps/editor/component/sets.js +2 -0
  157. package/package/components/apps/editor/componentsPanel/ComponentList.svelte +3 -3
  158. package/package/components/apps/editor/componentsPanel/ThemeList.svelte +1 -0
  159. package/package/components/apps/editor/componentsPanel/ThemeList.svelte.d.ts +2 -0
  160. package/package/components/apps/editor/componentsPanel/ThemeRow.svelte +8 -4
  161. package/package/components/apps/editor/componentsPanel/componentControlUtils.js +2 -0
  162. package/package/components/apps/editor/componentsPanel/quickStyleProperties.js +6 -0
  163. package/package/components/apps/editor/contextPanel/DebugPanel.svelte +178 -0
  164. package/package/components/apps/editor/contextPanel/DebugPanel.svelte.d.ts +14 -0
  165. package/package/components/apps/editor/inlineScriptsPanel/CacheTtlPopup.svelte +3 -1
  166. package/package/components/apps/editor/inlineScriptsPanel/EmptyInlineScript.svelte +9 -18
  167. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte +11 -16
  168. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorPanel.svelte +2 -2
  169. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptHiddenRunnable.svelte +2 -2
  170. package/package/components/apps/editor/inlineScriptsPanel/RunButton.svelte +4 -12
  171. package/package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte +27 -4
  172. package/package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte.d.ts +3 -1
  173. package/package/components/apps/editor/settingsPanel/ComponentPanel.svelte +68 -28
  174. package/package/components/apps/editor/settingsPanel/DecisionTreeGraphEditor.svelte +1 -1
  175. package/package/components/apps/editor/settingsPanel/GridCondition.svelte +57 -43
  176. package/package/components/apps/editor/settingsPanel/GridTab.svelte +15 -12
  177. package/package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte +9 -3
  178. package/package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte.d.ts +4 -0
  179. package/package/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte +8 -0
  180. package/package/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte.d.ts +2 -0
  181. package/package/components/apps/editor/settingsPanel/OneOfInputSpecsEditor.svelte +6 -0
  182. package/package/components/apps/editor/settingsPanel/OneOfInputSpecsEditor.svelte.d.ts +2 -0
  183. package/package/components/apps/editor/settingsPanel/Recompute.svelte +4 -5
  184. package/package/components/apps/editor/settingsPanel/Recompute.svelte.d.ts +3 -0
  185. package/package/components/apps/editor/settingsPanel/inputEditor/ColorInput.svelte +4 -2
  186. package/package/components/apps/editor/settingsPanel/inputEditor/DBTableSelect.svelte +42 -0
  187. package/package/components/apps/editor/settingsPanel/inputEditor/DBTableSelect.svelte.d.ts +19 -0
  188. package/package/components/apps/editor/settingsPanel/inputEditor/EvalV2InputEditor.svelte +24 -2
  189. package/package/components/apps/editor/settingsPanel/inputEditor/EvalV2InputEditor.svelte.d.ts +2 -0
  190. package/package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte +25 -15
  191. package/package/components/apps/editor/settingsPanel/script/BackgroundScriptSettings.svelte +1 -1
  192. package/package/components/apps/editor/settingsPanel/script/ComponentScriptSettings.svelte +1 -1
  193. package/package/components/apps/editor/settingsPanel/script/shared/ScriptSettingHeader.svelte +8 -1
  194. package/package/components/apps/editor/settingsPanel/script/shared/ScriptSettingHeader.svelte.d.ts +1 -0
  195. package/package/components/apps/editor/settingsPanel/script/shared/ScriptTriggers.svelte +13 -0
  196. package/package/components/apps/inputType.d.ts +2 -2
  197. package/package/components/apps/svelte-select/lib/Select.svelte +2 -1
  198. package/package/components/apps/types.d.ts +5 -3
  199. package/package/components/build_workers.js +9 -13
  200. package/package/components/common/button/Button.svelte +78 -36
  201. package/package/components/common/button/Button.svelte.d.ts +7 -0
  202. package/package/components/common/button/model.d.ts +0 -1
  203. package/package/components/common/button/model.js +0 -8
  204. package/package/components/common/calendarPicker/CalendarPicker.svelte +11 -37
  205. package/package/components/common/confirmationModal/ConfirmationModal.svelte +11 -10
  206. package/package/components/common/confirmationModal/UnsavedConfirmationModal.svelte +5 -12
  207. package/package/components/common/confirmationModal/UnsavedConfirmationModal.svelte.d.ts +0 -3
  208. package/package/components/common/table/ScriptRow.svelte +28 -1
  209. package/package/components/common/tabs/Tab.svelte +6 -4
  210. package/package/components/common/tabs/Tab.svelte.d.ts +1 -0
  211. package/package/components/common/toggleButton-v2/ToggleButtonGroup.svelte +4 -2
  212. package/package/components/copilot/IteratorGen.svelte +10 -5
  213. package/package/components/copilot/MetadataGen.svelte +6 -1
  214. package/package/components/copilot/PredicateGen.svelte +3 -4
  215. package/package/components/copilot/ScriptFix.svelte +1 -1
  216. package/package/components/copilot/StepGen.svelte +2 -1
  217. package/package/components/copilot/StepGen.svelte.d.ts +1 -0
  218. package/package/components/copilot/StepInputGen.svelte +13 -7
  219. package/package/components/copilot/StepInputsGen.svelte +12 -7
  220. package/package/components/copilot/lib.d.ts +1 -1
  221. package/package/components/copilot/lib.js +2 -2
  222. package/package/components/details/Menu.svelte +11 -6
  223. package/package/components/details/Menu.svelte.d.ts +1 -3
  224. package/package/components/details/WebhooksPanel.svelte +1 -1
  225. package/package/components/flows/content/FlowBranchesAllWrapper.svelte +11 -10
  226. package/package/components/flows/content/FlowBranchesOneWrapper.svelte +11 -9
  227. package/package/components/flows/content/FlowInputs.svelte +84 -238
  228. package/package/components/flows/content/FlowLoop.svelte +25 -16
  229. package/package/components/flows/content/FlowModuleComponent.svelte +17 -2
  230. package/package/components/flows/content/FlowModuleComponent.svelte.d.ts +1 -0
  231. package/package/components/flows/content/FlowModuleWrapper.svelte +5 -0
  232. package/package/components/flows/content/FlowSchedules.svelte +75 -1
  233. package/package/components/flows/content/FlowSettings.svelte +5 -0
  234. package/package/components/flows/content/SuspendDrawer.svelte +1 -1
  235. package/package/components/flows/flowStateUtils.d.ts +1 -1
  236. package/package/components/flows/flowStateUtils.js +2 -2
  237. package/package/components/flows/idUtils.js +12 -1
  238. package/package/components/flows/map/FlowModuleSchemaMap.svelte +2 -2
  239. package/package/components/flows/map/InsertModuleButton.svelte +1 -3
  240. package/package/components/flows/map/MapItem.svelte +1 -1
  241. package/package/components/flows/pickers/FlowScriptPicker.svelte.d.ts +1 -1
  242. package/package/components/flows/scheduleUtils.d.ts +2 -1
  243. package/package/components/flows/scheduleUtils.js +2 -1
  244. package/package/components/home/ItemsList.svelte +10 -9
  245. package/package/components/icons/AsanaIcon.svelte +5 -0
  246. package/package/components/icons/AsanaIcon.svelte.d.ts +17 -0
  247. package/package/components/icons/BitbucketIcon.svelte +19 -0
  248. package/package/components/icons/BitbucketIcon.svelte.d.ts +17 -0
  249. package/package/components/icons/CACertificate.svelte +7 -0
  250. package/package/components/icons/CACertificate.svelte.d.ts +17 -0
  251. package/package/components/icons/CurrencyApiIcon.svelte +24 -0
  252. package/package/components/icons/CurrencyApiIcon.svelte.d.ts +17 -0
  253. package/package/components/icons/DynatraceIcon.svelte +26 -0
  254. package/package/components/icons/DynatraceIcon.svelte.d.ts +17 -0
  255. package/package/components/icons/EdgeDbIcon.svelte +25 -0
  256. package/package/components/icons/EdgeDbIcon.svelte.d.ts +17 -0
  257. package/package/components/icons/GitIcon.svelte +7 -0
  258. package/package/components/icons/GitIcon.svelte.d.ts +17 -0
  259. package/package/components/icons/GoogleCloudIcon.svelte +20 -0
  260. package/package/components/icons/GoogleCloudIcon.svelte.d.ts +17 -0
  261. package/package/components/icons/IpinfoIcon.svelte +8 -0
  262. package/package/components/icons/IpinfoIcon.svelte.d.ts +17 -0
  263. package/package/components/icons/MSTeamsIcon.svelte +5 -0
  264. package/package/components/icons/MSTeamsIcon.svelte.d.ts +17 -0
  265. package/package/components/icons/MailgunIcon.svelte +11 -0
  266. package/package/components/icons/MailgunIcon.svelte.d.ts +17 -0
  267. package/package/components/icons/PushoverIcon.svelte +8 -0
  268. package/package/components/icons/PushoverIcon.svelte.d.ts +17 -0
  269. package/package/components/icons/QuickbooksIcon.svelte +5 -0
  270. package/package/components/icons/QuickbooksIcon.svelte.d.ts +17 -0
  271. package/package/components/icons/ResendIcon.svelte +7 -0
  272. package/package/components/icons/ResendIcon.svelte.d.ts +17 -0
  273. package/package/components/icons/TrelloIcon.svelte +5 -0
  274. package/package/components/icons/TrelloIcon.svelte.d.ts +17 -0
  275. package/package/components/icons/TwilioIcon.svelte +11 -0
  276. package/package/components/icons/TwilioIcon.svelte.d.ts +17 -0
  277. package/package/components/icons/ZendeskIcon.svelte +11 -0
  278. package/package/components/icons/ZendeskIcon.svelte.d.ts +17 -0
  279. package/package/components/icons/index.d.ts +36 -1
  280. package/package/components/icons/index.js +37 -2
  281. package/package/components/instanceSettings.js +38 -1
  282. package/package/components/jobs/JobPreview.svelte +4 -1
  283. package/package/components/runs/JobLoader.svelte +6 -4
  284. package/package/components/runs/JobPreview.svelte +15 -1
  285. package/package/components/runs/ManuelDatePicker.svelte +1 -1
  286. package/package/components/runs/NoWorkerWithTagWarning.svelte +5 -3
  287. package/package/components/runs/RunRow.svelte +5 -19
  288. package/package/components/runs/RunsFilter.svelte +1 -1
  289. package/package/components/runs/RunsTable.svelte +1 -1
  290. package/package/components/scriptEditor/LogPanel.svelte +12 -0
  291. package/package/components/settings/PremiumInfo.svelte +92 -31
  292. package/package/components/settings/WorkspaceUserSettings.svelte +42 -6
  293. package/package/components/sidebar/changelogs.js +20 -0
  294. package/package/components/table/AutoDataTable.svelte +18 -4
  295. package/package/consts.d.ts +0 -3
  296. package/package/consts.js +0 -3
  297. package/package/enterpriseUtils.d.ts +1 -0
  298. package/package/enterpriseUtils.js +17 -0
  299. package/package/gen/core/OpenAPI.js +1 -1
  300. package/package/gen/index.d.ts +5 -2
  301. package/package/gen/models/LargeFileStorage.d.ts +3 -1
  302. package/package/gen/models/LargeFileStorage.js +2 -0
  303. package/package/gen/models/User.d.ts +0 -2
  304. package/package/gen/models/UserUsage.d.ts +4 -0
  305. package/package/gen/models/WorkflowStatus.d.ts +6 -0
  306. package/package/gen/models/WorkflowStatusRecord.d.ts +2 -0
  307. package/package/gen/models/WorkflowStatusRecord.js +5 -0
  308. package/package/gen/models/WorkflowTask.d.ts +4 -0
  309. package/package/gen/models/WorkflowTask.js +5 -0
  310. package/package/gen/models/WorkspaceDefaultScripts.d.ts +5 -0
  311. package/package/gen/models/WorkspaceDefaultScripts.js +5 -0
  312. package/package/gen/services/AdminService.d.ts +6 -9
  313. package/package/gen/services/AdminService.js +6 -7
  314. package/package/gen/services/FolderService.d.ts +3 -2
  315. package/package/gen/services/JobService.d.ts +27 -2
  316. package/package/gen/services/JobService.js +22 -2
  317. package/package/gen/services/SettingService.d.ts +11 -0
  318. package/package/gen/services/SettingService.js +13 -0
  319. package/package/gen/services/UserService.d.ts +14 -9
  320. package/package/gen/services/UserService.js +20 -7
  321. package/package/gen/services/WorkspaceService.d.ts +62 -0
  322. package/package/gen/services/WorkspaceService.js +76 -0
  323. package/package/infer.d.ts +20 -1
  324. package/package/infer.js +39 -19
  325. package/package/script_helpers.d.ts +7 -6
  326. package/package/script_helpers.js +24 -7
  327. package/package/scripts.d.ts +11 -0
  328. package/package/scripts.js +38 -1
  329. package/package/stores.d.ts +2 -1
  330. package/package/stores.js +2 -0
  331. package/package/utils.d.ts +1 -1
  332. package/package/utils.js +3 -3
  333. package/package.json +3 -4
  334. package/package/components/common/confirmationModal/model.d.ts +0 -9
  335. package/package/components/common/confirmationModal/model.js +0 -1
  336. package/package/gen/models/NewUser.d.ts +0 -5
  337. package/package/gen/models/Usage.d.ts +0 -3
  338. /package/package/gen/models/{NewUser.js → UserUsage.js} +0 -0
  339. /package/package/gen/models/{Usage.js → WorkflowStatus.js} +0 -0
@@ -1,285 +1,120 @@
1
1
  import { JobService, Preview } from '../../../../../gen';
2
2
  import { buildClientSchema, getIntrospectionQuery, printSchema } from 'graphql';
3
3
  import { tryEvery } from '../../../../../utils';
4
- export function makeQuery(table, tableMetadata, whereClause) {
5
- if (!table)
6
- throw new Error('Table name is required');
7
- const filteredColumns = tableMetadata
8
- .filter((x) => x != undefined)
9
- .map((column) => `"${column?.field}"::text`);
10
- let selectClause = filteredColumns.join(', ');
11
- let orderBy = `
12
- ${tableMetadata
13
- .map((column) => `
14
- (CASE WHEN $4 = '${column.field}' AND $5 IS false THEN "${column.field}"::text END),
15
- (CASE WHEN $4 = '${column.field}' AND $5 IS true THEN "${column.field}"::text END) DESC`)
16
- .join(',\n')}`;
17
- let query = `
18
- -- $1 limit
19
- -- $2 offset
20
- -- $3 quicksearch
21
- -- $4 orderBy
22
- -- $5 is_desc
23
-
24
- SELECT ${selectClause} FROM "${table}" WHERE `;
25
- if (whereClause) {
26
- query += ` ${whereClause} AND `;
27
- }
28
- query += ` ($3 = '' OR "${table}"::text ILIKE '%' || $3 || '%')`;
29
- query += ` ORDER BY ${orderBy}`;
30
- query += ` LIMIT $1::INT OFFSET $2::INT`;
31
- return query;
32
- }
33
- export function createPostgresInsert(table, columns, resource) {
34
- return {
35
- runnable: {
36
- name: 'AppDbExplorer',
37
- type: 'runnableByName',
38
- inlineScript: {
39
- content: makeInsertQuery(table, columns),
40
- language: Preview.language.POSTGRESQL,
41
- schema: {
42
- $schema: 'https://json-schema.org/draft/2020-12/schema',
43
- properties: {},
44
- required: ['database'],
45
- type: 'object'
46
- }
47
- }
48
- },
49
- fields: {
50
- database: {
51
- type: 'static',
52
- value: resource,
53
- fieldType: 'object',
54
- format: 'resource-postgresql'
55
- }
56
- },
57
- type: 'runnable',
58
- fieldType: 'object'
59
- };
60
- }
61
- export function makeInsertQuery(table, columns) {
62
- if (!table)
63
- throw new Error('Table name is required');
64
- const columnsInsert = columns.filter((x) => !x.hideInsert);
65
- const columnsDefault = columns.filter((x) => x.hideInsert && (x.overrideDefaultValue || x.defaultvalue === null));
66
- const allInsertColumns = columnsInsert.concat(columnsDefault);
67
- // Constructing the query
68
- const query = `
69
- ${columnsInsert.map((column, i) => `-- $${i + 1} ${column.field}`).join('\n')}
70
-
71
- INSERT INTO ${table} (${allInsertColumns.map((c) => c.field).join(', ')})
72
- VALUES (${columnsInsert.map((c, i) => `$${i + 1}::${c.datatype}`).join(', ')}${columnsDefault.length > 0 ? ',' : ''} ${columnsDefault
73
- .map((c) => (c.defaultValueNull ? 'NULL' : `${c.defaultUserValue}::${c.datatype}`))
74
- .join(', ')})`;
75
- return query;
76
- }
77
- export function getPrimaryKeys(tableMetadata) {
78
- let r = tableMetadata?.filter((x) => x.isprimarykey)?.map((x) => x.field) ?? [];
79
- if (r?.length === 0) {
80
- r = tableMetadata?.map((x) => x.field) ?? [];
81
- }
82
- return r ?? [];
83
- }
84
- export function createPostgresInput(resource, table, columns, whereClause) {
85
- if (!resource || !table || !columns) {
86
- // Return undefined if resource or table is not defined
87
- return undefined;
88
- }
89
- if (columns.length === 0) {
90
- return undefined;
91
- }
92
- const getRunnable = {
93
- name: 'AppDbExplorer',
94
- type: 'runnableByName',
95
- inlineScript: {
96
- content: makeQuery(table, columns, whereClause),
97
- language: Preview.language.POSTGRESQL
98
- }
99
- };
100
- const getQuery = {
101
- runnable: getRunnable,
102
- fields: {
103
- database: {
104
- type: 'static',
105
- value: resource,
106
- fieldType: 'object',
107
- format: 'resource-postgresql'
108
- }
109
- },
110
- type: 'runnable',
111
- fieldType: 'object'
112
- };
113
- return getQuery;
114
- }
115
- export function createUpdatePostgresInput(resource, table, column, columns) {
116
- if (!resource || !table) {
117
- return undefined;
118
- }
119
- const query = updateWithAllValues();
120
- function updateWithAllValues() {
121
- let query = `
122
- -- $1 valueToUpdate
123
- ${columns.map((c, i) => `-- $${i + 2} ${c.field}`).join('\n')}
124
-
125
- UPDATE ${table} SET ${column.field} = $1::text::${column.datatype} WHERE
126
- ${columns.map((c, i) => `${c.field} = $${i + 2}::text::${c.datatype} `).join(' AND ')}
127
- RETURNING 1`;
128
- return query;
129
- }
130
- const updateRunnable = {
131
- name: 'AppDbExplorer',
132
- type: 'runnableByName',
133
- inlineScript: {
134
- content: query,
135
- language: Preview.language.POSTGRESQL,
136
- schema: {
137
- $schema: 'https://json-schema.org/draft/2020-12/schema',
138
- properties: {},
139
- required: ['database'],
140
- type: 'object'
141
- }
142
- }
143
- };
144
- const updateQuery = {
145
- runnable: updateRunnable,
146
- fields: {
147
- database: {
148
- type: 'static',
149
- value: resource,
150
- fieldType: 'object',
151
- format: 'resource-postgresql'
152
- }
153
- },
154
- type: 'runnable',
155
- fieldType: 'object'
156
- };
157
- return updateQuery;
158
- }
159
- export function createDeletePostgresInput(resource, table, columns) {
160
- if (!resource || !table) {
161
- return undefined;
162
- }
163
- const query = updateWithAllValues();
164
- function updateWithAllValues() {
165
- let query = `
166
- ${columns.map((c, i) => `-- $${i + 1} ${c.field}`).join('\n')}
167
-
168
- DELETE FROM ${table} WHERE ${columns
169
- .map((c, i) => `${c.field} = $${i + 1}::text::${c.datatype}`)
170
- .join(' AND ')} RETURNING 1;`;
171
- return query;
172
- }
173
- const updateRunnable = {
174
- name: 'AppDbExplorer',
175
- type: 'runnableByName',
176
- inlineScript: {
177
- content: query,
178
- language: Preview.language.POSTGRESQL,
179
- schema: {
180
- $schema: 'https://json-schema.org/draft/2020-12/schema',
181
- properties: {},
182
- required: ['database'],
183
- type: 'object'
184
- }
185
- }
186
- };
187
- const updateQuery = {
188
- runnable: updateRunnable,
189
- fields: {
190
- database: {
191
- type: 'static',
192
- value: resource,
193
- fieldType: 'object',
194
- format: 'resource-postgresql'
195
- }
196
- },
197
- type: 'runnable',
198
- fieldType: 'object'
199
- };
200
- return updateQuery;
201
- }
202
- export function getCountPostgresql(resource, table) {
203
- if (!resource || !table) {
204
- return undefined;
205
- }
206
- const query = `
207
- -- $1 quicksearch
208
- SELECT COUNT(*) FROM ${table} WHERE ($1 = '' OR ${table}::text ILIKE '%' || $1 || '%')`;
209
- const updateRunnable = {
210
- name: 'AppDbExplorer',
211
- type: 'runnableByName',
212
- inlineScript: {
213
- content: query,
214
- language: Preview.language.POSTGRESQL,
215
- schema: {
216
- $schema: 'https://json-schema.org/draft/2020-12/schema',
217
- properties: {
218
- database: {
219
- description: 'Database name',
220
- type: 'object',
221
- format: 'resource-postgresql'
222
- }
223
- },
224
- required: ['database'],
225
- type: 'object'
226
- }
227
- }
228
- };
229
- const updateQuery = {
230
- runnable: updateRunnable,
231
- fields: {
232
- database: {
233
- type: 'static',
234
- value: resource,
235
- fieldType: 'object',
236
- format: 'resource-postgresql'
237
- }
238
- },
239
- type: 'runnable',
240
- fieldType: 'object'
241
- };
242
- return updateQuery;
243
- }
244
4
  export var ColumnIdentity;
245
5
  (function (ColumnIdentity) {
246
6
  ColumnIdentity["ByDefault"] = "By Default";
247
7
  ColumnIdentity["Always"] = "Always";
248
8
  ColumnIdentity["No"] = "No";
249
9
  })(ColumnIdentity || (ColumnIdentity = {}));
250
- export async function loadTableMetaData(resource, workspace, table) {
10
+ export async function loadTableMetaData(resource, workspace, table, resourceType) {
251
11
  if (!resource || !table || !workspace) {
252
12
  return undefined;
253
13
  }
254
- const code = `
14
+ let code = '';
15
+ if (resourceType === 'mysql') {
16
+ code = `
255
17
  SELECT
256
- a.attname as field,
257
- pg_catalog.format_type(a.atttypid, a.atttypmod) as DataType,
258
- (SELECT substring(pg_catalog.pg_get_expr(d.adbin, d.adrelid, true) for 128)
259
- FROM pg_catalog.pg_attrdef d
260
- WHERE d.adrelid = a.attrelid AND d.adnum = a.attnum AND a.atthasdef) as DefaultValue,
261
- (SELECT CASE WHEN i.indisprimary THEN true ELSE 'NO' END
262
- FROM pg_catalog.pg_class tbl, pg_catalog.pg_class idx, pg_catalog.pg_index i, pg_catalog.pg_attribute att
263
- WHERE tbl.oid = a.attrelid AND idx.oid = i.indexrelid AND att.attrelid = tbl.oid
264
- AND i.indrelid = tbl.oid AND att.attnum = any(i.indkey) AND att.attname = a.attname LIMIT 1) as IsPrimaryKey,
265
- CASE a.attidentity
266
- WHEN 'd' THEN 'By Default'
267
- WHEN 'a' THEN 'Always'
268
- ELSE 'No'
269
- END as IsIdentity,
270
- CASE a.attnotnull
271
- WHEN false THEN 'YES'
272
- ELSE 'NO'
273
- END as IsNullable,
274
- (SELECT true
275
- FROM pg_catalog.pg_enum e
276
- WHERE e.enumtypid = a.atttypid FETCH FIRST ROW ONLY) as IsEnum
277
- FROM pg_catalog.pg_attribute a
278
- WHERE a.attrelid = (SELECT oid FROM pg_catalog.pg_class WHERE relname = '${table}')
279
- AND a.attnum > 0 AND NOT a.attisdropped
280
- ORDER BY a.attnum;
18
+ COLUMN_NAME as field,
19
+ COLUMN_TYPE as DataType,
20
+ COLUMN_DEFAULT as DefaultValue,
21
+ CASE WHEN COLUMN_KEY = 'PRI' THEN 'YES' ELSE 'NO' END as IsPrimaryKey,
22
+ CASE WHEN EXTRA like '%auto_increment%' THEN 'YES' ELSE 'NO' END as IsIdentity,
23
+ CASE WHEN IS_NULLABLE = 'YES' THEN 'YES' ELSE 'NO' END as IsNullable,
24
+ CASE WHEN DATA_TYPE = 'enum' THEN true ELSE false END as IsEnum
25
+ FROM
26
+ INFORMATION_SCHEMA.COLUMNS
27
+ WHERE
28
+ TABLE_NAME = '${table}'
29
+ ORDER BY
30
+ ORDINAL_POSITION;
31
+ `;
32
+ }
33
+ else if (resourceType === 'postgresql') {
34
+ code = `
35
+ SELECT
36
+ a.attname as field,
37
+ pg_catalog.format_type(a.atttypid, a.atttypmod) as DataType,
38
+ (SELECT substring(pg_catalog.pg_get_expr(d.adbin, d.adrelid, true) for 128)
39
+ FROM pg_catalog.pg_attrdef d
40
+ WHERE d.adrelid = a.attrelid AND d.adnum = a.attnum AND a.atthasdef) as DefaultValue,
41
+ (SELECT CASE WHEN i.indisprimary THEN true ELSE 'NO' END
42
+ FROM pg_catalog.pg_class tbl, pg_catalog.pg_class idx, pg_catalog.pg_index i, pg_catalog.pg_attribute att
43
+ WHERE tbl.oid = a.attrelid AND idx.oid = i.indexrelid AND att.attrelid = tbl.oid
44
+ AND i.indrelid = tbl.oid AND att.attnum = any(i.indkey) AND att.attname = a.attname LIMIT 1) as IsPrimaryKey,
45
+ CASE a.attidentity
46
+ WHEN 'd' THEN 'By Default'
47
+ WHEN 'a' THEN 'Always'
48
+ ELSE 'No'
49
+ END as IsIdentity,
50
+ CASE a.attnotnull
51
+ WHEN false THEN 'YES'
52
+ ELSE 'NO'
53
+ END as IsNullable,
54
+ (SELECT true
55
+ FROM pg_catalog.pg_enum e
56
+ WHERE e.enumtypid = a.atttypid FETCH FIRST ROW ONLY) as IsEnum
57
+ FROM pg_catalog.pg_attribute a
58
+ WHERE a.attrelid = (SELECT oid FROM pg_catalog.pg_class WHERE relname = '${table}')
59
+ AND a.attnum > 0 AND NOT a.attisdropped
60
+ ORDER BY a.attnum;
61
+
62
+ `;
63
+ }
64
+ else if (resourceType === 'ms_sql_server') {
65
+ code = `
66
+ SELECT
67
+ COLUMN_NAME as field,
68
+ DATA_TYPE as DataType,
69
+ COLUMN_DEFAULT as DefaultValue,
70
+ CASE WHEN COLUMNPROPERTY(OBJECT_ID(TABLE_NAME), COLUMN_NAME, 'IsIdentity') = 1 THEN 'By Default' ELSE 'No' END as IsIdentity,
71
+ CASE WHEN COLUMNPROPERTY(OBJECT_ID(TABLE_NAME), COLUMN_NAME, 'IsIdentity') = 1 THEN 1 ELSE 0 END as IsPrimaryKey, -- This line still needs correction for primary key identification
72
+ CASE WHEN IS_NULLABLE = 'YES' THEN 'YES' ELSE 'NO' END as IsNullable,
73
+ CASE WHEN DATA_TYPE = 'enum' THEN 1 ELSE 0 END as IsEnum
74
+ FROM
75
+ INFORMATION_SCHEMA.COLUMNS
76
+ WHERE
77
+ TABLE_NAME = '${table}'
78
+ ORDER BY
79
+ ORDINAL_POSITION;
281
80
 
282
- `;
81
+ `;
82
+ }
83
+ else if (resourceType === 'snowflake') {
84
+ code = `
85
+ select COLUMN_NAME as field,
86
+ DATA_TYPE as DataType,
87
+ COLUMN_DEFAULT as DefaultValue,
88
+ CASE WHEN COLUMN_DEFAULT like 'AUTOINCREMENT%' THEN 'By Default' ELSE 'No' END as IsIdentity,
89
+ CASE WHEN COLUMN_DEFAULT like 'AUTOINCREMENT%' THEN 1 ELSE 0 END as IsPrimaryKey,
90
+ CASE WHEN IS_NULLABLE = 'YES' THEN 'YES' ELSE 'NO' END as IsNullable,
91
+ CASE WHEN DATA_TYPE = 'enum' THEN 1 ELSE 0 END as IsEnum
92
+ from information_schema.columns
93
+ where table_name = '${table}'
94
+ order by ORDINAL_POSITION;
95
+ `;
96
+ }
97
+ else if (resourceType === 'bigquery') {
98
+ code = `SELECT
99
+ c.COLUMN_NAME as field,
100
+ DATA_TYPE as DataType,
101
+ CASE WHEN COLUMN_DEFAULT = 'NULL' THEN '' ELSE COLUMN_DEFAULT END as DefaultValue,
102
+ CASE WHEN constraint_name is not null THEN true ELSE false END as IsPrimaryKey,
103
+ 'No' as IsIdentity,
104
+ IS_NULLABLE as IsNullable,
105
+ false as IsEnum
106
+ FROM
107
+ test_dataset.INFORMATION_SCHEMA.COLUMNS c
108
+ LEFT JOIN
109
+ test_dataset.INFORMATION_SCHEMA.KEY_COLUMN_USAGE p
110
+ on c.table_name = p.table_name AND c.column_name = p.COLUMN_NAME
111
+ WHERE
112
+ c.TABLE_NAME = "${table.split('.')[1]}"
113
+ order by c.ORDINAL_POSITION;`;
114
+ }
115
+ else {
116
+ throw new Error('Unsupported database type:' + resourceType);
117
+ }
283
118
  const maxRetries = 3;
284
119
  let attempts = 0;
285
120
  while (attempts < maxRetries) {
@@ -287,7 +122,7 @@ ORDER BY a.attnum;
287
122
  const job = await JobService.runScriptPreview({
288
123
  workspace: workspace,
289
124
  requestBody: {
290
- language: Preview.language.POSTGRESQL,
125
+ language: getLanguageByResourceType(resourceType),
291
126
  content: code,
292
127
  args: {
293
128
  database: resource
@@ -301,7 +136,12 @@ ORDER BY a.attnum;
301
136
  });
302
137
  if (testResult.success) {
303
138
  attempts = maxRetries;
304
- return testResult.result;
139
+ if (resourceType === 'ms_sql_server') {
140
+ return lowercaseKeys(testResult.result[0]);
141
+ }
142
+ else {
143
+ return lowercaseKeys(testResult.result);
144
+ }
305
145
  }
306
146
  else {
307
147
  attempts++;
@@ -324,6 +164,15 @@ export function resourceTypeToLang(rt) {
324
164
  return rt;
325
165
  }
326
166
  }
167
+ function lowercaseKeys(arr) {
168
+ return arr.map((obj) => {
169
+ const newObj = {};
170
+ Object.keys(obj).forEach((key) => {
171
+ newObj[key.toLowerCase()] = obj[key];
172
+ });
173
+ return newObj;
174
+ });
175
+ }
327
176
  const scripts = {
328
177
  postgresql: {
329
178
  code: `SELECT table_name, column_name, udt_name, column_default, is_nullable, table_schema FROM information_schema.columns WHERE table_schema != 'pg_catalog' AND table_schema != 'information_schema'`,
@@ -358,7 +207,7 @@ const scripts = {
358
207
  argName: 'database'
359
208
  },
360
209
  mysql: {
361
- code: "select TABLE_SCHEMA, TABLE_NAME, DATA_TYPE, COLUMN_NAME, COLUMN_DEFAULT from information_schema.columns where table_schema != 'information_schema'",
210
+ code: "SELECT DATABASE() AS default_db_name, TABLE_SCHEMA, TABLE_NAME, DATA_TYPE, COLUMN_NAME, COLUMN_DEFAULT FROM information_schema.columns WHERE table_schema = DATABASE() OR table_schema NOT IN ('information_schema', 'mysql', 'performance_schema', 'sys', '_vt');",
362
211
  processingFn: (rows) => {
363
212
  const schemas = rows.reduce((acc, a) => {
364
213
  const table_schema = a.TABLE_SCHEMA;
@@ -395,7 +244,7 @@ const scripts = {
395
244
  argName: 'api'
396
245
  },
397
246
  bigquery: {
398
- code: `import { BigQuery } from 'npm:@google-cloud/bigquery@7.2.0';
247
+ code: `import { BigQuery } from '@google-cloud/bigquery@7.5.0';
399
248
  export async function main(args: bigquery) {
400
249
  const bq = new BigQuery({
401
250
  credentials: args
@@ -422,7 +271,7 @@ GROUP BY table_name".replace('{dataset.id}', dataset.id)
422
271
  }
423
272
  return schema
424
273
  }`,
425
- lang: 'deno',
274
+ lang: 'bun',
426
275
  argName: 'args'
427
276
  },
428
277
  snowflake: {
@@ -573,45 +422,171 @@ export function formatSchema(dbSchema) {
573
422
  export function formatGraphqlSchema(dbSchema) {
574
423
  return printSchema(buildClientSchema(dbSchema.schema));
575
424
  }
576
- /**
577
- * Class for defining a cell renderer.
578
- * If you don't need to define a separate class you could use cellRendererFactory
579
- * to create a component with the column definitions.
580
- */
581
- export class AbstractCellRenderer {
582
- eGui;
583
- value;
584
- params;
585
- constructor(parentElement = 'span') {
586
- // create empty span (or other element) to place svelte component in
587
- this.eGui = document.createElement(parentElement);
588
- }
589
- init(params) {
590
- this.value = params.value;
591
- this.createComponent(params);
592
- this.eGui.addEventListener('click', () => params.onClick?.(params.data));
593
- this.params = params;
594
- }
595
- getGui() {
596
- return this.eGui;
425
+ export function getFieldType(type, databaseType) {
426
+ switch (databaseType) {
427
+ case 'postgresql': {
428
+ const baseType = type.split('(')[0];
429
+ const validTextTypes = ['character varying', 'text'];
430
+ const validNumberTypes = ['integer', 'bigint', 'numeric', 'double precision'];
431
+ const validDateTypes = ['date', 'timestamp without time zone', 'timestamp with time zone'];
432
+ return validTextTypes.includes(baseType)
433
+ ? 'text'
434
+ : validNumberTypes.includes(baseType)
435
+ ? 'number'
436
+ : baseType === 'boolean'
437
+ ? 'checkbox'
438
+ : validDateTypes.includes(baseType)
439
+ ? 'date'
440
+ : 'text';
441
+ }
442
+ case 'mysql': {
443
+ const baseType = type.split('(')[0].toLowerCase(); // Ensure case-insensitive comparison
444
+ const validTextTypes = ['varchar', 'text', 'char', 'mediumtext', 'longtext', 'tinytext'];
445
+ const validNumberTypes = ['int', 'bigint', 'decimal', 'numeric', 'float', 'double'];
446
+ const validDateTypes = ['date', 'datetime', 'timestamp', 'time', 'year'];
447
+ return validTextTypes.includes(baseType)
448
+ ? 'text'
449
+ : validNumberTypes.includes(baseType)
450
+ ? 'number'
451
+ : baseType === 'boolean'
452
+ ? 'checkbox'
453
+ : validDateTypes.includes(baseType)
454
+ ? 'date'
455
+ : 'text';
456
+ }
457
+ case 'ms_sql_server': {
458
+ const baseType = type.split('(')[0].toLowerCase(); // Ensure case-insensitive comparison
459
+ const validTextTypes = ['varchar', 'text', 'char', 'nchar', 'nvarchar', 'ntext'];
460
+ const validNumberTypes = [
461
+ 'int',
462
+ 'bigint',
463
+ 'decimal',
464
+ 'numeric',
465
+ 'float',
466
+ 'real',
467
+ 'smallint',
468
+ 'tinyint'
469
+ ];
470
+ const validDateTypes = [
471
+ 'date',
472
+ 'datetime',
473
+ 'datetime2',
474
+ 'smalldatetime',
475
+ 'datetimeoffset',
476
+ 'time'
477
+ ];
478
+ return validTextTypes.includes(baseType)
479
+ ? 'text'
480
+ : validNumberTypes.includes(baseType)
481
+ ? 'number'
482
+ : baseType === 'bit'
483
+ ? 'checkbox'
484
+ : validDateTypes.includes(baseType)
485
+ ? 'date'
486
+ : 'text';
487
+ }
488
+ case 'snowflake': {
489
+ const baseType = type.split('(')[0].toLowerCase(); // Ensure case-insensitive comparison
490
+ const validTextTypes = ['varchar', 'text', 'char'];
491
+ const validNumberTypes = ['int', 'number', 'decimal', 'float', 'double'];
492
+ const validDateTypes = ['date', 'timestamp', 'time'];
493
+ return validTextTypes.includes(baseType)
494
+ ? 'text'
495
+ : validNumberTypes.includes(baseType)
496
+ ? 'number'
497
+ : baseType === 'boolean'
498
+ ? 'checkbox'
499
+ : validDateTypes.includes(baseType)
500
+ ? 'date'
501
+ : 'text';
502
+ }
503
+ default: {
504
+ return 'text';
505
+ }
597
506
  }
598
- refresh(params) {
599
- this.value = params.value;
600
- this.eGui.innerHTML = '';
601
- return true;
507
+ }
508
+ export function buildVisibleFieldList(columnDefs, dbType) {
509
+ // Filter out hidden columns to avoid counting the wrong number of rows
510
+ return columnDefs
511
+ .filter((columnDef) => columnDef && columnDef.ignored !== true)
512
+ .map((column) => {
513
+ switch (dbType) {
514
+ case 'postgresql':
515
+ return `"${column?.field}"`; // PostgreSQL uses double quotes for identifiers
516
+ case 'ms_sql_server':
517
+ return `[${column?.field}]`; // MSSQL uses square brackets for identifiers
518
+ case 'mysql':
519
+ return `\`${column?.field}\``; // MySQL uses backticks
520
+ case 'snowflake':
521
+ return `"${column?.field}"`; // Snowflake uses double quotes for identifiers
522
+ case 'bigquery':
523
+ return `\`${column?.field}\``; // BigQuery uses backticks
524
+ default:
525
+ throw new Error('Unsupported database type');
526
+ }
527
+ });
528
+ }
529
+ export function getLanguageByResourceType(name) {
530
+ const language = {
531
+ postgresql: Preview.language.POSTGRESQL,
532
+ mysql: Preview.language.MYSQL,
533
+ ms_sql_server: Preview.language.MSSQL,
534
+ snowflake: Preview.language.SNOWFLAKE,
535
+ bigquery: Preview.language.BIGQUERY
536
+ };
537
+ return language[name];
538
+ }
539
+ export function buildParameters(columns, databaseType) {
540
+ return columns
541
+ .map((column, i) => {
542
+ switch (databaseType) {
543
+ case 'postgresql':
544
+ return `-- $${i + 1} ${column.field}`;
545
+ case 'mysql':
546
+ return `-- :${column.field} (${column.datatype.split('(')[0]})`;
547
+ case 'ms_sql_server':
548
+ return `-- @p${i + 1} ${column.field} (${column.datatype.split('(')[0]})`;
549
+ case 'snowflake':
550
+ return `-- ? ${column.field} (${column.datatype.split('(')[0]})`;
551
+ case 'bigquery':
552
+ return `-- @${column.field} (${column.datatype.split('(')[0]})`;
553
+ }
554
+ })
555
+ .join('\n');
556
+ }
557
+ export function getPrimaryKeys(tableMetadata) {
558
+ let r = tableMetadata?.filter((x) => x.isprimarykey)?.map((x) => x.field) ?? [];
559
+ if (r?.length === 0) {
560
+ r = tableMetadata?.map((x) => x.field) ?? [];
602
561
  }
562
+ return r ?? [];
603
563
  }
604
- /**
605
- * Creates a cell renderer using the given callback for how to initialise a svelte component.
606
- * See AbstractCellRenderer.createComponent
607
- * @param svelteComponent function for how to create the svelte component
608
- * @returns
609
- */
610
- export function cellRendererFactory(svelteComponent) {
611
- class Renderer extends AbstractCellRenderer {
612
- createComponent(params) {
613
- svelteComponent(this, params);
564
+ export function getTablesByResource(schema, dbType) {
565
+ const s = Object.values(schema)?.[0];
566
+ switch (dbType) {
567
+ case 'postgresql':
568
+ case 'mysql':
569
+ case 'ms_sql_server':
570
+ case 'snowflake':
571
+ return Object.entries(s?.schema ?? {}).reduce((acc, [k, v]) => {
572
+ acc.push(...Object.keys(v ?? {}));
573
+ return acc;
574
+ }, []);
575
+ case 'bigquery': {
576
+ const paths = [];
577
+ for (const key in s?.schema) {
578
+ if (s?.schema.hasOwnProperty(key)) {
579
+ const subObj = s?.schema[key];
580
+ for (const subKey in subObj) {
581
+ if (subObj.hasOwnProperty(subKey)) {
582
+ paths.push(`${key}.${subKey}`);
583
+ }
584
+ }
585
+ }
586
+ }
587
+ return paths;
614
588
  }
589
+ default:
590
+ return [];
615
591
  }
616
- return Renderer;
617
592
  }