Flowfile 0.5.4__py3-none-any.whl → 0.6.1__py3-none-any.whl

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 (259) hide show
  1. flowfile/__main__.py +94 -1
  2. flowfile/api.py +8 -6
  3. flowfile/web/static/assets/{AdminView-f9847d67.js → AdminView-C4K1DdHI.js} +28 -33
  4. flowfile/web/static/assets/{CloudConnectionView-faace55b.js → CloudConnectionView-BZbPvPUL.js} +39 -50
  5. flowfile/web/static/assets/{CloudStorageReader-24c54524.css → CloudStorageReader-BDByiqPI.css} +25 -25
  6. flowfile/web/static/assets/{CloudStorageReader-d86ecaa7.js → CloudStorageReader-DLVukNJ7.js} +30 -35
  7. flowfile/web/static/assets/{CloudStorageWriter-0f4d9a44.js → CloudStorageWriter-Bfi-C1QW.js} +32 -37
  8. flowfile/web/static/assets/{CloudStorageWriter-60547855.css → CloudStorageWriter-y8jL8yjG.css} +24 -24
  9. flowfile/web/static/assets/{ColumnActionInput-f4189ae0.js → ColumnActionInput-BpiCApw9.js} +7 -12
  10. flowfile/web/static/assets/{ColumnSelector-e66b33da.js → ColumnSelector-CEAwedI7.js} +1 -2
  11. flowfile/web/static/assets/ContextMenu-CdojQu0w.js +9 -0
  12. flowfile/web/static/assets/ContextMenu-D12mhsy1.js +9 -0
  13. flowfile/web/static/assets/ContextMenu-EWUR98va.js +9 -0
  14. flowfile/web/static/assets/{ContextMenu.vue_vue_type_script_setup_true_lang-a1bd6314.js → ContextMenu.vue_vue_type_script_setup_true_lang-I4rXXd6G.js} +4 -5
  15. flowfile/web/static/assets/{CrossJoin-24694b8f.js → CrossJoin-BOFfxkJO.js} +19 -18
  16. flowfile/web/static/assets/{CrossJoin-71b4cc10.css → CrossJoin-Cmbyt9im.css} +18 -18
  17. flowfile/web/static/assets/{CustomNode-569d45ff.js → CustomNode-Bhpezobq.js} +12 -17
  18. flowfile/web/static/assets/{DatabaseConnectionSettings-cfc08938.js → DatabaseConnectionSettings-Dw3bSJKB.js} +10 -11
  19. flowfile/web/static/assets/{DatabaseReader-5bf8c75b.css → DatabaseReader-D6pUNUCs.css} +21 -21
  20. flowfile/web/static/assets/{DatabaseReader-701feabb.js → DatabaseReader-m87ghlw0.js} +36 -34
  21. flowfile/web/static/assets/{DatabaseView-0482e5b5.js → DatabaseView-CisSAtpe.js} +30 -38
  22. flowfile/web/static/assets/{DatabaseWriter-16721989.js → DatabaseWriter-Bbj9JLdL.js} +33 -35
  23. flowfile/web/static/assets/{DatabaseWriter-bdcf2c8b.css → DatabaseWriter-RBqdFLj8.css} +17 -17
  24. flowfile/web/static/assets/{DesignerView-f64749fb.js → DesignerView-DemDevTQ.js} +1841 -2090
  25. flowfile/web/static/assets/{DesignerView-49abb835.css → DesignerView-Dm6OzlIc.css} +244 -202
  26. flowfile/web/static/assets/{DocumentationView-61bd2990.js → DocumentationView-BrC1ZR3H.js} +3 -4
  27. flowfile/web/static/assets/{ExploreData-e2735b13.js → ExploreData-BMKcDuRb.js} +8 -10
  28. flowfile/web/static/assets/{ExternalSource-2535c3b2.js → ExternalSource-BXrNNS-f.js} +40 -42
  29. flowfile/web/static/assets/{ExternalSource-7ac7373f.css → ExternalSource-NB6WVl5R.css} +14 -14
  30. flowfile/web/static/assets/{Filter-2cdbc93c.js → Filter-C2MjsN6P.js} +36 -33
  31. flowfile/web/static/assets/{Filter-7494ea97.css → Filter-DCMGGuGC.css} +9 -9
  32. flowfile/web/static/assets/{Formula-53d58c43.css → Formula-BYafbDj8.css} +4 -4
  33. flowfile/web/static/assets/{Formula-fcda3c2c.js → Formula-ufuy4mVD.js} +27 -26
  34. flowfile/web/static/assets/{FuzzyMatch-ad6361d6.css → FuzzyMatch-BGJAwgd0.css} +42 -42
  35. flowfile/web/static/assets/{FuzzyMatch-f8d3b7d3.js → FuzzyMatch-BOHODq3h.js} +36 -38
  36. flowfile/web/static/assets/{GraphSolver-72eaa695.js → GraphSolver-B6ZzpNGO.js} +23 -21
  37. flowfile/web/static/assets/{GraphSolver-4b4d7db9.css → GraphSolver-DFN83sj3.css} +4 -4
  38. flowfile/web/static/assets/{GroupBy-8aa0598b.js → GroupBy-B9BRNcfe.js} +30 -29
  39. flowfile/web/static/assets/{Sort-4abb7fae.css → GroupBy-x4ooP5np.css} +1 -1
  40. flowfile/web/static/assets/Join-Bx_g5bZz.css +118 -0
  41. flowfile/web/static/assets/{Join-e40f0ffa.js → Join-DsBEy1IH.js} +48 -43
  42. flowfile/web/static/assets/{LoginView-5111c9ae.js → LoginView-Ct0rhdcO.js} +1 -2
  43. flowfile/web/static/assets/{ManualInput-3702e677.css → ManualInput-DlZmtMdt.css} +48 -48
  44. flowfile/web/static/assets/{ManualInput-9b6f3224.js → ManualInput-bC4BUgnG.js} +85 -44
  45. flowfile/web/static/assets/{MultiSelect-ef28e19e.js → MultiSelect-DIQ8PuTC.js} +2 -2
  46. flowfile/web/static/assets/{MultiSelect.vue_vue_type_script_setup_true_lang-83b3bbfd.js → MultiSelect.vue_vue_type_script_setup_true_lang-BefHfqTI.js} +1 -1
  47. flowfile/web/static/assets/{NodeDesigner-d2b7ee2b.js → NodeDesigner-D39yzr2k.js} +178 -208
  48. flowfile/web/static/assets/{NodeDesigner-94cd4dd3.css → NodeDesigner-R0l6sYyY.css} +76 -76
  49. flowfile/web/static/assets/{NumericInput-1d789794.js → NumericInput-DMSX3oOr.js} +2 -2
  50. flowfile/web/static/assets/{NumericInput.vue_vue_type_script_setup_true_lang-7775f83e.js → NumericInput.vue_vue_type_script_setup_true_lang-d0YlVHAl.js} +1 -1
  51. flowfile/web/static/assets/{Output-cefef801.js → Output-D0VoXGcW.js} +26 -34
  52. flowfile/web/static/assets/{Output-692dd25d.css → Output-DsmglIDy.css} +5 -5
  53. flowfile/web/static/assets/{Pivot-bab1b75b.js → Pivot-BnMB4sEe.js} +26 -26
  54. flowfile/web/static/assets/{Pivot-0eda81b4.css → Pivot-qKTyWxop.css} +4 -4
  55. flowfile/web/static/assets/{PivotValidation-fba09336.js → PivotValidation-B2lWvugt.js} +7 -9
  56. flowfile/web/static/assets/{PivotValidation-e7941f91.js → PivotValidation-BPlhRjpL.js} +7 -9
  57. flowfile/web/static/assets/{PolarsCode-740e40fa.js → PolarsCode-5h0tHnWR.js} +22 -20
  58. flowfile/web/static/assets/PopOver-BHpt5rsj.js +134 -0
  59. flowfile/web/static/assets/{PopOver-d96599db.css → PopOver-CyYM4-rV.css} +1 -1
  60. flowfile/web/static/assets/{Read-90f366bc.css → Read-DJxkrTb_.css} +10 -10
  61. flowfile/web/static/assets/Read-TsLEFh3B.js +227 -0
  62. flowfile/web/static/assets/{RecordCount-ffc71eca.js → RecordCount-DkVixq9v.js} +18 -17
  63. flowfile/web/static/assets/{RecordId-a70bb8df.js → RecordId-C2UEGlCf.js} +42 -39
  64. flowfile/web/static/assets/{SQLQueryComponent-15a421f5.js → SQLQueryComponent-Dr5KMoD3.js} +2 -3
  65. flowfile/web/static/assets/{Sample-6c26afc7.js → Sample-Cb3eQNmd.js} +30 -30
  66. flowfile/web/static/assets/{SecretSelector-ceed9496.js → SecretSelector-De2L2bSx.js} +3 -4
  67. flowfile/web/static/assets/{SecretsView-214d255a.js → SecretsView-CheC9BPV.js} +13 -16
  68. flowfile/web/static/assets/{Select-8fc29999.js → Select-CI8TloRs.js} +41 -36
  69. flowfile/web/static/assets/{SettingsSection-9f0d1725.js → SettingsSection-B39ulIiI.js} +1 -2
  70. flowfile/web/static/assets/{SettingsSection-83090218.js → SettingsSection-BiCc7S9h.js} +1 -2
  71. flowfile/web/static/assets/{SettingsSection-3f70e4c3.js → SettingsSection-CITK_R7o.js} +2 -3
  72. flowfile/web/static/assets/{SettingsSection-26fe48d4.css → SettingsSection-D2GgY-Aq.css} +4 -4
  73. flowfile/web/static/assets/{SetupView-3fa0aa03.js → SetupView-C1aXRDvp.js} +3 -4
  74. flowfile/web/static/assets/{SetupView-e2da3442.css → SetupView-CI1nd-5Z.css} +38 -38
  75. flowfile/web/static/assets/{SingleSelect-a4a568cb.js → SingleSelect-Kr_hz90m.js} +2 -2
  76. flowfile/web/static/assets/{SingleSelect.vue_vue_type_script_setup_true_lang-c8ebdd33.js → SingleSelect.vue_vue_type_script_setup_true_lang-Rxht5Z5N.js} +1 -1
  77. flowfile/web/static/assets/{SliderInput-be533e71.js → SliderInput-CLqpCxCb.js} +1 -2
  78. flowfile/web/static/assets/{GroupBy-5792782d.css → Sort-BIt2kc_p.css} +1 -1
  79. flowfile/web/static/assets/{Sort-154dad81.js → Sort-Dnw_J6Qi.js} +25 -25
  80. flowfile/web/static/assets/{TextInput-454e2bda.js → TextInput-wdlunIZC.js} +2 -2
  81. flowfile/web/static/assets/{TextInput.vue_vue_type_script_setup_true_lang-e86510d0.js → TextInput.vue_vue_type_script_setup_true_lang-Bcj3ywzv.js} +1 -1
  82. flowfile/web/static/assets/{TextToRows-ea73433d.js → TextToRows-BhtyGWPq.js} +42 -49
  83. flowfile/web/static/assets/{TextToRows-12afb4f4.css → TextToRows-DivDOLDx.css} +9 -9
  84. flowfile/web/static/assets/{ToggleSwitch-9d7b30f1.js → ToggleSwitch-B-6WzfFf.js} +2 -2
  85. flowfile/web/static/assets/{ToggleSwitch.vue_vue_type_script_setup_true_lang-00f2580e.js → ToggleSwitch.vue_vue_type_script_setup_true_lang-Cj8LqT-b.js} +1 -1
  86. flowfile/web/static/assets/{UnavailableFields-b72a2c72.js → UnavailableFields-Yf6XSqFB.js} +2 -3
  87. flowfile/web/static/assets/{Union-1e44f263.js → Union-CwpjeKYC.js} +20 -23
  88. flowfile/web/static/assets/{Unpivot-b6ad6427.css → Union-DQJcpp3-.css} +6 -6
  89. flowfile/web/static/assets/{Unique-a3bc6d0a.js → Unique-25v3urqH.js} +75 -74
  90. flowfile/web/static/assets/{Union-d6a8d7d5.css → Unpivot-Deqh1gtI.css} +6 -6
  91. flowfile/web/static/assets/{Unpivot-e27935fc.js → Unpivot-sYcTTXrq.js} +34 -27
  92. flowfile/web/static/assets/{UnpivotValidation-72497680.js → UnpivotValidation-C5DDEKY2.js} +5 -7
  93. flowfile/web/static/assets/VueGraphicWalker-B8l1_Z92.js +131 -0
  94. flowfile/web/static/assets/VueGraphicWalker-Da_1-3me.css +21 -0
  95. flowfile/web/static/assets/{api-a2102880.js → api-C0LvF-0C.js} +1 -1
  96. flowfile/web/static/assets/{api-f75042b0.js → api-DaC83EO_.js} +1 -1
  97. flowfile/web/static/assets/client-C8Ygr6Gb.js +42 -0
  98. flowfile/web/static/assets/{dropDown-2798a109.js → dropDown-D5YXaPRR.js} +7 -12
  99. flowfile/web/static/assets/{fullEditor-cf7d7d93.js → fullEditor-BVYnWm05.js} +300 -18
  100. flowfile/web/static/assets/genericNodeSettings-2wAu-QKn.css +75 -0
  101. flowfile/web/static/assets/genericNodeSettings-BBtW_Cpz.js +590 -0
  102. flowfile/web/static/assets/{VueGraphicWalker-d9ab70a3.js → graphic-walker.es-VrK6vdGE.js} +92305 -89751
  103. flowfile/web/static/assets/index-BCJxPfM5.js +6693 -0
  104. flowfile/web/static/assets/{index-f0a6e5a5.js → index-CHPMUR0d.js} +150 -170
  105. flowfile/web/static/assets/index-DPkoZWq8.js +32 -0
  106. flowfile/web/static/assets/index-DnW_KC_I.js +277 -0
  107. flowfile/web/static/assets/index-UFXyfirV.css +10797 -0
  108. flowfile/web/static/assets/index-bcuE0Z0p.js +87456 -0
  109. flowfile/web/static/assets/{node.types-2c15bb7e.js → node.types-Dl4gtSW9.js} +2 -2
  110. flowfile/web/static/assets/{outputCsv-3c1757e8.js → outputCsv-BELuBiJZ.js} +2 -3
  111. flowfile/web/static/assets/outputCsv-CdGkv-fN.css +2581 -0
  112. flowfile/web/static/assets/{outputExcel-686e1f48.js → outputExcel-D0TTNM79.js} +1 -2
  113. flowfile/web/static/assets/{outputParquet-df28faa7.js → outputParquet-Cz9EbRHj.js} +1 -2
  114. flowfile/web/static/assets/{readCsv-e37eee21.js → readCsv-7bd3kUMI.js} +1 -2
  115. flowfile/web/static/assets/{readExcel-a13f14bb.js → readExcel-Cq8CCwIv.js} +3 -4
  116. flowfile/web/static/assets/{readParquet-c5244ad5.css → readParquet-CRDmBrsp.css} +4 -4
  117. flowfile/web/static/assets/{readParquet-344cf746.js → readParquet-DjR4mRaj.js} +4 -5
  118. flowfile/web/static/assets/{secrets.api-ae198c5c.js → secrets.api-C9o2KE5V.js} +1 -1
  119. flowfile/web/static/assets/{selectDynamic-6b4b0767.js → selectDynamic-Bl5FVsME.js} +5 -8
  120. flowfile/web/static/assets/useNodeSettings-dMS9zmh_.js +69 -0
  121. flowfile/web/static/assets/{vue-codemirror.esm-31ba0e0b.js → vue-codemirror.esm-CwaYwln0.js} +3469 -3064
  122. flowfile/web/static/assets/{vue-content-loader.es-4469c8ff.js → vue-content-loader.es-CMoRXo7N.js} +3 -3
  123. flowfile/web/static/index.html +2 -3
  124. {flowfile-0.5.4.dist-info → flowfile-0.6.1.dist-info}/METADATA +2 -1
  125. flowfile-0.6.1.dist-info/RECORD +417 -0
  126. {flowfile-0.5.4.dist-info → flowfile-0.6.1.dist-info}/WHEEL +1 -1
  127. flowfile_core/auth/password.py +1 -0
  128. flowfile_core/database/init_db.py +7 -5
  129. flowfile_core/fileExplorer/funcs.py +2 -2
  130. flowfile_core/flowfile/code_generator/code_generator.py +13 -11
  131. flowfile_core/flowfile/filter_expressions.py +327 -0
  132. flowfile_core/flowfile/flow_data_engine/flow_data_engine.py +61 -59
  133. flowfile_core/flowfile/flow_data_engine/flow_file_column/type_registry.py +3 -29
  134. flowfile_core/flowfile/flow_data_engine/flow_file_column/utils.py +45 -14
  135. flowfile_core/flowfile/flow_data_engine/subprocess_operations/models.py +20 -3
  136. flowfile_core/flowfile/flow_data_engine/subprocess_operations/streaming.py +206 -0
  137. flowfile_core/flowfile/flow_data_engine/subprocess_operations/subprocess_operations.py +158 -24
  138. flowfile_core/flowfile/flow_graph.py +504 -190
  139. flowfile_core/flowfile/flow_node/__init__.py +32 -0
  140. flowfile_core/flowfile/flow_node/executor.py +404 -0
  141. flowfile_core/flowfile/flow_node/flow_node.py +207 -106
  142. flowfile_core/flowfile/flow_node/models.py +40 -0
  143. flowfile_core/flowfile/flow_node/output_field_config_applier.py +217 -0
  144. flowfile_core/flowfile/flow_node/schema_utils.py +78 -0
  145. flowfile_core/flowfile/flow_node/state.py +155 -0
  146. flowfile_core/flowfile/history_manager.py +401 -0
  147. flowfile_core/flowfile/manage/compatibility_enhancements.py +9 -0
  148. flowfile_core/flowfile/manage/io_flowfile.py +3 -1
  149. flowfile_core/flowfile/sources/external_sources/sql_source/models.py +20 -4
  150. flowfile_core/flowfile/util/execution_orderer.py +89 -36
  151. flowfile_core/main.py +2 -4
  152. flowfile_core/routes/auth.py +8 -9
  153. flowfile_core/routes/routes.py +320 -101
  154. flowfile_core/routes/user_defined_components.py +18 -16
  155. flowfile_core/schemas/history_schema.py +220 -0
  156. flowfile_core/schemas/input_schema.py +130 -6
  157. flowfile_core/schemas/schemas.py +9 -0
  158. flowfile_core/schemas/transform_schema.py +27 -5
  159. flowfile_core/schemas/yaml_types.py +23 -5
  160. flowfile_frame/adding_expr.py +18 -126
  161. flowfile_frame/callable_utils.py +261 -0
  162. flowfile_frame/database/connection_manager.py +0 -1
  163. flowfile_frame/expr.py +8 -4
  164. flowfile_frame/flow_frame.py +41 -41
  165. flowfile_frame/lazy.py +3 -12
  166. flowfile_frame/lazy_methods.py +5 -64
  167. flowfile_frame/utils.py +13 -32
  168. flowfile_worker/funcs.py +6 -4
  169. flowfile_worker/main.py +2 -0
  170. flowfile_worker/models.py +31 -11
  171. flowfile_worker/routes.py +60 -35
  172. flowfile_worker/spawner.py +7 -1
  173. flowfile_worker/streaming.py +335 -0
  174. flowfile/web/static/assets/ContextMenu-49463352.js +0 -9
  175. flowfile/web/static/assets/ContextMenu-dd5f3f25.js +0 -9
  176. flowfile/web/static/assets/ContextMenu-f709b884.js +0 -9
  177. flowfile/web/static/assets/Join-28b5e18f.css +0 -109
  178. flowfile/web/static/assets/PopOver-862d7e28.js +0 -939
  179. flowfile/web/static/assets/Read-225cc63f.js +0 -222
  180. flowfile/web/static/assets/VueGraphicWalker-430f0b86.css +0 -6
  181. flowfile/web/static/assets/database_reader-ce1e55f3.svg +0 -24
  182. flowfile/web/static/assets/database_writer-b4ad0753.svg +0 -23
  183. flowfile/web/static/assets/element-icons-9c88a535.woff +0 -0
  184. flowfile/web/static/assets/element-icons-de5eb258.ttf +0 -0
  185. flowfile/web/static/assets/genericNodeSettings-14eac1c3.js +0 -137
  186. flowfile/web/static/assets/genericNodeSettings-3b2507ea.css +0 -46
  187. flowfile/web/static/assets/index-387a6f18.js +0 -60752
  188. flowfile/web/static/assets/index-6b367bb5.js +0 -38
  189. flowfile/web/static/assets/index-e96ab018.css +0 -10466
  190. flowfile/web/static/assets/nodeInput-ed2ae8d7.js +0 -2
  191. flowfile/web/static/assets/outputCsv-b9a072af.css +0 -2499
  192. flowfile-0.5.4.dist-info/RECORD +0 -407
  193. /flowfile/web/static/assets/{AdminView-f53bad23.css → AdminView-B2Dthl3u.css} +0 -0
  194. /flowfile/web/static/assets/{CloudConnectionView-cf85f943.css → CloudConnectionView-BdFYGWV7.css} +0 -0
  195. /flowfile/web/static/assets/{ColumnActionInput-c44b7aee.css → ColumnActionInput-dCasSIC9.css} +0 -0
  196. /flowfile/web/static/assets/{ColumnSelector-371637fb.css → ColumnSelector-j6sEOjo1.css} +0 -0
  197. /flowfile/web/static/assets/{CustomNode-edb9b939.css → CustomNode-VPlajG0j.css} +0 -0
  198. /flowfile/web/static/assets/{DatabaseConnectionSettings-c20a1e16.css → DatabaseConnectionSettings-B78hXYgu.css} +0 -0
  199. /flowfile/web/static/assets/{DatabaseView-6655afd6.css → DatabaseView-B-_adk1s.css} +0 -0
  200. /flowfile/web/static/assets/{DocumentationView-9ea6e871.css → DocumentationView-CL7iipFL.css} +0 -0
  201. /flowfile/web/static/assets/{ExploreData-10c5acc8.css → ExploreData-DHjv0Plr.css} +0 -0
  202. /flowfile/web/static/assets/{LoginView-d325d632.css → LoginView-DN1BXY3e.css} +0 -0
  203. /flowfile/web/static/assets/{PivotValidation-0e905b1a.css → PivotValidation-DK-FARWe.css} +0 -0
  204. /flowfile/web/static/assets/{PivotValidation-41b57ad6.css → PivotValidation-FUa9F47u.css} +0 -0
  205. /flowfile/web/static/assets/{PolarsCode-2b1f1f23.css → PolarsCode-G-gRSrSc.css} +0 -0
  206. /flowfile/web/static/assets/{SQLQueryComponent-edb90b98.css → SQLQueryComponent-oAbWw0r-.css} +0 -0
  207. /flowfile/web/static/assets/{SecretSelector-6329f743.css → SecretSelector-CJSadIZx.css} +0 -0
  208. /flowfile/web/static/assets/{SecretsView-aa291340.css → SecretsView-DbzIRAba.css} +0 -0
  209. /flowfile/web/static/assets/{SettingsSection-8f980839.css → SettingsSection-BGcJnH6q.css} +0 -0
  210. /flowfile/web/static/assets/{SettingsSection-07fbbc39.css → SettingsSection-DDWn_EGW.css} +0 -0
  211. /flowfile/web/static/assets/{SliderInput-f2e4f23c.css → SliderInput-BRk-q_Dk.css} +0 -0
  212. /flowfile/web/static/assets/{UnavailableFields-394a1f78.css → UnavailableFields-DRKDImKe.css} +0 -0
  213. /flowfile/web/static/assets/{Unique-2b705521.css → Unique-Absb0aON.css} +0 -0
  214. /flowfile/web/static/assets/{UnpivotValidation-d5ca3b7b.css → UnpivotValidation-DSBkFgS-.css} +0 -0
  215. /flowfile/web/static/assets/{airbyte-292aa232.png → airbyte-W0xvIXwZ.png} +0 -0
  216. /flowfile/web/static/assets/{cloud_storage_reader-aa1415d6.png → cloud_storage_reader-3GpSCk90.png} +0 -0
  217. /flowfile/web/static/assets/{cross_join-d30c0290.png → cross_join-B0qpgYoV.png} +0 -0
  218. /flowfile/web/static/assets/{dropDown-1d6acbd9.css → dropDown-CE0VF5_P.css} +0 -0
  219. /flowfile/web/static/assets/{explore_data-8a0a2861.png → explore_data-tX6olPPL.png} +0 -0
  220. /flowfile/web/static/assets/{fa-brands-400-808443ae.ttf → fa-brands-400-D1LuMI3I.ttf} +0 -0
  221. /flowfile/web/static/assets/{fa-brands-400-d7236a19.woff2 → fa-brands-400-D_cYUPeE.woff2} +0 -0
  222. /flowfile/web/static/assets/{fa-regular-400-e3456d12.woff2 → fa-regular-400-BjRzuEpd.woff2} +0 -0
  223. /flowfile/web/static/assets/{fa-regular-400-54cf6086.ttf → fa-regular-400-DZaxPHgR.ttf} +0 -0
  224. /flowfile/web/static/assets/{fa-solid-900-aa759986.woff2 → fa-solid-900-CTAAxXor.woff2} +0 -0
  225. /flowfile/web/static/assets/{fa-solid-900-d2f05935.ttf → fa-solid-900-D0aA9rwL.ttf} +0 -0
  226. /flowfile/web/static/assets/{fa-v4compatibility-0ce9033c.woff2 → fa-v4compatibility-C9RhG_FT.woff2} +0 -0
  227. /flowfile/web/static/assets/{fa-v4compatibility-30f6abf6.ttf → fa-v4compatibility-CCth-dXg.ttf} +0 -0
  228. /flowfile/web/static/assets/{filter-d7708bda.png → filter-WRdZyUOw.png} +0 -0
  229. /flowfile/web/static/assets/{formula-eeeb1611.png → formula-CgM7uHVI.png} +0 -0
  230. /flowfile/web/static/assets/{fullEditor-fe9f7e18.css → fullEditor-CmDI7T9F.css} +0 -0
  231. /flowfile/web/static/assets/{fuzzy_match-40c161b2.png → fuzzy_match-Yon3k5Tc.png} +0 -0
  232. /flowfile/web/static/assets/{graph_solver-8b7888b8.png → graph_solver-BlMrBttD.png} +0 -0
  233. /flowfile/web/static/assets/{group_by-80561fc3.png → group_by-Gici0CSS.png} +0 -0
  234. /flowfile/web/static/assets/{input_data-ab2eb678.png → input_data-BRdGecLc.png} +0 -0
  235. /flowfile/web/static/assets/{join-349043ae.png → join-BITWRu73.png} +0 -0
  236. /flowfile/web/static/assets/{manual_input-ae98f31d.png → manual_input-CFvo_EUS.png} +0 -0
  237. /flowfile/web/static/assets/{old_join-5d0eb604.png → old_join-B9bkpPqv.png} +0 -0
  238. /flowfile/web/static/assets/{output-06ec0371.png → output-Dp7-ZpC4.png} +0 -0
  239. /flowfile/web/static/assets/{outputExcel-f5d272b2.css → outputExcel-CKgRe2iT.css} +0 -0
  240. /flowfile/web/static/assets/{outputParquet-54597c3c.css → outputParquet-d7j407cK.css} +0 -0
  241. /flowfile/web/static/assets/{pivot-9660df51.png → pivot-DSxKhNlD.png} +0 -0
  242. /flowfile/web/static/assets/{polars_code-05ce5dc6.png → polars_code-DxiztZ1c.png} +0 -0
  243. /flowfile/web/static/assets/{readCsv-3bfac4c3.css → readCsv-BG-1Jilp.css} +0 -0
  244. /flowfile/web/static/assets/{readExcel-3db6b763.css → readExcel-DBQXKPtC.css} +0 -0
  245. /flowfile/web/static/assets/{record_count-dab44eb5.png → record_count-DCeaLtpS.png} +0 -0
  246. /flowfile/web/static/assets/{record_id-0b15856b.png → record_id-FeUjyIFh.png} +0 -0
  247. /flowfile/web/static/assets/{sample-693a88b5.png → sample-DeqfRiB-.png} +0 -0
  248. /flowfile/web/static/assets/{select-b0d0437a.png → select-D4JjbdjS.png} +0 -0
  249. /flowfile/web/static/assets/{selectDynamic-f2fb394f.css → selectDynamic-CjeTPUUo.css} +0 -0
  250. /flowfile/web/static/assets/{sort-2aa579f0.png → sort-DGwUG9WS.png} +0 -0
  251. /flowfile/web/static/assets/{summarize-2a099231.png → summarize-DFaNHpfp.png} +0 -0
  252. /flowfile/web/static/assets/{text_to_rows-859b29ea.png → text_to_rows-BdiAewrN.png} +0 -0
  253. /flowfile/web/static/assets/{union-2d8609f4.png → union-DCK-LSMq.png} +0 -0
  254. /flowfile/web/static/assets/{unique-1958b98a.png → unique-CdP3zZIq.png} +0 -0
  255. /flowfile/web/static/assets/{unpivot-d3cb4b5b.png → unpivot-CHttrEt8.png} +0 -0
  256. /flowfile/web/static/assets/{user-defined-icon-0ae16c90.png → user-defined-icon-BcIp2Vzo.png} +0 -0
  257. /flowfile/web/static/assets/{view-7a0f0be1.png → view-DUSRwjvq.png} +0 -0
  258. {flowfile-0.5.4.dist-info → flowfile-0.6.1.dist-info}/entry_points.txt +0 -0
  259. {flowfile-0.5.4.dist-info → flowfile-0.6.1.dist-info}/licenses/LICENSE +0 -0
