Flowfile 0.3.9__py3-none-any.whl → 0.4.0__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.

Potentially problematic release.


This version of Flowfile might be problematic. Click here for more details.

Files changed (169) hide show
  1. flowfile/__init__.py +6 -1
  2. flowfile/api.py +0 -1
  3. flowfile/web/static/assets/{CloudConnectionManager-c97c25f8.js → CloudConnectionManager-109ecc3c.js} +2 -2
  4. flowfile/web/static/assets/{CloudStorageReader-f1ff509e.js → CloudStorageReader-19cdd67a.js} +11 -78
  5. flowfile/web/static/assets/{CloudStorageWriter-034f8b78.js → CloudStorageWriter-48e0ae20.js} +12 -79
  6. flowfile/web/static/assets/{CloudStorageWriter-49c9a4b2.css → CloudStorageWriter-b0ee067f.css} +24 -24
  7. flowfile/web/static/assets/ColumnSelector-47996a16.css +10 -0
  8. flowfile/web/static/assets/ColumnSelector-ecaf7c44.js +83 -0
  9. flowfile/web/static/assets/ContextMenu-2b348c4c.js +41 -0
  10. flowfile/web/static/assets/{SettingsSection-9c836ecc.css → ContextMenu-4c74eef1.css} +0 -21
  11. flowfile/web/static/assets/ContextMenu-63cfa99b.css +26 -0
  12. flowfile/web/static/assets/ContextMenu-a779eed7.js +41 -0
  13. flowfile/web/static/assets/ContextMenu-c13f91d0.css +26 -0
  14. flowfile/web/static/assets/ContextMenu-eca26a03.js +41 -0
  15. flowfile/web/static/assets/{CrossJoin-41efa4cb.css → CrossJoin-1119d18e.css} +18 -18
  16. flowfile/web/static/assets/{CrossJoin-9e156ebe.js → CrossJoin-a88f8142.js} +14 -84
  17. flowfile/web/static/assets/CustomNode-74a37f74.css +32 -0
  18. flowfile/web/static/assets/CustomNode-cb863dff.js +211 -0
  19. flowfile/web/static/assets/{DatabaseConnectionSettings-d5c625b3.js → DatabaseConnectionSettings-819d3267.js} +3 -3
  20. flowfile/web/static/assets/{DatabaseManager-265adc5e.js → DatabaseManager-84ee2834.js} +2 -2
  21. flowfile/web/static/assets/{DatabaseReader-0b10551e.js → DatabaseReader-060dd412.js} +14 -114
  22. flowfile/web/static/assets/{DatabaseReader-f50c6558.css → DatabaseReader-ae61773c.css} +0 -27
  23. flowfile/web/static/assets/{DatabaseWriter-c17c6916.js → DatabaseWriter-7fc7750f.js} +13 -74
  24. flowfile/web/static/assets/{ExploreData-5bdae813.css → ExploreData-2d0cf4db.css} +8 -14
  25. flowfile/web/static/assets/ExploreData-82c95991.js +192 -0
  26. flowfile/web/static/assets/{ExternalSource-3a66556c.js → ExternalSource-e1a6ddc7.js} +8 -79
  27. flowfile/web/static/assets/{Filter-91ad87e7.js → Filter-8aca894a.js} +12 -85
  28. flowfile/web/static/assets/{Filter-a9d08ba1.css → Filter-f62091b3.css} +3 -3
  29. flowfile/web/static/assets/{Formula-29f19d21.css → Formula-bb96803d.css} +4 -4
  30. flowfile/web/static/assets/{Formula-3c395ab1.js → Formula-e33686d9.js} +18 -85
  31. flowfile/web/static/assets/{FuzzyMatch-6857de82.css → FuzzyMatch-1010f966.css} +42 -42
  32. flowfile/web/static/assets/{FuzzyMatch-2df0d230.js → FuzzyMatch-abda150d.js} +16 -87
  33. flowfile/web/static/assets/{GraphSolver-d285877f.js → GraphSolver-4ecad1d7.js} +13 -159
  34. flowfile/web/static/assets/GraphSolver-f0cb7bfb.css +22 -0
  35. flowfile/web/static/assets/{GroupBy-0bd1cc6b.js → GroupBy-656d07f3.js} +12 -75
  36. flowfile/web/static/assets/{Unique-b5615727.css → GroupBy-b9505323.css} +8 -8
  37. flowfile/web/static/assets/{Join-5a78a203.js → Join-b84ec849.js} +15 -85
  38. flowfile/web/static/assets/{Join-f45eff22.css → Join-fd79b451.css} +20 -20
  39. flowfile/web/static/assets/{ManualInput-a71b52c6.css → ManualInput-3246a08d.css} +20 -20
  40. flowfile/web/static/assets/{ManualInput-93aef9d6.js → ManualInput-346f4135.js} +11 -82
  41. flowfile/web/static/assets/MultiSelect-61b98268.js +5 -0
  42. flowfile/web/static/assets/MultiSelect.vue_vue_type_script_setup_true_lang-2a7c8312.js +63 -0
  43. flowfile/web/static/assets/NumericInput-e36602c2.js +5 -0
  44. flowfile/web/static/assets/NumericInput.vue_vue_type_script_setup_true_lang-211a1990.js +35 -0
  45. flowfile/web/static/assets/Output-ddc9079f.css +37 -0
  46. flowfile/web/static/assets/{Output-411ecaee.js → Output-eb041599.js} +13 -243
  47. flowfile/web/static/assets/Pivot-cf333e3d.css +22 -0
  48. flowfile/web/static/assets/{Pivot-89db4b04.js → Pivot-f5c774f4.js} +14 -138
  49. flowfile/web/static/assets/PivotValidation-26546cbc.js +61 -0
  50. flowfile/web/static/assets/PivotValidation-891ddfb0.css +13 -0
  51. flowfile/web/static/assets/PivotValidation-c46cd420.css +13 -0
  52. flowfile/web/static/assets/PivotValidation-e150a24b.js +61 -0
  53. flowfile/web/static/assets/{PolarsCode-a9f974f8.js → PolarsCode-da3a7abf.js} +13 -80
  54. flowfile/web/static/assets/Read-0c768769.js +243 -0
  55. flowfile/web/static/assets/Read-6b17491f.css +62 -0
  56. flowfile/web/static/assets/RecordCount-84736276.js +53 -0
  57. flowfile/web/static/assets/{RecordId-55ae7d36.js → RecordId-60055e6d.js} +8 -80
  58. flowfile/web/static/assets/SQLQueryComponent-36cef432.css +27 -0
  59. flowfile/web/static/assets/SQLQueryComponent-8a486004.js +38 -0
  60. flowfile/web/static/assets/{Sample-b4a18476.js → Sample-2d662611.js} +8 -77
  61. flowfile/web/static/assets/{SecretManager-b066d13a.js → SecretManager-ef586cab.js} +2 -2
  62. flowfile/web/static/assets/{Select-727688dc.js → Select-2e4a6965.js} +11 -85
  63. flowfile/web/static/assets/SettingsSection-2e4d03c4.css +21 -0
  64. flowfile/web/static/assets/{SettingsSection-695ac487.js → SettingsSection-310b61c0.js} +2 -40
  65. flowfile/web/static/assets/SettingsSection-5634f439.js +45 -0
  66. flowfile/web/static/assets/SettingsSection-5c696bee.css +20 -0
  67. flowfile/web/static/assets/SettingsSection-71e6b7e3.css +21 -0
  68. flowfile/web/static/assets/SettingsSection-7c68b19f.js +53 -0
  69. flowfile/web/static/assets/SingleSelect-7298811a.js +5 -0
  70. flowfile/web/static/assets/SingleSelect.vue_vue_type_script_setup_true_lang-43807bad.js +62 -0
  71. flowfile/web/static/assets/SliderInput-53105476.js +40 -0
  72. flowfile/web/static/assets/SliderInput-b8fb6a8c.css +4 -0
  73. flowfile/web/static/assets/{GroupBy-ab1ea74b.css → Sort-3643d625.css} +8 -8
  74. flowfile/web/static/assets/{Sort-be3339a8.js → Sort-4fdebe74.js} +12 -97
  75. flowfile/web/static/assets/TextInput-28366b7e.js +5 -0
  76. flowfile/web/static/assets/TextInput.vue_vue_type_script_setup_true_lang-9cad14ba.js +32 -0
  77. flowfile/web/static/assets/{TextToRows-c92d1ec2.css → TextToRows-5d2c1190.css} +9 -9
  78. flowfile/web/static/assets/{TextToRows-7b8998da.js → TextToRows-73ffa692.js} +14 -83
  79. flowfile/web/static/assets/ToggleSwitch-598add30.js +5 -0
  80. flowfile/web/static/assets/ToggleSwitch.vue_vue_type_script_setup_true_lang-f620cd32.js +31 -0
  81. flowfile/web/static/assets/{UnavailableFields-8b0cb48e.js → UnavailableFields-66239e83.js} +2 -2
  82. flowfile/web/static/assets/Union-26b10614.js +77 -0
  83. flowfile/web/static/assets/{Union-8d9ac7f9.css → Union-af6c3d9b.css} +6 -6
  84. flowfile/web/static/assets/{Unique-af5a80b4.js → Unique-33b9edbb.js} +22 -91
  85. flowfile/web/static/assets/{Sort-7ccfa0fe.css → Unique-f9fb0809.css} +8 -8
  86. flowfile/web/static/assets/Unpivot-1e422df3.css +30 -0
  87. flowfile/web/static/assets/{Unpivot-5195d411.js → Unpivot-ef69d0e2.js} +12 -166
  88. flowfile/web/static/assets/UnpivotValidation-0d240eeb.css +13 -0
  89. flowfile/web/static/assets/UnpivotValidation-8658388e.js +51 -0
  90. flowfile/web/static/assets/{ExploreData-18a4fe52.js → VueGraphicWalker-4d7861f4.js} +4 -264
  91. flowfile/web/static/assets/VueGraphicWalker-ed5ab88b.css +6 -0
  92. flowfile/web/static/assets/{api-023d1733.js → api-2d1394bd.js} +1 -1
  93. flowfile/web/static/assets/{api-cb00cce6.js → api-c908fffe.js} +1 -1
  94. flowfile/web/static/assets/{designer-6c322d8e.js → designer-1667687d.js} +2201 -705
  95. flowfile/web/static/assets/{designer-2197d782.css → designer-665e9408.css} +836 -201
  96. flowfile/web/static/assets/{documentation-4d1fafe1.js → documentation-5eed779e.js} +1 -1
  97. flowfile/web/static/assets/{dropDown-0b46dd77.js → dropDown-41ebe3c2.js} +1 -1
  98. flowfile/web/static/assets/{fullEditor-ec4e4f95.js → fullEditor-0670d32d.js} +2 -2
  99. flowfile/web/static/assets/{genericNodeSettings-def5879b.js → genericNodeSettings-38410ebf.js} +3 -3
  100. flowfile/web/static/assets/{index-681a3ed0.css → index-50508d4d.css} +8 -0
  101. flowfile/web/static/assets/{index-683fc198.js → index-5ec791df.js} +210 -31
  102. flowfile/web/static/assets/outputCsv-059583b6.js +86 -0
  103. flowfile/web/static/assets/{Output-48f81019.css → outputCsv-9cc59e0b.css} +0 -143
  104. flowfile/web/static/assets/outputExcel-76b1e02c.js +56 -0
  105. flowfile/web/static/assets/outputExcel-b41305c0.css +102 -0
  106. flowfile/web/static/assets/outputParquet-440fd4c7.js +31 -0
  107. flowfile/web/static/assets/outputParquet-cf8cf3f2.css +4 -0
  108. flowfile/web/static/assets/readCsv-9813903a.js +178 -0
  109. flowfile/web/static/assets/readCsv-bca3ed53.css +52 -0
  110. flowfile/web/static/assets/readExcel-7f40d237.js +203 -0
  111. flowfile/web/static/assets/readExcel-e1b381ea.css +64 -0
  112. flowfile/web/static/assets/readParquet-22d56002.js +26 -0
  113. flowfile/web/static/assets/readParquet-cee068e2.css +19 -0
  114. flowfile/web/static/assets/{secretApi-baceb6f9.js → secretApi-b3cb072e.js} +1 -1
  115. flowfile/web/static/assets/{selectDynamic-de91449a.js → selectDynamic-7ad95bca.js} +7 -7
  116. flowfile/web/static/assets/{selectDynamic-b062bc9b.css → selectDynamic-aa913ff4.css} +16 -16
  117. flowfile/web/static/assets/user-defined-icon-0ae16c90.png +0 -0
  118. flowfile/web/static/assets/{vue-codemirror.esm-dc5e3348.js → vue-codemirror.esm-b1dfaa46.js} +59 -33
  119. flowfile/web/static/assets/{vue-content-loader.es-ba94b82f.js → vue-content-loader.es-22bac17c.js} +1 -1
  120. flowfile/web/static/index.html +2 -2
  121. {flowfile-0.3.9.dist-info → flowfile-0.4.0.dist-info}/METADATA +1 -1
  122. {flowfile-0.3.9.dist-info → flowfile-0.4.0.dist-info}/RECORD +160 -102
  123. flowfile_core/configs/flow_logger.py +5 -13
  124. flowfile_core/configs/node_store/__init__.py +30 -0
  125. flowfile_core/configs/node_store/nodes.py +383 -99
  126. flowfile_core/configs/node_store/user_defined_node_registry.py +193 -0
  127. flowfile_core/configs/settings.py +2 -1
  128. flowfile_core/database/connection.py +5 -21
  129. flowfile_core/fileExplorer/funcs.py +239 -121
  130. flowfile_core/flowfile/flow_data_engine/flow_file_column/interface.py +4 -0
  131. flowfile_core/flowfile/flow_data_engine/flow_file_column/main.py +19 -34
  132. flowfile_core/flowfile/flow_data_engine/flow_file_column/type_registry.py +36 -0
  133. flowfile_core/flowfile/flow_data_engine/subprocess_operations/subprocess_operations.py +28 -8
  134. flowfile_core/flowfile/flow_graph.py +117 -34
  135. flowfile_core/flowfile/flow_node/flow_node.py +45 -13
  136. flowfile_core/flowfile/handler.py +22 -3
  137. flowfile_core/flowfile/manage/open_flowfile.py +9 -1
  138. flowfile_core/flowfile/node_designer/__init__.py +47 -0
  139. flowfile_core/flowfile/node_designer/_type_registry.py +197 -0
  140. flowfile_core/flowfile/node_designer/custom_node.py +371 -0
  141. flowfile_core/flowfile/node_designer/data_types.py +146 -0
  142. flowfile_core/flowfile/node_designer/ui_components.py +277 -0
  143. flowfile_core/flowfile/schema_callbacks.py +8 -4
  144. flowfile_core/flowfile/setting_generator/settings.py +0 -1
  145. flowfile_core/main.py +5 -1
  146. flowfile_core/routes/routes.py +73 -28
  147. flowfile_core/routes/user_defined_components.py +55 -0
  148. flowfile_core/schemas/input_schema.py +7 -1
  149. flowfile_core/schemas/output_model.py +5 -2
  150. flowfile_core/schemas/schemas.py +8 -3
  151. flowfile_core/schemas/transform_schema.py +1 -0
  152. flowfile_core/utils/validate_setup.py +3 -1
  153. flowfile_worker/__init__.py +6 -35
  154. flowfile_worker/main.py +5 -2
  155. flowfile_worker/routes.py +47 -5
  156. shared/__init__.py +15 -0
  157. shared/storage_config.py +258 -0
  158. flowfile/web/static/assets/GraphSolver-17fd26db.css +0 -68
  159. flowfile/web/static/assets/Pivot-f415e85f.css +0 -35
  160. flowfile/web/static/assets/Read-80dc1675.css +0 -197
  161. flowfile/web/static/assets/Read-c3b1929c.js +0 -701
  162. flowfile/web/static/assets/RecordCount-4e95f98e.js +0 -122
  163. flowfile/web/static/assets/Union-89fd73dc.js +0 -146
  164. flowfile/web/static/assets/Unpivot-246e9bbd.css +0 -77
  165. flowfile/web/static/assets/nodeTitle-a16db7c3.js +0 -227
  166. flowfile/web/static/assets/nodeTitle-f4b12bcb.css +0 -134
  167. {flowfile-0.3.9.dist-info → flowfile-0.4.0.dist-info}/LICENSE +0 -0
  168. {flowfile-0.3.9.dist-info → flowfile-0.4.0.dist-info}/WHEEL +0 -0
  169. {flowfile-0.3.9.dist-info → flowfile-0.4.0.dist-info}/entry_points.txt +0 -0
