@flowdrop/flowdrop 1.0.0 → 1.1.0

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 (388) hide show
  1. package/README.md +50 -50
  2. package/dist/adapters/WorkflowAdapter.d.ts +1 -1
  3. package/dist/adapters/WorkflowAdapter.js +25 -25
  4. package/dist/adapters/agentspec/AgentSpecAdapter.d.ts +2 -2
  5. package/dist/adapters/agentspec/AgentSpecAdapter.js +133 -122
  6. package/dist/adapters/agentspec/agentAdapter.d.ts +2 -2
  7. package/dist/adapters/agentspec/agentAdapter.js +10 -10
  8. package/dist/adapters/agentspec/autoLayout.d.ts +1 -1
  9. package/dist/adapters/agentspec/autoLayout.js +2 -2
  10. package/dist/adapters/agentspec/componentTypeDefaults.d.ts +1 -1
  11. package/dist/adapters/agentspec/componentTypeDefaults.js +120 -120
  12. package/dist/adapters/agentspec/defaultNodeTypes.d.ts +2 -2
  13. package/dist/adapters/agentspec/defaultNodeTypes.js +307 -307
  14. package/dist/adapters/agentspec/index.d.ts +10 -10
  15. package/dist/adapters/agentspec/index.js +6 -6
  16. package/dist/adapters/agentspec/validator.d.ts +2 -2
  17. package/dist/adapters/agentspec/validator.js +22 -20
  18. package/dist/api/enhanced-client.d.ts +3 -3
  19. package/dist/api/enhanced-client.js +73 -72
  20. package/dist/components/App.svelte +1081 -961
  21. package/dist/components/App.svelte.d.ts +9 -6
  22. package/dist/components/CanvasBanner.stories.svelte +23 -20
  23. package/dist/components/CanvasBanner.stories.svelte.d.ts +1 -1
  24. package/dist/components/CanvasBanner.svelte +46 -46
  25. package/dist/components/ConfigForm.svelte +1164 -1065
  26. package/dist/components/ConfigForm.svelte.d.ts +2 -2
  27. package/dist/components/ConfigModal.svelte +180 -180
  28. package/dist/components/ConfigModal.svelte.d.ts +1 -1
  29. package/dist/components/ConfigPanel.stories.svelte +35 -35
  30. package/dist/components/ConfigPanel.stories.svelte.d.ts +1 -1
  31. package/dist/components/ConfigPanel.svelte +178 -167
  32. package/dist/components/ConfigPanel.svelte.d.ts +1 -1
  33. package/dist/components/ConnectionLine.svelte +25 -25
  34. package/dist/components/EdgeRefresher.svelte +26 -26
  35. package/dist/components/FlowDropEdge.stories.svelte +197 -0
  36. package/dist/components/FlowDropEdge.stories.svelte.d.ts +26 -0
  37. package/dist/components/FlowDropEdge.svelte +168 -0
  38. package/dist/components/FlowDropEdge.svelte.d.ts +4 -0
  39. package/dist/components/FlowDropZone.svelte +63 -60
  40. package/dist/components/FlowDropZone.svelte.d.ts +1 -1
  41. package/dist/components/LoadingSpinner.stories.svelte +19 -19
  42. package/dist/components/LoadingSpinner.stories.svelte.d.ts +1 -1
  43. package/dist/components/LoadingSpinner.svelte +21 -21
  44. package/dist/components/LoadingSpinner.svelte.d.ts +1 -1
  45. package/dist/components/Logo.stories.svelte +13 -13
  46. package/dist/components/Logo.stories.svelte.d.ts +1 -1
  47. package/dist/components/Logo.svelte +101 -95
  48. package/dist/components/LogsSidebar.svelte +553 -546
  49. package/dist/components/LogsSidebar.svelte.d.ts +1 -1
  50. package/dist/components/MarkdownDisplay.stories.svelte +29 -23
  51. package/dist/components/MarkdownDisplay.stories.svelte.d.ts +1 -1
  52. package/dist/components/MarkdownDisplay.svelte +16 -14
  53. package/dist/components/Navbar.stories.svelte +43 -38
  54. package/dist/components/Navbar.stories.svelte.d.ts +1 -1
  55. package/dist/components/Navbar.svelte +760 -706
  56. package/dist/components/Navbar.svelte.d.ts +1 -1
  57. package/dist/components/NodeSidebar.svelte +900 -746
  58. package/dist/components/NodeSidebar.svelte.d.ts +3 -1
  59. package/dist/components/NodeStatusOverlay.stories.svelte +82 -70
  60. package/dist/components/NodeStatusOverlay.stories.svelte.d.ts +1 -1
  61. package/dist/components/NodeStatusOverlay.svelte +295 -280
  62. package/dist/components/NodeStatusOverlay.svelte.d.ts +3 -3
  63. package/dist/components/PipelineStatus.svelte +326 -300
  64. package/dist/components/PipelineStatus.svelte.d.ts +4 -4
  65. package/dist/components/PortCoordinateTracker.svelte +49 -47
  66. package/dist/components/PortCoordinateTracker.svelte.d.ts +1 -1
  67. package/dist/components/ReadOnlyDetails.svelte +156 -156
  68. package/dist/components/SchemaForm.stories.svelte +106 -98
  69. package/dist/components/SchemaForm.stories.svelte.d.ts +1 -1
  70. package/dist/components/SchemaForm.svelte +490 -463
  71. package/dist/components/SchemaForm.svelte.d.ts +2 -2
  72. package/dist/components/SettingsModal.svelte +226 -223
  73. package/dist/components/SettingsModal.svelte.d.ts +1 -1
  74. package/dist/components/SettingsPanel.svelte +637 -601
  75. package/dist/components/SettingsPanel.svelte.d.ts +1 -1
  76. package/dist/components/StatusIcon.stories.svelte +62 -49
  77. package/dist/components/StatusIcon.stories.svelte.d.ts +1 -1
  78. package/dist/components/StatusIcon.svelte +87 -87
  79. package/dist/components/StatusIcon.svelte.d.ts +2 -2
  80. package/dist/components/StatusLabel.stories.svelte +12 -12
  81. package/dist/components/StatusLabel.stories.svelte.d.ts +1 -1
  82. package/dist/components/StatusLabel.svelte +19 -19
  83. package/dist/components/ThemeToggle.stories.svelte +16 -16
  84. package/dist/components/ThemeToggle.stories.svelte.d.ts +1 -1
  85. package/dist/components/ThemeToggle.svelte +180 -169
  86. package/dist/components/ThemeToggle.svelte.d.ts +1 -1
  87. package/dist/components/UniversalNode.svelte +150 -138
  88. package/dist/components/UniversalNode.svelte.d.ts +3 -3
  89. package/dist/components/WorkflowEditor.svelte +1069 -1007
  90. package/dist/components/WorkflowEditor.svelte.d.ts +4 -4
  91. package/dist/components/form/FormArray.svelte +1034 -973
  92. package/dist/components/form/FormArray.svelte.d.ts +1 -1
  93. package/dist/components/form/FormAutocomplete.svelte +1021 -978
  94. package/dist/components/form/FormAutocomplete.svelte.d.ts +1 -1
  95. package/dist/components/form/FormCheckboxGroup.stories.svelte +23 -20
  96. package/dist/components/form/FormCheckboxGroup.stories.svelte.d.ts +1 -1
  97. package/dist/components/form/FormCheckboxGroup.svelte +136 -136
  98. package/dist/components/form/FormCodeEditor.svelte +452 -434
  99. package/dist/components/form/FormField.svelte +366 -355
  100. package/dist/components/form/FormField.svelte.d.ts +2 -2
  101. package/dist/components/form/FormFieldLight.svelte +400 -384
  102. package/dist/components/form/FormFieldLight.svelte.d.ts +1 -1
  103. package/dist/components/form/FormFieldWrapper.stories.svelte +42 -42
  104. package/dist/components/form/FormFieldWrapper.stories.svelte.d.ts +1 -1
  105. package/dist/components/form/FormFieldWrapper.svelte +100 -93
  106. package/dist/components/form/FormFieldWrapper.svelte.d.ts +1 -1
  107. package/dist/components/form/FormFieldset.svelte +108 -108
  108. package/dist/components/form/FormFieldset.svelte.d.ts +2 -2
  109. package/dist/components/form/FormMarkdownEditor.svelte +758 -725
  110. package/dist/components/form/FormNumberField.stories.svelte +25 -25
  111. package/dist/components/form/FormNumberField.stories.svelte.d.ts +1 -1
  112. package/dist/components/form/FormNumberField.svelte +88 -88
  113. package/dist/components/form/FormRangeField.stories.svelte +20 -20
  114. package/dist/components/form/FormRangeField.stories.svelte.d.ts +1 -1
  115. package/dist/components/form/FormRangeField.svelte +234 -226
  116. package/dist/components/form/FormSelect.stories.svelte +38 -38
  117. package/dist/components/form/FormSelect.stories.svelte.d.ts +1 -1
  118. package/dist/components/form/FormSelect.svelte +101 -101
  119. package/dist/components/form/FormSelect.svelte.d.ts +1 -1
  120. package/dist/components/form/FormTemplateEditor.svelte +847 -798
  121. package/dist/components/form/FormTemplateEditor.svelte.d.ts +1 -1
  122. package/dist/components/form/FormTextField.stories.svelte +29 -23
  123. package/dist/components/form/FormTextField.stories.svelte.d.ts +1 -1
  124. package/dist/components/form/FormTextField.svelte +68 -68
  125. package/dist/components/form/FormTextarea.stories.svelte +28 -25
  126. package/dist/components/form/FormTextarea.stories.svelte.d.ts +1 -1
  127. package/dist/components/form/FormTextarea.svelte +74 -74
  128. package/dist/components/form/FormToggle.stories.svelte +23 -20
  129. package/dist/components/form/FormToggle.stories.svelte.d.ts +1 -1
  130. package/dist/components/form/FormToggle.svelte +98 -98
  131. package/dist/components/form/FormUISchemaRenderer.svelte +120 -113
  132. package/dist/components/form/FormUISchemaRenderer.svelte.d.ts +3 -3
  133. package/dist/components/form/index.d.ts +19 -19
  134. package/dist/components/form/index.js +18 -18
  135. package/dist/components/form/templateAutocomplete.d.ts +2 -2
  136. package/dist/components/form/templateAutocomplete.js +64 -55
  137. package/dist/components/form/types.d.ts +6 -6
  138. package/dist/components/form/types.js +9 -4
  139. package/dist/components/icons/AlertCircleIcon.svelte +11 -0
  140. package/dist/components/icons/AlertCircleIcon.svelte.d.ts +26 -0
  141. package/dist/components/icons/CogIcon.svelte +11 -0
  142. package/dist/components/icons/CogIcon.svelte.d.ts +26 -0
  143. package/dist/components/interrupt/ChoicePrompt.stories.svelte +54 -38
  144. package/dist/components/interrupt/ChoicePrompt.stories.svelte.d.ts +1 -1
  145. package/dist/components/interrupt/ChoicePrompt.svelte +407 -383
  146. package/dist/components/interrupt/ChoicePrompt.svelte.d.ts +1 -1
  147. package/dist/components/interrupt/ConfirmationPrompt.stories.svelte +48 -48
  148. package/dist/components/interrupt/ConfirmationPrompt.stories.svelte.d.ts +1 -1
  149. package/dist/components/interrupt/ConfirmationPrompt.svelte +280 -274
  150. package/dist/components/interrupt/ConfirmationPrompt.svelte.d.ts +1 -1
  151. package/dist/components/interrupt/FormPrompt.svelte +223 -218
  152. package/dist/components/interrupt/FormPrompt.svelte.d.ts +1 -1
  153. package/dist/components/interrupt/InterruptBubble.svelte +617 -583
  154. package/dist/components/interrupt/InterruptBubble.svelte.d.ts +2 -2
  155. package/dist/components/interrupt/ReviewPrompt.stories.svelte +66 -56
  156. package/dist/components/interrupt/ReviewPrompt.stories.svelte.d.ts +1 -1
  157. package/dist/components/interrupt/ReviewPrompt.svelte +861 -841
  158. package/dist/components/interrupt/ReviewPrompt.svelte.d.ts +1 -1
  159. package/dist/components/interrupt/TextInputPrompt.stories.svelte +38 -33
  160. package/dist/components/interrupt/TextInputPrompt.stories.svelte.d.ts +1 -1
  161. package/dist/components/interrupt/TextInputPrompt.svelte +333 -328
  162. package/dist/components/interrupt/TextInputPrompt.svelte.d.ts +1 -1
  163. package/dist/components/interrupt/index.d.ts +5 -5
  164. package/dist/components/interrupt/index.js +5 -5
  165. package/dist/components/layouts/MainLayout.svelte +724 -691
  166. package/dist/components/layouts/MainLayout.svelte.d.ts +6 -6
  167. package/dist/components/nodes/GatewayNode.stories.svelte +100 -99
  168. package/dist/components/nodes/GatewayNode.svelte +605 -571
  169. package/dist/components/nodes/GatewayNode.svelte.d.ts +3 -3
  170. package/dist/components/nodes/IdeaNode.stories.svelte +44 -43
  171. package/dist/components/nodes/IdeaNode.svelte +451 -437
  172. package/dist/components/nodes/IdeaNode.svelte.d.ts +1 -1
  173. package/dist/components/nodes/NotesNode.stories.svelte +65 -64
  174. package/dist/components/nodes/NotesNode.svelte +380 -369
  175. package/dist/components/nodes/NotesNode.svelte.d.ts +1 -1
  176. package/dist/components/nodes/SimpleNode.stories.svelte +145 -144
  177. package/dist/components/nodes/SimpleNode.svelte +486 -424
  178. package/dist/components/nodes/SimpleNode.svelte.d.ts +1 -1
  179. package/dist/components/nodes/SquareNode.stories.svelte +73 -73
  180. package/dist/components/nodes/SquareNode.svelte +439 -380
  181. package/dist/components/nodes/SquareNode.svelte.d.ts +1 -1
  182. package/dist/components/nodes/TerminalNode.stories.svelte +13 -13
  183. package/dist/components/nodes/TerminalNode.svelte +709 -670
  184. package/dist/components/nodes/TerminalNode.svelte.d.ts +1 -1
  185. package/dist/components/nodes/ToolNode.stories.svelte +181 -180
  186. package/dist/components/nodes/ToolNode.svelte +505 -447
  187. package/dist/components/nodes/ToolNode.svelte.d.ts +1 -1
  188. package/dist/components/nodes/WorkflowNode.stories.svelte +70 -46
  189. package/dist/components/nodes/WorkflowNode.svelte +621 -551
  190. package/dist/components/nodes/WorkflowNode.svelte.d.ts +3 -3
  191. package/dist/components/playground/ChatPanel.svelte +945 -889
  192. package/dist/components/playground/ExecutionLogs.svelte +495 -472
  193. package/dist/components/playground/InputCollector.svelte +449 -428
  194. package/dist/components/playground/MessageBubble.stories.svelte +47 -47
  195. package/dist/components/playground/MessageBubble.stories.svelte.d.ts +1 -1
  196. package/dist/components/playground/MessageBubble.svelte +626 -610
  197. package/dist/components/playground/MessageBubble.svelte.d.ts +1 -1
  198. package/dist/components/playground/Playground.svelte +1088 -1057
  199. package/dist/components/playground/Playground.svelte.d.ts +3 -3
  200. package/dist/components/playground/PlaygroundModal.svelte +208 -204
  201. package/dist/components/playground/PlaygroundModal.svelte.d.ts +3 -3
  202. package/dist/components/playground/SessionManager.svelte +527 -521
  203. package/dist/components/playground/SessionManager.svelte.d.ts +1 -1
  204. package/dist/config/agentSpecEndpoints.d.ts +1 -1
  205. package/dist/config/agentSpecEndpoints.js +20 -20
  206. package/dist/config/constants.d.ts +8 -0
  207. package/dist/config/constants.js +10 -2
  208. package/dist/config/defaultCategories.d.ts +1 -1
  209. package/dist/config/defaultCategories.js +86 -86
  210. package/dist/config/defaultPortConfig.d.ts +1 -1
  211. package/dist/config/defaultPortConfig.js +144 -144
  212. package/dist/config/endpoints.d.ts +4 -4
  213. package/dist/config/endpoints.js +65 -65
  214. package/dist/config/runtimeConfig.d.ts +2 -2
  215. package/dist/config/runtimeConfig.js +8 -8
  216. package/dist/core/index.d.ts +63 -59
  217. package/dist/core/index.js +35 -33
  218. package/dist/display/index.d.ts +2 -2
  219. package/dist/display/index.js +2 -2
  220. package/dist/editor/index.d.ts +62 -62
  221. package/dist/editor/index.js +53 -53
  222. package/dist/form/code.d.ts +5 -5
  223. package/dist/form/code.js +14 -14
  224. package/dist/form/fieldRegistry.d.ts +3 -3
  225. package/dist/form/fieldRegistry.js +11 -9
  226. package/dist/form/full.d.ts +8 -8
  227. package/dist/form/full.js +9 -9
  228. package/dist/form/index.d.ts +18 -18
  229. package/dist/form/index.js +16 -16
  230. package/dist/form/markdown.d.ts +4 -4
  231. package/dist/form/markdown.js +8 -8
  232. package/dist/helpers/proximityConnect.d.ts +3 -3
  233. package/dist/helpers/proximityConnect.js +34 -32
  234. package/dist/helpers/workflowEditorHelper.d.ts +5 -5
  235. package/dist/helpers/workflowEditorHelper.js +108 -96
  236. package/dist/index.d.ts +6 -6
  237. package/dist/index.js +6 -6
  238. package/dist/mocks/app-environment.js +2 -2
  239. package/dist/mocks/app-forms.js +9 -9
  240. package/dist/mocks/app-navigation.js +11 -11
  241. package/dist/mocks/app-stores.js +8 -8
  242. package/dist/playground/index.d.ts +19 -19
  243. package/dist/playground/index.js +16 -16
  244. package/dist/playground/mount.d.ts +3 -3
  245. package/dist/playground/mount.js +24 -24
  246. package/dist/registry/builtinFormats.js +13 -13
  247. package/dist/registry/builtinNodes.d.ts +2 -2
  248. package/dist/registry/builtinNodes.js +77 -77
  249. package/dist/registry/index.d.ts +4 -4
  250. package/dist/registry/index.js +4 -4
  251. package/dist/registry/nodeComponentRegistry.d.ts +8 -8
  252. package/dist/registry/nodeComponentRegistry.js +11 -9
  253. package/dist/registry/plugin.d.ts +2 -2
  254. package/dist/registry/plugin.js +11 -11
  255. package/dist/registry/workflowFormatRegistry.d.ts +3 -3
  256. package/dist/registry/workflowFormatRegistry.js +2 -2
  257. package/dist/schema/index.d.ts +1 -1
  258. package/dist/schema/index.js +2 -2
  259. package/dist/schemas/v1/workflow.schema.json +22 -107
  260. package/dist/services/agentSpecExecutionService.d.ts +3 -3
  261. package/dist/services/agentSpecExecutionService.js +59 -55
  262. package/dist/services/api.d.ts +18 -4
  263. package/dist/services/api.js +46 -43
  264. package/dist/services/apiVariableService.d.ts +1 -1
  265. package/dist/services/apiVariableService.js +41 -34
  266. package/dist/services/autoSaveService.js +8 -8
  267. package/dist/services/categoriesApi.d.ts +2 -2
  268. package/dist/services/categoriesApi.js +8 -8
  269. package/dist/services/draftStorage.d.ts +1 -1
  270. package/dist/services/draftStorage.js +11 -11
  271. package/dist/services/dynamicSchemaService.d.ts +1 -1
  272. package/dist/services/dynamicSchemaService.js +41 -39
  273. package/dist/services/globalSave.d.ts +2 -2
  274. package/dist/services/globalSave.js +53 -42
  275. package/dist/services/historyService.d.ts +1 -1
  276. package/dist/services/historyService.js +8 -8
  277. package/dist/services/interruptService.d.ts +1 -1
  278. package/dist/services/interruptService.js +35 -29
  279. package/dist/services/nodeExecutionService.d.ts +1 -1
  280. package/dist/services/nodeExecutionService.js +45 -44
  281. package/dist/services/playgroundService.d.ts +1 -1
  282. package/dist/services/playgroundService.js +29 -29
  283. package/dist/services/portConfigApi.d.ts +2 -2
  284. package/dist/services/portConfigApi.js +8 -8
  285. package/dist/services/settingsService.d.ts +2 -2
  286. package/dist/services/settingsService.js +25 -19
  287. package/dist/services/toastService.d.ts +4 -4
  288. package/dist/services/toastService.js +33 -33
  289. package/dist/services/variableService.d.ts +1 -1
  290. package/dist/services/variableService.js +36 -36
  291. package/dist/services/workflowStorage.d.ts +2 -2
  292. package/dist/services/workflowStorage.js +13 -13
  293. package/dist/settings/index.d.ts +7 -7
  294. package/dist/settings/index.js +6 -6
  295. package/dist/skins/default.d.ts +2 -0
  296. package/dist/skins/default.js +1 -0
  297. package/dist/skins/index.d.ts +13 -0
  298. package/dist/skins/index.js +30 -0
  299. package/dist/skins/slate.d.ts +2 -0
  300. package/dist/skins/slate.js +78 -0
  301. package/dist/stores/categoriesStore.svelte.d.ts +1 -1
  302. package/dist/stores/categoriesStore.svelte.js +5 -5
  303. package/dist/stores/editorStateMachine.svelte.d.ts +2 -2
  304. package/dist/stores/editorStateMachine.svelte.js +65 -33
  305. package/dist/stores/historyStore.svelte.d.ts +4 -4
  306. package/dist/stores/historyStore.svelte.js +4 -4
  307. package/dist/stores/interruptStore.svelte.d.ts +3 -3
  308. package/dist/stores/interruptStore.svelte.js +21 -21
  309. package/dist/stores/playgroundStore.svelte.d.ts +2 -2
  310. package/dist/stores/playgroundStore.svelte.js +25 -18
  311. package/dist/stores/portCoordinateStore.svelte.d.ts +2 -2
  312. package/dist/stores/portCoordinateStore.svelte.js +15 -8
  313. package/dist/stores/settingsStore.svelte.d.ts +2 -2
  314. package/dist/stores/settingsStore.svelte.js +62 -57
  315. package/dist/stores/workflowStore.svelte.d.ts +3 -3
  316. package/dist/stores/workflowStore.svelte.js +50 -47
  317. package/dist/stories/CanvasDecorator.svelte +35 -32
  318. package/dist/stories/CanvasDecorator.svelte.d.ts +2 -2
  319. package/dist/stories/EdgeDecorator.svelte +125 -0
  320. package/dist/stories/EdgeDecorator.svelte.d.ts +17 -0
  321. package/dist/stories/NodeDecorator.svelte +59 -53
  322. package/dist/stories/NodeDecorator.svelte.d.ts +1 -1
  323. package/dist/stories/utils.d.ts +2 -2
  324. package/dist/stories/utils.js +105 -67
  325. package/dist/styles/base.css +599 -595
  326. package/dist/styles/toast.css +14 -14
  327. package/dist/styles/tokens.css +409 -378
  328. package/dist/svelte-app.d.ts +9 -9
  329. package/dist/svelte-app.js +39 -39
  330. package/dist/themes/default.d.ts +2 -0
  331. package/dist/themes/default.js +9 -0
  332. package/dist/themes/index.d.ts +13 -0
  333. package/dist/themes/index.js +44 -0
  334. package/dist/themes/minimal.d.ts +2 -0
  335. package/dist/themes/minimal.js +11 -0
  336. package/dist/types/agentspec.d.ts +18 -18
  337. package/dist/types/agentspec.js +2 -2
  338. package/dist/types/auth.d.ts +1 -1
  339. package/dist/types/auth.js +6 -6
  340. package/dist/types/config.d.ts +6 -6
  341. package/dist/types/events.d.ts +2 -2
  342. package/dist/types/events.js +2 -2
  343. package/dist/types/index.d.ts +32 -32
  344. package/dist/types/index.js +6 -6
  345. package/dist/types/interrupt.d.ts +6 -6
  346. package/dist/types/interrupt.js +21 -21
  347. package/dist/types/interruptState.d.ts +12 -12
  348. package/dist/types/interruptState.js +66 -66
  349. package/dist/types/playground.d.ts +7 -7
  350. package/dist/types/playground.js +14 -14
  351. package/dist/types/settings.d.ts +5 -3
  352. package/dist/types/settings.js +25 -18
  353. package/dist/types/skin.d.ts +31 -0
  354. package/dist/types/skin.js +1 -0
  355. package/dist/types/theme.d.ts +35 -0
  356. package/dist/types/theme.js +1 -0
  357. package/dist/types/uischema.d.ts +4 -4
  358. package/dist/types/uischema.js +3 -3
  359. package/dist/utils/colors.d.ts +1 -1
  360. package/dist/utils/colors.js +97 -95
  361. package/dist/utils/config.d.ts +2 -2
  362. package/dist/utils/config.js +48 -48
  363. package/dist/utils/connections.d.ts +2 -2
  364. package/dist/utils/connections.js +15 -15
  365. package/dist/utils/errors.js +3 -3
  366. package/dist/utils/fetchWithAuth.d.ts +1 -1
  367. package/dist/utils/fetchWithAuth.js +2 -2
  368. package/dist/utils/handleIds.d.ts +2 -2
  369. package/dist/utils/handleIds.js +8 -8
  370. package/dist/utils/handlePositioning.d.ts +1 -1
  371. package/dist/utils/handlePositioning.js +2 -2
  372. package/dist/utils/icons.d.ts +1 -1
  373. package/dist/utils/icons.js +74 -74
  374. package/dist/utils/logger.d.ts +1 -1
  375. package/dist/utils/logger.js +7 -7
  376. package/dist/utils/nodeStatus.d.ts +1 -1
  377. package/dist/utils/nodeStatus.js +48 -48
  378. package/dist/utils/nodeTypes.d.ts +1 -1
  379. package/dist/utils/nodeTypes.js +21 -20
  380. package/dist/utils/nodeWrapper.d.ts +7 -7
  381. package/dist/utils/nodeWrapper.js +21 -19
  382. package/dist/utils/performanceUtils.d.ts +1 -1
  383. package/dist/utils/performanceUtils.js +2 -1
  384. package/dist/utils/sanitize.js +1 -1
  385. package/dist/utils/uischema.d.ts +2 -2
  386. package/dist/utils/uischema.js +8 -8
  387. package/dist/utils/validation.js +20 -8
  388. package/package.json +296 -291