@@ -1,41 +1,41 @@
1
1
 
2
- .cloud-storage-container[data-v-6e26efc5] {
2
+ .cloud-storage-container[data-v-dd49ef6c] {
3
3
  font-family: var(--font-family-base);
4
4
  max-width: 100%;
5
5
  color: var(--color-text-primary);
6
6
  }
7
- .section-subtitle[data-v-6e26efc5] {
7
+ .section-subtitle[data-v-dd49ef6c] {
8
8
  margin: 0 0 0.75rem 0;
9
9
  font-size: 0.95rem;
10
10
  font-weight: 600;
11
11
  color: #4a5568;
12
12
  }
13
- .subsection-title[data-v-6e26efc5] {
13
+ .subsection-title[data-v-dd49ef6c] {
14
14
  margin: 0.5rem 0 0.5rem 0;
15
15
  font-size: 0.875rem;
16
16
  font-weight: 600;
17
17
  color: #718096;
18
18
  }
19
- .format-options[data-v-6e26efc5] {
19
+ .format-options[data-v-dd49ef6c] {
20
20
  margin-top: 1rem;
21
21
  padding: 1rem;
22
22
  background-color: #f7fafc;
23
23
  border-radius: 4px;
24
24
  border: 1px solid #e2e8f0;
25
25
  }
26
- .form-row[data-v-6e26efc5] {
26
+ .form-row[data-v-dd49ef6c] {
27
27
  display: flex;
28
28
  gap: 0.75rem;
29
29
  margin-bottom: 0.75rem;
30
30
  width: 100%;
31
31
  box-sizing: border-box;
32
32
  }
33
- .half[data-v-6e26efc5] {
33
+ .half[data-v-dd49ef6c] {
34
34
  flex: 1;
35
35
  min-width: 0;
36
36
  max-width: calc(50% - 0.375rem);
37
37
  }
38
- .form-control[data-v-6e26efc5] {
38
+ .form-control[data-v-dd49ef6c] {
39
39
  width: 100%;
40
40
  padding: 0.5rem;
41
41
  border: 1px solid #e2e8f0;
@@ -43,18 +43,18 @@
43
43
  font-size: 0.875rem;
44
44
  box-sizing: border-box;
45
45
  }
46
- .form-group[data-v-6e26efc5] {
46
+ .form-group[data-v-dd49ef6c] {
47
47
  margin-bottom: 0.75rem;
48
48
  width: 100%;
49
49
  }
50
- label[data-v-6e26efc5] {
50
+ label[data-v-dd49ef6c] {
51
51
  display: block;
52
52
  margin-bottom: 0.25rem;
53
53
  font-size: 0.875rem;
54
54
  font-weight: 500;
55
55
  color: #4a5568;
56
56
  }
57
- select.form-control[data-v-6e26efc5] {
57
+ select.form-control[data-v-dd49ef6c] {
58
58
  appearance: none;
59
59
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%234a5568' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
60
60
  background-repeat: no-repeat;
@@ -62,21 +62,21 @@ select.form-control[data-v-6e26efc5] {
62
62
  background-size: 1em;
63
63
  padding-right: 2rem;
64
64
  }
65
- .checkbox-container[data-v-6e26efc5] {
65
+ .checkbox-container[data-v-dd49ef6c] {
66
66
  display: flex;
67
67
  align-items: center;
68
68
  gap: 0.5rem;
69
69
  }
70
- .checkbox-input[data-v-6e26efc5] {
70
+ .checkbox-input[data-v-dd49ef6c] {
71
71
  width: 1rem;
72
72
  height: 1rem;
73
73
  cursor: pointer;
74
74
  }
75
- .checkbox-label[data-v-6e26efc5] {
75
+ .checkbox-label[data-v-dd49ef6c] {
76
76
  margin: 0;
77
77
  cursor: pointer;
78
78
  }
79
- .info-box[data-v-6e26efc5] {
79
+ .info-box[data-v-dd49ef6c] {
80
80
  display: flex;
81
81
  gap: 0.75rem;
82
82
  padding: 0.75rem;
@@ -86,16 +86,16 @@ select.form-control[data-v-6e26efc5] {
86
86
  margin-top: 1rem;
87
87
  font-size: 0.875rem;
88
88
  }
89
- .info-box i[data-v-6e26efc5] {
89
+ .info-box i[data-v-dd49ef6c] {
90
90
  color: #1890ff;
91
91
  font-size: 1.25rem;
92
92
  flex-shrink: 0;
93
93
  }
94
- .info-box p[data-v-6e26efc5] {
94
+ .info-box p[data-v-dd49ef6c] {
95
95
  margin: 0;
96
96
  color: #4a5568;
97
97
  }
98
- .helper-text[data-v-6e26efc5] {
98
+ .helper-text[data-v-dd49ef6c] {
99
99
  display: flex;
100
100
  align-items: center;
101
101
  gap: 0.5rem;
@@ -103,41 +103,41 @@ select.form-control[data-v-6e26efc5] {
103
103
  font-size: 0.8125rem;
104
104
  color: #718096;
105
105
  }
106
- .helper-text i[data-v-6e26efc5] {
106
+ .helper-text i[data-v-dd49ef6c] {
107
107
  color: #4299e1;
108
108
  font-size: 0.875rem;
109
109
  }
110
- .loading-state[data-v-6e26efc5] {
110
+ .loading-state[data-v-dd49ef6c] {
111
111
  display: flex;
112
112
  flex-direction: column;
113
113
  align-items: center;
114
114
  gap: 0.5rem;
115
115
  padding: 1rem;
116
116
  }
117
- .loading-state p[data-v-6e26efc5] {
117
+ .loading-state p[data-v-dd49ef6c] {
118
118
  margin: 0;
119
119
  color: #718096;
120
120
  font-size: 0.875rem;
121
121
  }
122
- .loading-spinner[data-v-6e26efc5] {
122
+ .loading-spinner[data-v-dd49ef6c] {
123
123
  width: 2rem;
124
124
  height: 2rem;
125
125
  border: 2px solid #e2e8f0;
126
126
  border-top-color: #4299e1;
127
127
  border-radius: 50%;
128
- animation: spin-6e26efc5 0.8s linear infinite;
128
+ animation: spin-dd49ef6c 0.8s linear infinite;
129
129
  }
130
- @keyframes spin-6e26efc5 {
130
+ @keyframes spin-dd49ef6c {
131
131
  to {
132
132
  transform: rotate(360deg);
133
133
  }
134
134
  }
135
135
  @media (max-width: 640px) {
136
- .form-row[data-v-6e26efc5] {
136
+ .form-row[data-v-dd49ef6c] {
137
137
  flex-direction: column;
138
138
  gap: 0.5rem;
139
139
  }
140
- .half[data-v-6e26efc5] {
140
+ .half[data-v-dd49ef6c] {
141
141
  max-width: 100%;
142
142
  }
143
143
  }
@@ -1,11 +1,8 @@
1
- import { d as defineComponent, r as ref, o as openBlock, c as createElementBlock, p as createVNode, q as withCtx, a as createBaseVNode, i as withDirectives, ao as vModelSelect, G as Fragment, H as renderList, t as toDisplayString, f as createTextVNode, e as createCommentVNode, v as vModelText, ap as vModelCheckbox, y as createBlock, x as unref, J as ElMessage, g as _export_sfc } from "./index-387a6f18.js";
2
- import { C as CodeLoader } from "./vue-content-loader.es-4469c8ff.js";
3
- import { u as useNodeStore } from "./PopOver-862d7e28.js";
4
- import { f as fetchCloudStorageConnectionsInterfaces } from "./api-f75042b0.js";
5
- import { G as GenericNodeSettings } from "./genericNodeSettings-14eac1c3.js";
6
- import "./DesignerView-f64749fb.js";
7
- import "./index-f0a6e5a5.js";
8
- import "./vue-codemirror.esm-31ba0e0b.js";
1
+ import { d as defineComponent, l as useNodeStore, c as createElementBlock, z as createVNode, B as withCtx, a as createBaseVNode, h as withDirectives, ax as vModelSelect, K as Fragment, L as renderList, t as toDisplayString, f as createTextVNode, e as createCommentVNode, v as vModelText, ay as vModelCheckbox, A as unref, C as createBlock, r as ref, N as ElMessage, o as openBlock, g as _export_sfc } from "./index-bcuE0Z0p.js";
2
+ import { C as CodeLoader } from "./vue-content-loader.es-CMoRXo7N.js";
3
+ import { u as useNodeSettings } from "./useNodeSettings-dMS9zmh_.js";
4
+ import { f as fetchCloudStorageConnectionsInterfaces } from "./api-DaC83EO_.js";
5
+ import { G as GenericNodeSettings } from "./genericNodeSettings-BBtW_Cpz.js";
9
6
  const createNodeCloudStorageReader = (flowId, nodeId) => {
10
7
  const cloudStorageReadSettings = {
11
8
  auth_mode: "aws-cli",
@@ -77,6 +74,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
77
74
  const nodeStore = useNodeStore();
78
75
  const dataLoaded = ref(false);
79
76
  const nodeCloudStorageReader = ref(null);
77
+ const { saveSettings, pushNodeData, handleGenericSettingsUpdate } = useNodeSettings({
78
+ nodeRef: nodeCloudStorageReader
79
+ });
80
80
  const connectionInterfaces = ref([]);
81
81
  const connectionsAreLoading = ref(false);
82
82
  const selectedConnection = ref(null);
@@ -178,15 +178,6 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
178
178
  dataLoaded.value = false;
179
179
  }
180
180
  };
181
- const pushNodeData = async () => {
182
- if (!nodeCloudStorageReader.value || !nodeCloudStorageReader.value.cloud_storage_settings) {
183
- console.log("Returning without pushing");
184
- return;
185
- }
186
- nodeCloudStorageReader.value.is_setup = true;
187
- nodeStore.updateSettings(nodeCloudStorageReader);
188
- dataLoaded.value = false;
189
- };
190
181
  const fetchConnections = async () => {
191
182
  connectionsAreLoading.value = true;
192
183
  try {
@@ -200,22 +191,27 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
200
191
  };
201
192
  __expose({
202
193
  loadNodeData,
203
- pushNodeData
194
+ pushNodeData,
195
+ saveSettings
204
196
  });
205
197
  return (_ctx, _cache) => {
206
198
  return dataLoaded.value && nodeCloudStorageReader.value ? (openBlock(), createElementBlock("div", _hoisted_1, [
207
199
  createVNode(GenericNodeSettings, {
208
200
  modelValue: nodeCloudStorageReader.value,
209
- "onUpdate:modelValue": _cache[8] || (_cache[8] = ($event) => nodeCloudStorageReader.value = $event)
201
+ "onUpdate:modelValue": [
202
+ _cache[8] || (_cache[8] = ($event) => nodeCloudStorageReader.value = $event),
203
+ unref(handleGenericSettingsUpdate)
204
+ ],
205
+ onRequestSave: unref(saveSettings)
210
206
  }, {
211
207
  default: withCtx(() => [
212
208
  createBaseVNode("div", _hoisted_2, [
213
209
  createBaseVNode("div", _hoisted_3, [
214
210
  _cache[12] || (_cache[12] = createBaseVNode("label", { for: "connection-select" }, "Cloud Storage Connection", -1)),
215
- connectionsAreLoading.value ? (openBlock(), createElementBlock("div", _hoisted_4, _cache[9] || (_cache[9] = [
211
+ connectionsAreLoading.value ? (openBlock(), createElementBlock("div", _hoisted_4, [..._cache[9] || (_cache[9] = [
216
212
  createBaseVNode("div", { class: "loading-spinner" }, null, -1),
217
213
  createBaseVNode("p", null, "Loading connections...", -1)
218
- ]))) : (openBlock(), createElementBlock("div", _hoisted_5, [
214
+ ])])) : (openBlock(), createElementBlock("div", _hoisted_5, [
219
215
  withDirectives(createBaseVNode("select", {
220
216
  id: "connection-select",
221
217
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => selectedConnection.value = $event),
@@ -232,10 +228,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
232
228
  ], 544), [
233
229
  [vModelSelect, selectedConnection.value]
234
230
  ]),
235
- !nodeCloudStorageReader.value.cloud_storage_settings.connection_name ? (openBlock(), createElementBlock("div", _hoisted_7, _cache[11] || (_cache[11] = [
231
+ !nodeCloudStorageReader.value.cloud_storage_settings.connection_name ? (openBlock(), createElementBlock("div", _hoisted_7, [..._cache[11] || (_cache[11] = [
236
232
  createBaseVNode("i", { class: "fa-solid fa-info-circle" }, null, -1),
237
- createTextVNode(" Will use local AWS CLI credentials or environment variables ")
238
- ]))) : createCommentVNode("", true)
233
+ createTextVNode(" Will use local AWS CLI credentials or environment variables ", -1)
234
+ ])])) : createCommentVNode("", true)
239
235
  ]))
240
236
  ])
241
237
  ]),
@@ -261,12 +257,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
261
257
  "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => nodeCloudStorageReader.value.cloud_storage_settings.file_format = $event),
262
258
  class: "form-control",
263
259
  onChange: handleFileFormatChange
264
- }, _cache[14] || (_cache[14] = [
260
+ }, [..._cache[14] || (_cache[14] = [
265
261
  createBaseVNode("option", { value: "csv" }, "CSV", -1),
266
262
  createBaseVNode("option", { value: "parquet" }, "Parquet", -1),
267
263
  createBaseVNode("option", { value: "json" }, "JSON", -1),
268
264
  createBaseVNode("option", { value: "delta" }, "Delta Lake", -1)
269
- ]), 544), [
265
+ ])], 544), [
270
266
  [vModelSelect, nodeCloudStorageReader.value.cloud_storage_settings.file_format]
271
267
  ])
272
268
  ]),
@@ -276,10 +272,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
276
272
  id: "scan-mode",
277
273
  "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => nodeCloudStorageReader.value.cloud_storage_settings.scan_mode = $event),
278
274
  class: "form-control"
279
- }, _cache[16] || (_cache[16] = [
275
+ }, [..._cache[16] || (_cache[16] = [
280
276
  createBaseVNode("option", { value: "single_file" }, "Single File", -1),
281
277
  createBaseVNode("option", { value: "directory" }, "Directory", -1)
282
- ]), 512), [
278
+ ])], 512), [
283
279
  [vModelSelect, nodeCloudStorageReader.value.cloud_storage_settings.scan_mode]
284
280
  ])
285
281
  ])) : createCommentVNode("", true),
@@ -321,10 +317,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
321
317
  id: "csv-encoding",
322
318
  "onUpdate:modelValue": _cache[6] || (_cache[6] = ($event) => nodeCloudStorageReader.value.cloud_storage_settings.csv_encoding = $event),
323
319
  class: "form-control"
324
- }, _cache[20] || (_cache[20] = [
320
+ }, [..._cache[20] || (_cache[20] = [
325
321
  createBaseVNode("option", { value: "utf8" }, "UTF-8", -1),
326
322
  createBaseVNode("option", { value: "utf8-lossy" }, "UTF-8 Lossy", -1)
327
- ]), 512), [
323
+ ])], 512), [
328
324
  [vModelSelect, nodeCloudStorageReader.value.cloud_storage_settings.csv_encoding]
329
325
  ])
330
326
  ])
@@ -351,22 +347,21 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
351
347
  ])
352
348
  ])
353
349
  ])) : createCommentVNode("", true),
354
- nodeCloudStorageReader.value.cloud_storage_settings.scan_mode === "directory" ? (openBlock(), createElementBlock("div", _hoisted_20, _cache[25] || (_cache[25] = [
350
+ nodeCloudStorageReader.value.cloud_storage_settings.scan_mode === "directory" ? (openBlock(), createElementBlock("div", _hoisted_20, [..._cache[25] || (_cache[25] = [
355
351
  createBaseVNode("i", { class: "fa-solid fa-info-circle" }, null, -1),
356
352
  createBaseVNode("div", null, [
357
353
  createBaseVNode("p", null, " Directory scan will read all files matching the selected format in the specified path. ")
358
354
  ], -1)
359
- ]))) : createCommentVNode("", true)
355
+ ])])) : createCommentVNode("", true)
360
356
  ])
361
357
  ]),
362
358
  _: 1
363
- }, 8, ["modelValue"])
359
+ }, 8, ["modelValue", "onUpdate:modelValue", "onRequestSave"])
364
360
  ])) : (openBlock(), createBlock(unref(CodeLoader), { key: 1 }));
365
361
  };