@@ -1,4 +1,4 @@
1
- import { a as axios } from "./index-683fc198.js";
1
+ import { a as axios } from "./index-5ec791df.js";
2
2
  const API_BASE_URL = "/secrets/secrets";
3
3
  const fetchSecretsApi = async () => {
4
4
  try {
@@ -1,6 +1,6 @@
1
- import { d as defineComponent, r as ref, a3 as watchEffect, l as computed, n as onMounted, o as onUnmounted, b as resolveComponent, c as openBlock, e as createElementBlock, f as createVNode, p as createBaseVNode, i as createCommentVNode, t as toDisplayString, T as normalizeStyle, g as createTextVNode, F as Fragment, q as renderList, s as normalizeClass, v as withModifiers, w as withCtx, u as unref, h as createBlock, _ as _export_sfc } from "./index-683fc198.js";
2
- import { u as useNodeStore } from "./vue-codemirror.esm-dc5e3348.js";
3
- import { u as unavailableField } from "./UnavailableFields-8b0cb48e.js";
1
+ import { d as defineComponent, r as ref, a3 as watchEffect, l as computed, n as onMounted, o as onUnmounted, b as resolveComponent, c as openBlock, e as createElementBlock, f as createVNode, p as createBaseVNode, i as createCommentVNode, t as toDisplayString, T as normalizeStyle, g as createTextVNode, F as Fragment, q as renderList, s as normalizeClass, v as withModifiers, w as withCtx, u as unref, h as createBlock, _ as _export_sfc } from "./index-5ec791df.js";
2
+ import { u as useNodeStore } from "./vue-codemirror.esm-b1dfaa46.js";
3
+ import { u as unavailableField } from "./UnavailableFields-66239e83.js";
4
4
  const _hoisted_1 = { key: 0 };
5
5
  const _hoisted_2 = {
6
6
  key: 1,
@@ -175,7 +175,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
175
175
  const _component_el_option = resolveComponent("el-option");
176
176
  const _component_el_select = resolveComponent("el-select");
177
177
  const _component_el_checkbox = resolveComponent("el-checkbox");
178
- return openBlock(), createElementBlock(Fragment, null, [
178
+ return openBlock(), createElementBlock("div", null, [
179
179
  dataLoaded.value ? (openBlock(), createElementBlock("div", _hoisted_1, [
180
180
  hasMissingFields.value ? (openBlock(), createElementBlock("div", {
181
181
  key: 0,
@@ -291,12 +291,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
291
291
  createBaseVNode("button", { onClick: selectAllSelected }, "Select"),
292
292
  createBaseVNode("button", { onClick: deselectAllSelected }, "Deselect")
293
293
  ], 4)) : createCommentVNode("", true)
294
- ], 64);
294
+ ]);
295
295
  };
296
296
  }
297
297
  });
298
- const selectDynamic_vue_vue_type_style_index_0_scoped_86b67fdf_lang = "";
299
- const selectDynamic = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-86b67fdf"]]);
298
+ const selectDynamic_vue_vue_type_style_index_0_scoped_c49d6287_lang = "";
299
+ const selectDynamic = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-c49d6287"]]);
300
300
  export {
301
301
  selectDynamic as s
302
302
  };
@@ -1,6 +1,6 @@
1
1
 
2
2
  /* Context menu styling */
3
- .context-menu[data-v-86b67fdf] {
3
+ .context-menu[data-v-c49d6287] {
4
4
  position: fixed;
5
5
  z-index: 1000;
6
6
  border: 1px solid #ccc;
@@ -10,7 +10,7 @@
10
10
  border-radius: 4px;
11
11
  user-select: none;
12
12
  }
13
- .context-menu button[data-v-86b67fdf] {
13
+ .context-menu button[data-v-c49d6287] {
14
14
  display: block;
15
15
  background: none;
16
16
  border: none;
@@ -19,12 +19,12 @@
19
19
  width: 100%;
20
20
  cursor: pointer;
21
21
  }
22
- .context-menu button[data-v-86b67fdf]:hover {
22
+ .context-menu button[data-v-c49d6287]:hover {
23
23
  background-color: #f0f0f0;
24
24
  }
25
25
 
26
26
  /* Table wrapper for scrolling */
27
- .table-wrapper[data-v-86b67fdf] {
27
+ .table-wrapper[data-v-c49d6287] {
28
28
  max-height: 700px;
29
29
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
30
30
  border-radius: 8px;
@@ -33,30 +33,30 @@
33
33
  }
34
34
 
35
35
  /* Adjusted font size for input fields */
36
- [data-v-86b67fdf] .smaller-el-input .el-input__inner {
36
+ [data-v-c49d6287] .smaller-el-input .el-input__inner {
37
37
  padding: 2px 10px;
38
38
  font-size: 12px;
39
39
  height: 24px;
40
40
  line-height: 20px;
41
41
  }
42
- .smaller-el-input[data-v-86b67fdf] {
42
+ .smaller-el-input[data-v-c49d6287] {
43
43
  line-height: 20px;
44
44
  }
45
45
 
46
46
  /* Highlight selected rows */
47
- .highlight-row[data-v-86b67fdf] {
47
+ .highlight-row[data-v-c49d6287] {
48
48
  background-color: #e7e6e6 !important;
49
49
  }
50
50
 
51
51
  /* Greyed out styling for unavailable fields */
52
- .greyed-out[data-v-86b67fdf] {
52
+ .greyed-out[data-v-c49d6287] {
53
53
  background-color: #dcdcdc !important;
54
54
  color: #888 !important;
55
55
  z-index: 1;
56
56
  }
57
57
 
58
58
  /* Unavailable field styling */
59
- .unavailable-field[data-v-86b67fdf] {
59
+ .unavailable-field[data-v-c49d6287] {
60
60
  display: flex;
61
61
  align-items: center;
62
62
  position: relative;
@@ -64,7 +64,7 @@
64
64
  }
65
65
 
66
66
  /* Remove missing fields button styling */
67
- .remove-missing-fields[data-v-86b67fdf] {
67
+ .remove-missing-fields[data-v-c49d6287] {
68
68
  display: flex;
69
69
  align-items: center;
70
70
  background-color: #d9534f;
@@ -76,31 +76,31 @@
76
76
  font-weight: bold;
77
77
  font-size: 0.9em;
78
78
  }
79
- .remove-missing-fields[data-v-86b67fdf]:hover {
79
+ .remove-missing-fields[data-v-c49d6287]:hover {
80
80
  background-color: #c9302c;
81
81
  }
82
- .remove-missing-fields > unavailable-field[data-v-86b67fdf] {
82
+ .remove-missing-fields > unavailable-field[data-v-c49d6287] {
83
83
  margin-right: 4px;
84
84
  }
85
85
 
86
86
  /* Adjustments for el-checkbox component */
87
- [data-v-86b67fdf] .el-checkbox {
87
+ [data-v-c49d6287] .el-checkbox {
88
88
  font-size: 12px;
89
89
  height: 20px;
90
90
  line-height: 20px;
91
91
  display: flex;
92
92
  align-items: center;
93
93
  }
94
- [data-v-86b67fdf] .el-checkbox .el-checkbox__input {
94
+ [data-v-c49d6287] .el-checkbox .el-checkbox__input {
95
95
  height: 16px;
96
96
  width: 16px;
97
97
  margin: 0;
98
98
  }
99
- [data-v-86b67fdf] .el-checkbox .el-checkbox__inner {
99
+ [data-v-c49d6287] .el-checkbox .el-checkbox__inner {
100
100
  height: 16px;
101
101
  width: 16px;
102
102
  }
103
- [data-v-86b67fdf] .el-checkbox .el-checkbox__label {
103
+ [data-v-c49d6287] .el-checkbox .el-checkbox__label {
104
104
  font-size: 12px;
105
105
  line-height: 20px;
106
106
  margin-left: 4px;
@@ -1,4 +1,4 @@
1
- import { r as ref, j as defineStore, a as axios, d as defineComponent, ae as useCssVars, n as onMounted, c as openBlock, e as createElementBlock, p as createBaseVNode, L as renderSlot, h as createBlock, t as toDisplayString, i as createCommentVNode, T as normalizeStyle, s as normalizeClass, a7 as Teleport, R as nextTick, _ as _export_sfc, X as shallowRef, B as inject, l as computed, m as watch, U as onBeforeUnmount, Y as h$1, af as toRaw } from "./index-683fc198.js";
1
+ import { r as ref, j as defineStore, X as shallowRef, a as axios, d as defineComponent, ai as useCssVars, n as onMounted, c as openBlock, e as createElementBlock, p as createBaseVNode, L as renderSlot, h as createBlock, t as toDisplayString, i as createCommentVNode, T as normalizeStyle, s as normalizeClass, aa as Teleport, R as nextTick, _ as _export_sfc, B as inject, l as computed, m as watch, U as onBeforeUnmount, Y as h$1, aj as toRaw } from "./index-5ec791df.js";
2
2
  const FLOW_ID_STORAGE_KEY = "last_flow_id";
3
3
  ref(null);
4
4
  const getDownstreamNodeIds = async (flow_id, node_id) => {
@@ -42,13 +42,20 @@ const useNodeStore = defineStore("node", {
42
42
  resultVersion: 0,
43
43
  vueFlowInstance: null,
44
44
  allExpressions: null,
45
+ hideLogViewerForThisRun: false,
45
46
  isShowingLogViewer: false,
46
47
  isStreamingLogs: false,
47
48
  displayLogViewer: true,
48
- showCodeGenerator: false
49
+ showCodeGenerator: false,
50
+ activeDrawerComponent: shallowRef(null),
51
+ drawerProps: ref({})
49
52
  };
50
53
  },
51
54
  actions: {
55
+ async executeDrawCloseFunction() {
56
+ console.log("Executing draw close function");
57
+ this.drawCloseFunction();
58
+ },
52
59
  toggleCodeGenerator() {
53
60
  this.showCodeGenerator = !this.showCodeGenerator;
54
61
  },
@@ -108,7 +115,7 @@ const useNodeStore = defineStore("node", {
108
115
  this.currentRunResult = runResult;
109
116
  this.runResults[runResult.flow_id] = runResult;
110
117
  this.showFlowResult = showResult;
111
- this.isShowingLogViewer = this.displayLogViewer && showResult;
118
+ this.isShowingLogViewer = this.displayLogViewer && showResult && !this.hideLogViewerForThisRun;
112
119
  this.initializeResultCache(runResult.flow_id);
113
120
  runResult.node_step_result.forEach((nodeResult) => {
114
121
  this.runNodeResults[runResult.flow_id][nodeResult.node_id] = nodeResult;
@@ -138,8 +145,6 @@ const useNodeStore = defineStore("node", {
138
145
  const func = this.nodeValidateFuncs.get(nodeId);
139
146
  if (func) {
140
147
  func();
141
- } else {
142
- console.warn("No validation function found for node", nodeId);
143
148
  }
144
149
  },
145
150
  setFlowId(flowId) {
@@ -200,6 +205,11 @@ const useNodeStore = defineStore("node", {
200
205
  return "";
201
206
  }
202
207
  },
208
+ getters: {
209
+ isDrawerOpen() {
210
+ return !!this.activeDrawerComponent;
211
+ }
212
+ },
203
213
  async setNodeDescription(nodeId, description) {
204
214
  try {
205
215
  this.cacheNodeDescriptionDict(this.flow_id, nodeId, description);
@@ -238,7 +248,6 @@ const useNodeStore = defineStore("node", {
238
248
  this.size_data_preview = newHeight;
239
249
  },
240
250
  toggleDrawer() {
241
- console.log("toggleDrawer in column-store.ts");
242
251
  if (this.isDrawerOpen && this.drawCloseFunction) {
243
252
  this.pushNodeData();
244
253
  }
@@ -250,22 +259,16 @@ const useNodeStore = defineStore("node", {
250
259
  this.drawCloseFunction = null;
251
260
  }
252
261
  },
253
- openDrawer(close_function) {
254
- console.log("openDrawer in column-store.ts");
255
- if (this.isDrawerOpen) {
256
- console.log("pushing data");
257
- this.pushNodeData();
258
- }
259
- if (close_function) {
260
- this.drawCloseFunction = close_function;
261
- }
262
+ openDrawer(component, nodeTitleInfo, props = {}) {
263
+ this.activeDrawerComponent = component;
264
+ this.drawerProps = { ...nodeTitleInfo, ...props };
262
265
  this.isDrawerOpen = true;
263
266
  },
264
267
  closeDrawer() {
265
- this.isDrawerOpen = false;
266
- if (this.drawCloseFunction) {
267
- this.pushNodeData();
268
- }
268
+ this.activeDrawerComponent = null;
269
+ this.node_id = -1;
270
+ if (this.drawCloseFunction)
271
+ ;
269
272
  this.node_id = -1;
270
273
  },
271
274
  openAnalysisDrawer(close_function) {
@@ -325,9 +328,9 @@ const useNodeStore = defineStore("node", {
325
328
  }
326
329
  }
327
330
  try {
328
- this.setFlowIdAndNodeId(this.flow_id, node_id);
331
+ console.log("Getting node data");
329
332
  const response = await axios.get("/node", {
330
- params: { flow_id: this.flow_id, node_id: this.node_id },
333
+ params: { flow_id: this.flow_id, node_id },
331
334
  headers: { accept: "application/json" }
332
335
  });
333
336
  this.nodeData = response.data;
@@ -350,8 +353,6 @@ const useNodeStore = defineStore("node", {
350
353
  return;
351
354
  }
352
355
  console.log("Automatically pushing the node data ");
353
- this.pushNodeData();
354
- this.previous_node_id = this.node_id;
355
356
  if (this.flow_id !== flow_id) {
356
357
  this.setFlowId(flow_id);
357
358
  }
@@ -393,14 +394,12 @@ const useNodeStore = defineStore("node", {
393
394
  async updateSettingsDirectly(inputData) {
394
395
  var _a2, _b;
395
396
  try {
396
- const node = (_a2 = this.vueFlowInstance) == null ? void 0 : _a2.findNode(String(this.node_id));
397
+ const node = (_a2 = this.vueFlowInstance) == null ? void 0 : _a2.findNode(String(inputData.node_id));
397
398
  inputData.pos_x = node.position.x;
398
399
  inputData.pos_y = node.position.y;
399
- console.log("updating settings");
400
- console.log("node", node);
401
400
  const response = await axios.post("/update_settings/", inputData, {
402
401
  params: {
403
- node_type: node.data.component.__name
402
+ node_type: node.data.nodeTemplate.item
404
403
  }
405
404
  });
406
405
  const downstreamNodeIds = await loadDownstreamNodeIds(this.flow_id, inputData.node_id);
@@ -408,23 +407,50 @@ const useNodeStore = defineStore("node", {
408
407
  this.validateNode(nodeId);
409
408
  });
410
409
  return response.data;
410
+ } catch (error) {
411
+ console.error("Error updating settings directly:", (_b = error.response) == null ? void 0 : _b.data);
412
+ throw error;
413
+ }
414
+ },
415
+ async updateUserDefinedSettings(inputData) {
416
+ var _a2, _b;
417
+ try {
418
+ const node = (_a2 = this.vueFlowInstance) == null ? void 0 : _a2.findNode(String(inputData.value.node_id));
419
+ const nodeType = node.data.nodeTemplate.item;
420
+ inputData.value.pos_x = node.position.x;
421
+ inputData.value.pos_y = node.position.y;
422
+ const response = await axios.post(
423
+ "/user_defined_components/update_user_defined_node/",
424
+ inputData.value,
425
+ {
426
+ params: {
427
+ node_type: nodeType
428
+ }
429
+ }
430
+ );
431
+ const downstreamNodeIds = await loadDownstreamNodeIds(
432
+ this.flow_id,
433
+ inputData.value.node_id
434
+ );
435
+ downstreamNodeIds.map((nodeId) => {
436
+ this.validateNode(nodeId);
437
+ });
438
+ return response.data;
411
439
  } catch (error) {
412
440
  console.error("Error updating settings:", (_b = error.response) == null ? void 0 : _b.data);
413
441
  throw error;
414
442
  }
415
443
  },
416
- async updateSettings(inputData) {
444
+ async updateSettings(inputData, inputNodeType) {
417
445
  var _a2, _b;
418
446
  try {
419
- const node = (_a2 = this.vueFlowInstance) == null ? void 0 : _a2.findNode(String(this.node_id));
447
+ const node = (_a2 = this.vueFlowInstance) == null ? void 0 : _a2.findNode(String(inputData.value.node_id));
448
+ const nodeType = inputNodeType ?? node.data.nodeTemplate.item;
420
449
  inputData.value.pos_x = node.position.x;
421
450
  inputData.value.pos_y = node.position.y;
422
- console.log("updating settings");
423
- console.log("node", node);
424
- console.log("node name", node.data.component.__name);
425
451
  const response = await axios.post("/update_settings/", inputData.value, {
426
452
  params: {
427
- node_type: node.data.component.__name
453
+ node_type: nodeType
428
454
  }
429
455
  });
430
456
  const downstreamNodeIds = await loadDownstreamNodeIds(
@@ -1,4 +1,4 @@
1
- import { d as defineComponent, f as createVNode, l as computed } from "./index-683fc198.js";
1
+ import { d as defineComponent, f as createVNode, l as computed } from "./index-5ec791df.js";
2
2
  var uid = function() {
3
3
  return Math.random().toString(36).substring(2);
4
4
  };
@@ -12,8 +12,8 @@
12
12
 
13
13
  <!-- Material Icons -->
14
14
  <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
15
- <script type="module" crossorigin src="/assets/index-683fc198.js"></script>
16
- <link rel="stylesheet" href="/assets/index-681a3ed0.css">
15
+ <script type="module" crossorigin src="/assets/index-5ec791df.js"></script>
16
+ <link rel="stylesheet" href="/assets/index-50508d4d.css">
17
17
  </head>
18
18
  <body>
19
19
  <div id="app"></div>
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: Flowfile
3
- Version: 0.3.9
3
+ Version: 0.4.0
4
4
  Summary: Project combining flowfile core (backend) and flowfile_worker (compute offloader) and flowfile_frame (api)
5
5
  Author: Edward van Eechoud
6
6
  Author-email: evaneechoud@gmail.com