@@ -2,10 +2,10 @@
2
2
  * Node Execution Service
3
3
  * Handles fetching and managing node execution information from the backend
4
4
  */
5
- import { getEndpointConfig } from './api.js';
6
- import { buildEndpointUrl } from '../config/endpoints.js';
7
- import { NODE_EXECUTION_CACHE_TIMEOUT_MS, PIPELINE_API_UNAVAILABLE_DURATION_MS } from '../config/constants.js';
8
- import { logger } from '../utils/logger.js';
5
+ import { getEndpointConfig } from "./api.js";
6
+ import { buildEndpointUrl } from "../config/endpoints.js";
7
+ import { NODE_EXECUTION_CACHE_TIMEOUT_MS, PIPELINE_API_UNAVAILABLE_DURATION_MS, } from "../config/constants.js";
8
+ import { logger } from "../utils/logger.js";
9
9
  /**
10
10
  * Service for managing node execution information
11
11
  */
@@ -33,9 +33,9 @@ export class NodeExecutionService {
33
33
  try {
34
34
  const endpointConfig = getEndpointConfig();
35
35
  if (!endpointConfig)
36
- throw new Error('Endpoint config not available');
36
+ throw new Error("Endpoint config not available");
37
37
  const url = buildEndpointUrl(endpointConfig, endpointConfig.endpoints.pipelines.get, {
38
- id: pipelineId
38
+ id: pipelineId,
39
39
  });
40
40
  const response = await fetch(url);
41
41
  if (!response.ok) {
@@ -49,24 +49,24 @@ export class NodeExecutionService {
49
49
  const nodeStatus = nodeStatuses[nodeId];
50
50
  if (!nodeJob && !nodeStatus) {
51
51
  return {
52
- status: 'idle',
52
+ status: "idle",
53
53
  executionCount: 0,
54
- isExecuting: false
54
+ isExecuting: false,
55
55
  };
56
56
  }
57
57
  const executionInfo = {
58
- status: this.mapJobStatusToExecutionStatus(nodeStatus?.status || nodeJob?.status || 'idle'),
58
+ status: this.mapJobStatusToExecutionStatus(nodeStatus?.status || nodeJob?.status || "idle"),
59
59
  executionCount: nodeJob?.execution_count || 0,
60
- isExecuting: nodeStatus?.status === 'running' || nodeJob?.status === 'running',
60
+ isExecuting: nodeStatus?.status === "running" || nodeJob?.status === "running",
61
61
  lastExecuted: nodeJob?.last_executed || nodeStatus?.last_executed,
62
62
  lastExecutionDuration: nodeJob?.execution_time || nodeStatus?.execution_time,
63
- lastError: nodeJob?.error || nodeStatus?.error
63
+ lastError: nodeJob?.error || nodeStatus?.error,
64
64
  };
65
65
  this.cache.set(nodeId, executionInfo);
66
66
  return executionInfo;
67
67
  }
68
68
  catch (error) {
69
- logger.error('Failed to fetch node execution info:', error);
69
+ logger.error("Failed to fetch node execution info:", error);
70
70
  return null;
71
71
  }
72
72
  }
@@ -82,9 +82,9 @@ export class NodeExecutionService {
82
82
  const defaultExecutionInfo = {};
83
83
  nodeIds.forEach((nodeId) => {
84
84
  defaultExecutionInfo[nodeId] = {
85
- status: 'idle',
85
+ status: "idle",
86
86
  executionCount: 0,
87
- isExecuting: false
87
+ isExecuting: false,
88
88
  };
89
89
  });
90
90
  return defaultExecutionInfo;
@@ -92,9 +92,9 @@ export class NodeExecutionService {
92
92
  try {
93
93
  const endpointConfig = getEndpointConfig();
94
94
  if (!endpointConfig)
95
- throw new Error('Endpoint config not available');
95
+ throw new Error("Endpoint config not available");
96
96
  const url = buildEndpointUrl(endpointConfig, endpointConfig.endpoints.pipelines.get, {
97
- id: pipelineId
97
+ id: pipelineId,
98
98
  });
99
99
  const response = await fetch(url);
100
100
  if (!response.ok) {
@@ -103,13 +103,14 @@ export class NodeExecutionService {
103
103
  if (response.status === 404) {
104
104
  logger.warn(`Pipeline API endpoint not available for pipeline ${pipelineId}`);
105
105
  this.apiUnavailable = true;
106
- this.apiUnavailableUntil = Date.now() + PIPELINE_API_UNAVAILABLE_DURATION_MS;
106
+ this.apiUnavailableUntil =
107
+ Date.now() + PIPELINE_API_UNAVAILABLE_DURATION_MS;
107
108
  const defaultExecutionInfo = {};
108
109
  nodeIds.forEach((nodeId) => {
109
110
  defaultExecutionInfo[nodeId] = {
110
- status: 'idle',
111
+ status: "idle",
111
112
  executionCount: 0,
112
- isExecuting: false
113
+ isExecuting: false,
113
114
  };
114
115
  });
115
116
  return defaultExecutionInfo;
@@ -122,9 +123,9 @@ export class NodeExecutionService {
122
123
  // Initialize all nodes with default values
123
124
  nodeIds.forEach((nodeId) => {
124
125
  executionInfoMap[nodeId] = {
125
- status: 'idle',
126
+ status: "idle",
126
127
  executionCount: 0,
127
- isExecuting: false
128
+ isExecuting: false,
128
129
  };
129
130
  });
130
131
  // Update with actual job data
@@ -134,10 +135,10 @@ export class NodeExecutionService {
134
135
  executionInfoMap[nodeId] = {
135
136
  status: this.mapJobStatusToExecutionStatus(job.status),
136
137
  executionCount: job.execution_count || 0,
137
- isExecuting: job.status === 'running',
138
+ isExecuting: job.status === "running",
138
139
  lastExecuted: job.completed || job.started,
139
140
  lastExecutionDuration: job.execution_time,
140
- lastError: job.error_message
141
+ lastError: job.error_message,
141
142
  };
142
143
  // Update cache
143
144
  this.cache.set(nodeId, executionInfoMap[nodeId]);
@@ -146,14 +147,14 @@ export class NodeExecutionService {
146
147
  return executionInfoMap;
147
148
  }
148
149
  catch (error) {
149
- logger.error('Failed to fetch multiple node execution info:', error);
150
+ logger.error("Failed to fetch multiple node execution info:", error);
150
151
  // Return default values instead of empty object to prevent repeated calls
151
152
  const defaultExecutionInfo = {};
152
153
  nodeIds.forEach((nodeId) => {
153
154
  defaultExecutionInfo[nodeId] = {
154
- status: 'idle',
155
+ status: "idle",
155
156
  executionCount: 0,
156
- isExecuting: false
157
+ isExecuting: false,
157
158
  };
158
159
  });
159
160
  return defaultExecutionInfo;
@@ -166,8 +167,8 @@ export class NodeExecutionService {
166
167
  try {
167
168
  const endpointConfig = getEndpointConfig();
168
169
  if (!endpointConfig)
169
- throw new Error('Endpoint config not available');
170
- const url = buildEndpointUrl(endpointConfig, '/node-execution-counts');
170
+ throw new Error("Endpoint config not available");
171
+ const url = buildEndpointUrl(endpointConfig, "/node-execution-counts");
171
172
  const response = await fetch(url);
172
173
  if (!response.ok) {
173
174
  throw new Error(`HTTP error! status: ${response.status}`);
@@ -179,7 +180,7 @@ export class NodeExecutionService {
179
180
  return {};
180
181
  }
181
182
  catch (error) {
182
- logger.error('Failed to fetch all node execution counts:', error);
183
+ logger.error("Failed to fetch all node execution counts:", error);
183
184
  return {};
184
185
  }
185
186
  }
@@ -218,10 +219,10 @@ export class NodeExecutionService {
218
219
  }
219
220
  else {
220
221
  this.cache.set(nodeId, {
221
- status: 'idle',
222
+ status: "idle",
222
223
  executionCount: 0,
223
224
  isExecuting: false,
224
- ...executionInfo
225
+ ...executionInfo,
225
226
  });
226
227
  }
227
228
  }
@@ -230,20 +231,20 @@ export class NodeExecutionService {
230
231
  */
231
232
  mapJobStatusToExecutionStatus(jobStatus) {
232
233
  switch (jobStatus) {
233
- case 'pending':
234
- return 'pending';
235
- case 'running':
236
- return 'running';
237
- case 'completed':
238
- return 'completed';
239
- case 'failed':
240
- return 'failed';
241
- case 'cancelled':
242
- return 'cancelled';
243
- case 'skipped':
244
- return 'skipped';
234
+ case "pending":
235
+ return "pending";
236
+ case "running":
237
+ return "running";
238
+ case "completed":
239
+ return "completed";
240
+ case "failed":
241
+ return "failed";
242
+ case "cancelled":
243
+ return "cancelled";
244
+ case "skipped":
245
+ return "skipped";
245
246
  default:
246
- return 'idle';
247
+ return "idle";
247
248
  }
248
249
  }
249
250
  /**
@@ -6,7 +6,7 @@
6
6
  *
7
7
  * @module services/playgroundService
8
8
  */
9
- import type { PlaygroundSession, PlaygroundMessage, PlaygroundMessagesApiResponse, PlaygroundSessionStatus } from '../types/playground.js';
9
+ import type { PlaygroundSession, PlaygroundMessage, PlaygroundMessagesApiResponse, PlaygroundSessionStatus } from "../types/playground.js";
10
10
  /**
11
11
  * Playground Service class
12
12
  *
@@ -6,10 +6,10 @@
6
6
  *
7
7
  * @module services/playgroundService
8
8
  */
9
- import { defaultShouldStopPolling } from '../types/playground.js';
10
- import { buildEndpointUrl, getEndpointHeaders } from '../config/endpoints.js';
11
- import { getEndpointConfig } from './api.js';
12
- import { logger } from '../utils/logger.js';
9
+ import { defaultShouldStopPolling } from "../types/playground.js";
10
+ import { buildEndpointUrl, getEndpointHeaders } from "../config/endpoints.js";
11
+ import { getEndpointConfig } from "./api.js";
12
+ import { logger } from "../utils/logger.js";
13
13
  /**
14
14
  * Default polling interval in milliseconds
15
15
  */
@@ -51,7 +51,7 @@ export class PlaygroundService {
51
51
  getConfig() {
52
52
  const config = getEndpointConfig();
53
53
  if (!config) {
54
- throw new Error('Endpoint configuration not set. Call setEndpointConfig() first.');
54
+ throw new Error("Endpoint configuration not set. Call setEndpointConfig() first.");
55
55
  }
56
56
  return config;
57
57
  }
@@ -64,13 +64,13 @@ export class PlaygroundService {
64
64
  */
65
65
  async request(url, options = {}) {
66
66
  const config = this.getConfig();
67
- const headers = getEndpointHeaders(config, 'playground');
67
+ const headers = getEndpointHeaders(config, "playground");
68
68
  const response = await fetch(url, {
69
69
  ...options,
70
70
  headers: {
71
71
  ...headers,
72
- ...options.headers
73
- }
72
+ ...options.headers,
73
+ },
74
74
  });
75
75
  if (!response.ok) {
76
76
  const errorData = await response.json().catch(() => ({}));
@@ -94,15 +94,15 @@ export class PlaygroundService {
94
94
  async listSessions(workflowId, options) {
95
95
  const config = this.getConfig();
96
96
  let url = buildEndpointUrl(config, config.endpoints.playground.listSessions, {
97
- id: workflowId
97
+ id: workflowId,
98
98
  });
99
99
  // Add query parameters
100
100
  const params = new URLSearchParams();
101
101
  if (options?.limit !== undefined) {
102
- params.append('limit', options.limit.toString());
102
+ params.append("limit", options.limit.toString());
103
103
  }
104
104
  if (options?.offset !== undefined) {
105
- params.append('offset', options.offset.toString());
105
+ params.append("offset", options.offset.toString());
106
106
  }
107
107
  const queryString = params.toString();
108
108
  if (queryString) {
@@ -122,14 +122,14 @@ export class PlaygroundService {
122
122
  async createSession(workflowId, name, metadata) {
123
123
  const config = this.getConfig();
124
124
  const url = buildEndpointUrl(config, config.endpoints.playground.createSession, {
125
- id: workflowId
125
+ id: workflowId,
126
126
  });
127
127
  const response = await this.request(url, {
128
- method: 'POST',
129
- body: JSON.stringify({ name, metadata })
128
+ method: "POST",
129
+ body: JSON.stringify({ name, metadata }),
130
130
  });
131
131
  if (!response.data) {
132
- throw new Error('Failed to create session: No data returned');
132
+ throw new Error("Failed to create session: No data returned");
133
133
  }
134
134
  return response.data;
135
135
  }
@@ -142,11 +142,11 @@ export class PlaygroundService {
142
142
  async getSession(sessionId) {
143
143
  const config = this.getConfig();
144
144
  const url = buildEndpointUrl(config, config.endpoints.playground.getSession, {
145
- sessionId
145
+ sessionId,
146
146
  });
147
147
  const response = await this.request(url);
148
148
  if (!response.data) {
149
- throw new Error('Session not found');
149
+ throw new Error("Session not found");
150
150
  }
151
151
  return response.data;
152
152
  }
@@ -158,10 +158,10 @@ export class PlaygroundService {
158
158
  async deleteSession(sessionId) {
159
159
  const config = this.getConfig();
160
160
  const url = buildEndpointUrl(config, config.endpoints.playground.deleteSession, {
161
- sessionId
161
+ sessionId,
162
162
  });
163
163
  await this.request(url, {
164
- method: 'DELETE'
164
+ method: "DELETE",
165
165
  });
166
166
  }
167
167
  // =========================================================================
@@ -178,15 +178,15 @@ export class PlaygroundService {
178
178
  async getMessages(sessionId, since, limit) {
179
179
  const config = this.getConfig();
180
180
  let url = buildEndpointUrl(config, config.endpoints.playground.getMessages, {
181
- sessionId
181
+ sessionId,
182
182
  });
183
183
  // Add query parameters
184
184
  const params = new URLSearchParams();
185
185
  if (since) {
186
- params.append('since', since);
186
+ params.append("since", since);
187
187
  }
188
188
  if (limit !== undefined) {
189
- params.append('limit', limit.toString());
189
+ params.append("limit", limit.toString());
190
190
  }
191
191
  const queryString = params.toString();
192
192
  if (queryString) {
@@ -205,18 +205,18 @@ export class PlaygroundService {
205
205
  async sendMessage(sessionId, content, inputs) {
206
206
  const config = this.getConfig();
207
207
  const url = buildEndpointUrl(config, config.endpoints.playground.sendMessage, {
208
- sessionId
208
+ sessionId,
209
209
  });
210
210
  const requestBody = { content };
211
211
  if (inputs) {
212
212
  requestBody.inputs = inputs;
213
213
  }
214
214
  const response = await this.request(url, {
215
- method: 'POST',
216
- body: JSON.stringify(requestBody)
215
+ method: "POST",
216
+ body: JSON.stringify(requestBody),
217
217
  });
218
218
  if (!response.data) {
219
- throw new Error('Failed to send message: No data returned');
219
+ throw new Error("Failed to send message: No data returned");
220
220
  }
221
221
  return response.data;
222
222
  }
@@ -228,10 +228,10 @@ export class PlaygroundService {
228
228
  async stopExecution(sessionId) {
229
229
  const config = this.getConfig();
230
230
  const url = buildEndpointUrl(config, config.endpoints.playground.stopExecution, {
231
- sessionId
231
+ sessionId,
232
232
  });
233
233
  await this.request(url, {
234
- method: 'POST'
234
+ method: "POST",
235
235
  });
236
236
  }
237
237
  // =========================================================================
@@ -274,7 +274,7 @@ export class PlaygroundService {
274
274
  }
275
275
  }
276
276
  catch (error) {
277
- logger.error('Polling error:', error);
277
+ logger.error("Polling error:", error);
278
278
  // Exponential backoff on error
279
279
  this.currentBackoff = Math.min(this.currentBackoff * 2, MAX_POLLING_BACKOFF);
280
280
  }
@@ -2,8 +2,8 @@
2
2
  * Port Configuration API Service
3
3
  * Handles fetching port configuration from the backend
4
4
  */
5
- import type { PortConfig } from '../types/index.js';
6
- import type { EndpointConfig } from '../config/endpoints.js';
5
+ import type { PortConfig } from "../types/index.js";
6
+ import type { EndpointConfig } from "../config/endpoints.js";
7
7
  /**
8
8
  * Fetch port configuration from API
9
9
  */
@@ -2,9 +2,9 @@
2
2
  * Port Configuration API Service
3
3
  * Handles fetching port configuration from the backend
4
4
  */
5
- import { buildEndpointUrl } from '../config/endpoints.js';
6
- import { DEFAULT_PORT_CONFIG } from '../config/defaultPortConfig.js';
7
- import { logger } from '../utils/logger.js';
5
+ import { buildEndpointUrl } from "../config/endpoints.js";
6
+ import { DEFAULT_PORT_CONFIG } from "../config/defaultPortConfig.js";
7
+ import { logger } from "../utils/logger.js";
8
8
  /**
9
9
  * Fetch port configuration from API
10
10
  */
@@ -12,7 +12,7 @@ export async function fetchPortConfig(endpointConfig) {
12
12
  try {
13
13
  const url = buildEndpointUrl(endpointConfig, endpointConfig.endpoints.portConfig);
14
14
  const response = await fetch(url, {
15
- headers: { 'Content-Type': 'application/json' }
15
+ headers: { "Content-Type": "application/json" },
16
16
  });
17
17
  if (!response.ok) {
18
18
  throw new Error(`HTTP ${response.status}: ${response.statusText}`);
@@ -21,13 +21,13 @@ export async function fetchPortConfig(endpointConfig) {
21
21
  const portConfig = data.data ?? data;
22
22
  // Validate the configuration has required fields
23
23
  if (!portConfig.dataTypes || !Array.isArray(portConfig.dataTypes)) {
24
- logger.warn('Invalid port config received from API, using default');
24
+ logger.warn("Invalid port config received from API, using default");
25
25
  return DEFAULT_PORT_CONFIG;
26
26
  }
27
27
  return portConfig;
28
28
  }
29
29
  catch (error) {
30
- logger.error('Error fetching port configuration:', error);
30
+ logger.error("Error fetching port configuration:", error);
31
31
  return DEFAULT_PORT_CONFIG;
32
32
  }
33
33
  }
@@ -35,13 +35,13 @@ export async function fetchPortConfig(endpointConfig) {
35
35
  * Validate port configuration structure
36
36
  */
37
37
  export function validatePortConfig(config) {
38
- if (!config || typeof config !== 'object') {
38
+ if (!config || typeof config !== "object") {
39
39
  return false;
40
40
  }
41
41
  if (!config.dataTypes || !Array.isArray(config.dataTypes)) {
42
42
  return false;
43
43
  }
44
- if (!config.defaultDataType || typeof config.defaultDataType !== 'string') {
44
+ if (!config.defaultDataType || typeof config.defaultDataType !== "string") {
45
45
  return false;
46
46
  }
47
47
  // Check that all data types have required fields
@@ -7,8 +7,8 @@
7
7
  *
8
8
  * @module services/settingsService
9
9
  */
10
- import type { FlowDropSettings, PartialSettings } from '../types/settings.js';
11
- import type { EndpointConfig } from '../config/endpoints.js';
10
+ import type { FlowDropSettings, PartialSettings } from "../types/settings.js";
11
+ import type { EndpointConfig } from "../config/endpoints.js";
12
12
  /**
13
13
  * Set the endpoint configuration for settings API calls
14
14
  *
@@ -7,7 +7,7 @@
7
7
  *
8
8
  * @module services/settingsService
9
9
  */
10
- import { buildEndpointUrl, getEndpointHeaders } from '../config/endpoints.js';
10
+ import { buildEndpointUrl, getEndpointHeaders } from "../config/endpoints.js";
11
11
  // =========================================================================
12
12
  // Configuration
13
13
  // =========================================================================
@@ -44,17 +44,17 @@ export function getSettingsEndpointConfig() {
44
44
  */
45
45
  async function settingsRequest(endpointKey, endpointPath, options = {}) {
46
46
  if (!endpointConfig) {
47
- throw new Error('Endpoint configuration not set. Call setSettingsEndpointConfig() first.');
47
+ throw new Error("Endpoint configuration not set. Call setSettingsEndpointConfig() first.");
48
48
  }
49
49
  const url = buildEndpointUrl(endpointConfig, endpointPath);
50
50
  const headers = getEndpointHeaders(endpointConfig, endpointKey);
51
51
  const response = await fetch(url, {
52
52
  headers,
53
- ...options
53
+ ...options,
54
54
  });
55
55
  // Check if response is JSON
56
- const contentType = response.headers.get('content-type');
57
- const isJson = contentType?.includes('application/json');
56
+ const contentType = response.headers.get("content-type");
57
+ const isJson = contentType?.includes("application/json");
58
58
  if (!response.ok) {
59
59
  let errorMessage = `HTTP ${response.status}: ${response.statusText}`;
60
60
  if (isJson) {
@@ -86,11 +86,13 @@ export const settingsApi = {
86
86
  */
87
87
  async getPreferences() {
88
88
  if (!endpointConfig) {
89
- throw new Error('Endpoint configuration not set');
89
+ throw new Error("Endpoint configuration not set");
90
90
  }
91
- const response = await settingsRequest('users.preferences', endpointConfig.endpoints.users.preferences, { method: 'GET' });
91
+ const response = await settingsRequest("users.preferences", endpointConfig.endpoints.users.preferences, { method: "GET" });
92
92
  if (!response.success || !response.data) {
93
- throw new Error(typeof response.error === 'string' ? response.error : 'Failed to fetch user preferences');
93
+ throw new Error(typeof response.error === "string"
94
+ ? response.error
95
+ : "Failed to fetch user preferences");
94
96
  }
95
97
  return response.data;
96
98
  },
@@ -101,14 +103,16 @@ export const settingsApi = {
101
103
  */
102
104
  async savePreferences(settings) {
103
105
  if (!endpointConfig) {
104
- throw new Error('Endpoint configuration not set');
106
+ throw new Error("Endpoint configuration not set");
105
107
  }
106
- const response = await settingsRequest('users.preferences', endpointConfig.endpoints.users.preferences, {
107
- method: 'PUT',
108
- body: JSON.stringify(settings)
108
+ const response = await settingsRequest("users.preferences", endpointConfig.endpoints.users.preferences, {
109
+ method: "PUT",
110
+ body: JSON.stringify(settings),
109
111
  });
110
112
  if (!response.success) {
111
- throw new Error(typeof response.error === 'string' ? response.error : 'Failed to save user preferences');
113
+ throw new Error(typeof response.error === "string"
114
+ ? response.error
115
+ : "Failed to save user preferences");
112
116
  }
113
117
  },
114
118
  /**
@@ -118,17 +122,19 @@ export const settingsApi = {
118
122
  */
119
123
  async patchPreferences(partial) {
120
124
  if (!endpointConfig) {
121
- throw new Error('Endpoint configuration not set');
125
+ throw new Error("Endpoint configuration not set");
122
126
  }
123
- const response = await settingsRequest('users.preferences', endpointConfig.endpoints.users.preferences, {
124
- method: 'PATCH',
125
- body: JSON.stringify(partial)
127
+ const response = await settingsRequest("users.preferences", endpointConfig.endpoints.users.preferences, {
128
+ method: "PATCH",
129
+ body: JSON.stringify(partial),
126
130
  });
127
131
  if (!response.success || !response.data) {
128
- throw new Error(typeof response.error === 'string' ? response.error : 'Failed to update user preferences');
132
+ throw new Error(typeof response.error === "string"
133
+ ? response.error
134
+ : "Failed to update user preferences");
129
135
  }
130
136
  return response.data;
131
- }
137
+ },
132
138
  };
133
139
  // =========================================================================
134
140
  // Settings Service Class (for settingsStore integration)
@@ -3,7 +3,7 @@
3
3
  * Centralized toast notification service using svelte-french-toast
4
4
  * Provides consistent toast notifications across the FlowDrop application
5
5
  */
6
- import { type DefaultToastOptions } from 'svelte-5-french-toast';
6
+ import { type DefaultToastOptions } from "svelte-5-french-toast";
7
7
  /**
8
8
  * Default toast options themed with FlowDrop design tokens.
9
9
  * Use with <Toaster toastOptions={flowdropToastOptions} containerClassName="flowdrop-toaster" />
@@ -15,13 +15,13 @@ export declare const FLOWDROP_TOASTER_CLASS = "flowdrop-toaster";
15
15
  /**
16
16
  * Toast notification types
17
17
  */
18
- export type ToastType = 'success' | 'error' | 'warning' | 'info' | 'loading';
18
+ export type ToastType = "success" | "error" | "warning" | "info" | "loading";
19
19
  /**
20
20
  * Toast configuration options
21
21
  */
22
22
  export interface ToastOptions {
23
23
  duration?: number;
24
- position?: 'top-left' | 'top-center' | 'top-right' | 'bottom-left' | 'bottom-center' | 'bottom-right';
24
+ position?: "top-left" | "top-center" | "top-right" | "bottom-left" | "bottom-center" | "bottom-right";
25
25
  }
26
26
  /**
27
27
  * Show a success toast notification
@@ -54,7 +54,7 @@ export declare function dismissAllToasts(): void;
54
54
  /**
55
55
  * Show a promise-based toast (loading -> success/error)
56
56
  */
57
- export declare function showPromise<T>(promise: Promise<T>, { loading, success, error, options }: {
57
+ export declare function showPromise<T>(promise: Promise<T>, { loading, success, error, options, }: {
58
58
  loading: string;
59
59
  success: string | ((data: T) => string);
60
60
  error: string | ((error: unknown) => string);