366
362
  }
367
363
  });
368
- const CloudStorageReader_vue_vue_type_style_index_0_scoped_6e26efc5_lang = "";
369
- const CloudStorageReader = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-6e26efc5"]]);
364
+ const CloudStorageReader = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-dd49ef6c"]]);
370
365
  export {
371
366
  CloudStorageReader as default
372
367
  };
@@ -1,11 +1,8 @@
1
- import { d as defineComponent, r as ref, o as openBlock, c as createElementBlock, p as createVNode, q as withCtx, a as createBaseVNode, i as withDirectives, ao as vModelSelect, G as Fragment, H as renderList, t as toDisplayString, f as createTextVNode, e as createCommentVNode, v as vModelText, y as createBlock, x as unref, J as ElMessage, g as _export_sfc } from "./index-387a6f18.js";
2
- import { C as CodeLoader } from "./vue-content-loader.es-4469c8ff.js";
3
- import { u as useNodeStore } from "./PopOver-862d7e28.js";
4
- import { f as fetchCloudStorageConnectionsInterfaces } from "./api-f75042b0.js";
5
- import { G as GenericNodeSettings } from "./genericNodeSettings-14eac1c3.js";
6
- import "./DesignerView-f64749fb.js";
7
- import "./index-f0a6e5a5.js";
8
- import "./vue-codemirror.esm-31ba0e0b.js";
1
+ import { d as defineComponent, l as useNodeStore, c as createElementBlock, z as createVNode, B as withCtx, a as createBaseVNode, h as withDirectives, ax as vModelSelect, K as Fragment, L as renderList, t as toDisplayString, f as createTextVNode, e as createCommentVNode, v as vModelText, A as unref, C as createBlock, r as ref, N as ElMessage, o as openBlock, g as _export_sfc } from "./index-bcuE0Z0p.js";
2
+ import { C as CodeLoader } from "./vue-content-loader.es-CMoRXo7N.js";
3
+ import { u as useNodeSettings } from "./useNodeSettings-dMS9zmh_.js";
4
+ import { f as fetchCloudStorageConnectionsInterfaces } from "./api-DaC83EO_.js";
5
+ import { G as GenericNodeSettings } from "./genericNodeSettings-BBtW_Cpz.js";
9
6
  const createNodeCloudStorageWriter = (flowId, nodeId) => {
10
7
  const cloudStorageWriteSettings = {
11
8
  auth_mode: "aws-cli",
@@ -82,6 +79,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
82
79
  const nodeStore = useNodeStore();
83
80
  const dataLoaded = ref(false);
84
81
  const nodeCloudStorageWriter = ref(null);
82
+ const { saveSettings, pushNodeData, handleGenericSettingsUpdate } = useNodeSettings({
83
+ nodeRef: nodeCloudStorageWriter
84
+ });
85
85
  const connectionInterfaces = ref([]);
86
86
  const connectionsAreLoading = ref(false);
87
87
  const selectedConnection = ref(null);
@@ -178,15 +178,6 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
178
178
  dataLoaded.value = false;
179
179
  }
180
180
  };
181
- const pushNodeData = async () => {
182
- if (!nodeCloudStorageWriter.value || !nodeCloudStorageWriter.value.cloud_storage_settings) {
183
- return;
184
- }
185
- console.log(nodeCloudStorageWriter);
186
- nodeCloudStorageWriter.value.is_setup = true;
187
- nodeStore.updateSettings(nodeCloudStorageWriter);
188
- dataLoaded.value = false;
189
- };
190
181
  const fetchConnections = async () => {
191
182
  connectionsAreLoading.value = true;
192
183
  try {
@@ -200,22 +191,27 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
200
191
  };
201
192
  __expose({
202
193
  loadNodeData,
203
- pushNodeData
194
+ pushNodeData,
195
+ saveSettings
204
196
  });
205
197
  return (_ctx, _cache) => {
206
198
  return dataLoaded.value && nodeCloudStorageWriter.value ? (openBlock(), createElementBlock("div", _hoisted_1, [
207
199
  createVNode(GenericNodeSettings, {
208
200
  modelValue: nodeCloudStorageWriter.value,
209
- "onUpdate:modelValue": _cache[7] || (_cache[7] = ($event) => nodeCloudStorageWriter.value = $event)
201
+ "onUpdate:modelValue": [
202
+ _cache[7] || (_cache[7] = ($event) => nodeCloudStorageWriter.value = $event),
203
+ unref(handleGenericSettingsUpdate)
204
+ ],
205
+ onRequestSave: unref(saveSettings)
210
206
  }, {
211
207
  default: withCtx(() => [
212
208
  createBaseVNode("div", _hoisted_2, [
213
209
  createBaseVNode("div", _hoisted_3, [
214
210
  _cache[11] || (_cache[11] = createBaseVNode("label", { for: "connection-select" }, "Cloud Storage Connection", -1)),
215
- connectionsAreLoading.value ? (openBlock(), createElementBlock("div", _hoisted_4, _cache[8] || (_cache[8] = [
211
+ connectionsAreLoading.value ? (openBlock(), createElementBlock("div", _hoisted_4, [..._cache[8] || (_cache[8] = [
216
212
  createBaseVNode("div", { class: "loading-spinner" }, null, -1),
217
213
  createBaseVNode("p", null, "Loading connections...", -1)
218
- ]))) : (openBlock(), createElementBlock("div", _hoisted_5, [
214
+ ])])) : (openBlock(), createElementBlock("div", _hoisted_5, [
219
215
  withDirectives(createBaseVNode("select", {
220
216
  id: "connection-select",
221
217
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => selectedConnection.value = $event),
@@ -232,10 +228,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
232
228
  ], 544), [
233
229
  [vModelSelect, selectedConnection.value]
234
230
  ]),
235
- !nodeCloudStorageWriter.value.cloud_storage_settings.connection_name ? (openBlock(), createElementBlock("div", _hoisted_7, _cache[10] || (_cache[10] = [
231
+ !nodeCloudStorageWriter.value.cloud_storage_settings.connection_name ? (openBlock(), createElementBlock("div", _hoisted_7, [..._cache[10] || (_cache[10] = [
236
232
  createBaseVNode("i", { class: "fa-solid fa-info-circle" }, null, -1),
237
- createTextVNode(" Will use local AWS CLI credentials or environment variables ")
238
- ]))) : createCommentVNode("", true)
233
+ createTextVNode(" Will use local AWS CLI credentials or environment variables ", -1)
234
+ ])])) : createCommentVNode("", true)
239
235
  ]))
240
236
  ])
241
237
  ]),
@@ -260,12 +256,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
260
256
  "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => nodeCloudStorageWriter.value.cloud_storage_settings.file_format = $event),
261
257
  class: "form-control",
262
258
  onChange: handleFileFormatChange
263
- }, _cache[13] || (_cache[13] = [
259
+ }, [..._cache[13] || (_cache[13] = [
264
260
  createBaseVNode("option", { value: "parquet" }, "Parquet", -1),
265
261
  createBaseVNode("option", { value: "csv" }, "CSV", -1),
266
262
  createBaseVNode("option", { value: "json" }, "JSON", -1),
267
263
  createBaseVNode("option", { value: "delta" }, "Delta Lake", -1)
268
- ]), 544), [
264
+ ])], 544), [
269
265
  [vModelSelect, nodeCloudStorageWriter.value.cloud_storage_settings.file_format]
270
266
  ])
271
267
  ]),
@@ -304,10 +300,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
304
300
  id: "csv-encoding",
305
301
  "onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => nodeCloudStorageWriter.value.cloud_storage_settings.csv_encoding = $event),
306
302
  class: "form-control"
307
- }, _cache[18] || (_cache[18] = [
303
+ }, [..._cache[18] || (_cache[18] = [
308
304
  createBaseVNode("option", { value: "utf8" }, "UTF-8", -1),
309
305
  createBaseVNode("option", { value: "utf8-lossy" }, "UTF-8 Lossy", -1)
310
- ]), 512), [
306
+ ])], 512), [
311
307
  [vModelSelect, nodeCloudStorageWriter.value.cloud_storage_settings.csv_encoding]
312
308
  ])
313
309
  ])
@@ -321,18 +317,18 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
321
317
  id: "parquet-compression",
322
318
  "onUpdate:modelValue": _cache[6] || (_cache[6] = ($event) => nodeCloudStorageWriter.value.cloud_storage_settings.parquet_compression = $event),
323
319
  class: "form-control"
324
- }, _cache[21] || (_cache[21] = [
320
+ }, [..._cache[21] || (_cache[21] = [
325
321
  createBaseVNode("option", { value: "snappy" }, "Snappy", -1),
326
322
  createBaseVNode("option", { value: "gzip" }, "Gzip", -1),
327
323
  createBaseVNode("option", { value: "brotli" }, "Brotli", -1),
328
324
  createBaseVNode("option", { value: "lz4" }, "LZ4", -1),
329
325
  createBaseVNode("option", { value: "zstd" }, "Zstd", -1)
330
- ]), 512), [
326
+ ])], 512), [
331
327
  [vModelSelect, nodeCloudStorageWriter.value.cloud_storage_settings.parquet_compression]
332
328
  ])
333
329
  ])
334
330
  ])) : createCommentVNode("", true),
335
- nodeCloudStorageWriter.value.cloud_storage_settings.write_mode === "overwrite" ? (openBlock(), createElementBlock("div", _hoisted_19, _cache[24] || (_cache[24] = [
331
+ nodeCloudStorageWriter.value.cloud_storage_settings.write_mode === "overwrite" ? (openBlock(), createElementBlock("div", _hoisted_19, [..._cache[24] || (_cache[24] = [
336
332
  createBaseVNode("i", { class: "fa-solid fa-triangle-exclamation" }, null, -1),
337
333
  createBaseVNode("div", null, [
338
334
  createBaseVNode("p", null, [
@@ -340,8 +336,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
340
336
  createTextVNode(" If a file or data at the target path exists, it will be replaced. ")
341
337
  ])
342
338
  ], -1)
343
- ]))) : createCommentVNode("", true),
344
- nodeCloudStorageWriter.value.cloud_storage_settings.write_mode === "append" ? (openBlock(), createElementBlock("div", _hoisted_20, _cache[25] || (_cache[25] = [
339
+ ])])) : createCommentVNode("", true),
340
+ nodeCloudStorageWriter.value.cloud_storage_settings.write_mode === "append" ? (openBlock(), createElementBlock("div", _hoisted_20, [..._cache[25] || (_cache[25] = [
345
341
  createBaseVNode("i", { class: "fa-solid fa-info-circle" }, null, -1),
346
342
  createBaseVNode("div", null, [
347
343
  createBaseVNode("p", null, [
@@ -349,17 +345,16 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
349
345
  createTextVNode(" New data will be added. The schema of the new data must match the existing data. ")
350
346
  ])
351
347
  ], -1)
352
- ]))) : createCommentVNode("", true)
348
+ ])])) : createCommentVNode("", true)
353
349
  ])
354
350
  ]),
355
351
  _: 1
356
- }, 8, ["modelValue"])
352
+ }, 8, ["modelValue", "onUpdate:modelValue", "onRequestSave"])
357
353
  ])) : (openBlock(), createBlock(unref(CodeLoader), { key: 1 }));
358
354
  };
359
355
  }
360
356
  });
361
- const CloudStorageWriter_vue_vue_type_style_index_0_scoped_372ff5dd_lang = "";
362
- const CloudStorageWriter = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-372ff5dd"]]);
357
+ const CloudStorageWriter = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-2a517b2c"]]);
363
358
  export {
364
359
  CloudStorageWriter as default
365
360
  };
@@ -1,42 +1,42 @@
1
1
 
2
2
  /* Copied styles from the reader component for consistency */
3
- .cloud-storage-container[data-v-372ff5dd] {
3
+ .cloud-storage-container[data-v-2a517b2c] {
4
4
  font-family: var(--font-family-base);
5
5
  max-width: 100%;
6
6
  color: var(--color-text-primary);
7
7
  }
8
- .section-subtitle[data-v-372ff5dd] {
8
+ .section-subtitle[data-v-2a517b2c] {
9
9
  margin: 0 0 0.75rem 0;
10
10
  font-size: 0.95rem;
11
11
  font-weight: 600;
12
12
  color: #4a5568;
13
13
  }
14
- .subsection-title[data-v-372ff5dd] {
14
+ .subsection-title[data-v-2a517b2c] {
15
15
  margin: 0.5rem 0 0.5rem 0;
16
16
  font-size: 0.875rem;
17
17
  font-weight: 600;
18
18
  color: #718096;
19
19
  }
20
- .format-options[data-v-372ff5dd] {
20
+ .format-options[data-v-2a517b2c] {
21
21
  margin-top: 1rem;
22
22
  padding: 1rem;
23
23
  background-color: #f7fafc;
24
24
  border-radius: 4px;
25
25
  border: 1px solid #e2e8f0;
26
26
  }
27
- .form-row[data-v-372ff5dd] {
27
+ .form-row[data-v-2a517b2c] {
28
28
  display: flex;
29
29
  gap: 0.75rem;
30
30
  margin-bottom: 0.75rem;
31
31
  width: 100%;
32
32
  box-sizing: border-box;
33
33
  }
34
- .half[data-v-372ff5dd] {
34
+ .half[data-v-2a517b2c] {
35
35
  flex: 1;
36
36
  min-width: 0;
37
37
  max-width: calc(50% - 0.375rem);
38
38
  }
39
- .form-control[data-v-372ff5dd] {
39
+ .form-control[data-v-2a517b2c] {
40
40
  width: 100%;
41
41
  padding: 0.5rem;
42
42
  border: 1px solid #e2e8f0;
@@ -44,18 +44,18 @@
44
44
  font-size: 0.875rem;
45
45
  box-sizing: border-box;
46
46
  }
47
- .form-group[data-v-372ff5dd] {
47
+ .form-group[data-v-2a517b2c] {
48
48
  margin-bottom: 0.75rem;
49
49
  width: 100%;
50
50
  }
51
- label[data-v-372ff5dd] {
51
+ label[data-v-2a517b2c] {
52
52
  display: block;
53
53
  margin-bottom: 0.25rem;
54
54
  font-size: 0.875rem;
55
55
  font-weight: 500;
56
56
  color: #4a5568;
57
57
  }
58
- select.form-control[data-v-372ff5dd] {
58
+ select.form-control[data-v-2a517b2c] {
59
59
  appearance: none;
60
60
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%234a5568' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
61
61
  background-repeat: no-repeat;
@@ -63,7 +63,7 @@ select.form-control[data-v-372ff5dd] {
63
63
  background-size: 1em;
64
64
  padding-right: 2rem;
65
65
  }
66
- .info-box[data-v-372ff5dd] {
66
+ .info-box[data-v-2a517b2c] {
67
67
  display: flex;
68
68
  gap: 0.75rem;
69
69
  padding: 0.75rem;
@@ -73,24 +73,24 @@ select.form-control[data-v-372ff5dd] {
73
73
  margin-top: 1rem;
74
74
  font-size: 0.875rem;
75
75
  }
76
- .info-box.info-warn[data-v-372ff5dd] {
76
+ .info-box.info-warn[data-v-2a517b2c] {
77
77
  background-color: #fffbe6;
78
78
  border-left-color: #faad14;
79
79
  }
80
- .info-box.info-warn i[data-v-372ff5dd] {
80
+ .info-box.info-warn i[data-v-2a517b2c] {
81
81
  color: #faad14;
82
82
  }
83
- .info-box i[data-v-372ff5dd] {
83
+ .info-box i[data-v-2a517b2c] {
84
84
  color: #1890ff;
85
85
  font-size: 1.25rem;
86
86
  flex-shrink: 0;
87
87
  padding-top: 2px;
88
88
  }
89
- .info-box p[data-v-372ff5dd] {
89
+ .info-box p[data-v-2a517b2c] {
90
90
  margin: 0;
91
91
  color: #4a5568;
92
92
  }
93
- .helper-text[data-v-372ff5dd] {
93
+ .helper-text[data-v-2a517b2c] {
94
94
  display: flex;
95
95
  align-items: center;
96
96
  gap: 0.5rem;
@@ -98,41 +98,41 @@ select.form-control[data-v-372ff5dd] {
98
98
  font-size: 0.8125rem;
99
99
  color: #718096;
100
100
  }
101
- .helper-text i[data-v-372ff5dd] {
101
+ .helper-text i[data-v-2a517b2c] {
102
102
  color: #4299e1;
103
103
  font-size: 0.875rem;
104
104
  }
105
- .loading-state[data-v-372ff5dd] {
105
+ .loading-state[data-v-2a517b2c] {
106
106
  display: flex;
107
107
  flex-direction: column;
108
108
  align-items: center;
109
109
  gap: 0.5rem;
110
110
  padding: 1rem;
111
111
  }
112
- .loading-state p[data-v-372ff5dd] {
112
+ .loading-state p[data-v-2a517b2c] {
113
113
  margin: 0;
114
114
  color: #718096;
115
115
  font-size: 0.875rem;
116
116
  }
117
- .loading-spinner[data-v-372ff5dd] {
117
+ .loading-spinner[data-v-2a517b2c] {
118
118
  width: 2rem;
119
119
  height: 2rem;
120
120
  border: 2px solid #e2e8f0;
121
121
  border-top-color: #4299e1;
122
122
  border-radius: 50%;
123
- animation: spin-372ff5dd 0.8s linear infinite;
123
+ animation: spin-2a517b2c 0.8s linear infinite;
124
124
  }
125
- @keyframes spin-372ff5dd {
125
+ @keyframes spin-2a517b2c {
126
126
  to {
127
127
  transform: rotate(360deg);
128
128
  }
129
129
  }
130
130
  @media (max-width: 640px) {
131
- .form-row[data-v-372ff5dd] {
131
+ .form-row[data-v-2a517b2c] {
132
132
  flex-direction: column;
133
133
  gap: 0.5rem;
134
134
  }
135
- .half[data-v-372ff5dd] {
135
+ .half[data-v-2a517b2c] {
136
136
  max-width: 100%;
137
137
  }
138
138
  }