n8n-workflow 1.98.0 → 1.99.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 (707) hide show
  1. package/dist/{augment-object.d.ts → cjs/augment-object.d.ts} +1 -0
  2. package/dist/cjs/augment-object.d.ts.map +1 -0
  3. package/dist/cjs/augment-object.js +159 -0
  4. package/dist/cjs/augment-object.js.map +1 -0
  5. package/dist/{constants.d.ts → cjs/constants.d.ts} +12 -0
  6. package/dist/cjs/constants.d.ts.map +1 -0
  7. package/dist/cjs/constants.js +112 -0
  8. package/dist/cjs/constants.js.map +1 -0
  9. package/dist/{cron.d.ts → cjs/cron.d.ts} +1 -0
  10. package/dist/cjs/cron.d.ts.map +1 -0
  11. package/dist/cjs/cron.js +37 -0
  12. package/dist/cjs/cron.js.map +1 -0
  13. package/dist/{deferred-promise.d.ts → cjs/deferred-promise.d.ts} +1 -0
  14. package/dist/cjs/deferred-promise.d.ts.map +1 -0
  15. package/dist/cjs/deferred-promise.js +22 -0
  16. package/dist/cjs/deferred-promise.js.map +1 -0
  17. package/dist/{errors → cjs/errors}/abstract/execution-base.error.d.ts +1 -0
  18. package/dist/cjs/errors/abstract/execution-base.error.d.ts.map +1 -0
  19. package/dist/cjs/errors/abstract/execution-base.error.js +50 -0
  20. package/dist/cjs/errors/abstract/execution-base.error.js.map +1 -0
  21. package/dist/cjs/errors/abstract/node.error.d.ts +48 -0
  22. package/dist/cjs/errors/abstract/node.error.d.ts.map +1 -0
  23. package/dist/cjs/errors/abstract/node.error.js +178 -0
  24. package/dist/cjs/errors/abstract/node.error.js.map +1 -0
  25. package/dist/{errors → cjs/errors}/application.error.d.ts +6 -2
  26. package/dist/cjs/errors/application.error.d.ts.map +1 -0
  27. package/dist/cjs/errors/application.error.js +41 -0
  28. package/dist/cjs/errors/application.error.js.map +1 -0
  29. package/dist/{errors → cjs/errors}/base/base.error.d.ts +12 -0
  30. package/dist/cjs/errors/base/base.error.d.ts.map +1 -0
  31. package/dist/cjs/errors/base/base.error.js +53 -0
  32. package/dist/cjs/errors/base/base.error.js.map +1 -0
  33. package/dist/{errors → cjs/errors}/base/operational.error.d.ts +8 -0
  34. package/dist/cjs/errors/base/operational.error.d.ts.map +1 -0
  35. package/dist/cjs/errors/base/operational.error.js +29 -0
  36. package/dist/cjs/errors/base/operational.error.js.map +1 -0
  37. package/dist/{errors → cjs/errors}/base/unexpected.error.d.ts +8 -0
  38. package/dist/cjs/errors/base/unexpected.error.d.ts.map +1 -0
  39. package/dist/cjs/errors/base/unexpected.error.js +29 -0
  40. package/dist/cjs/errors/base/unexpected.error.js.map +1 -0
  41. package/dist/{errors → cjs/errors}/base/user.error.d.ts +8 -0
  42. package/dist/cjs/errors/base/user.error.d.ts.map +1 -0
  43. package/dist/cjs/errors/base/user.error.js +29 -0
  44. package/dist/cjs/errors/base/user.error.js.map +1 -0
  45. package/dist/{errors → cjs/errors}/cli-subworkflow-operation.error.d.ts +1 -0
  46. package/dist/cjs/errors/cli-subworkflow-operation.error.d.ts.map +1 -0
  47. package/dist/cjs/errors/cli-subworkflow-operation.error.js +18 -0
  48. package/dist/cjs/errors/cli-subworkflow-operation.error.js.map +1 -0
  49. package/dist/{errors → cjs/errors}/db-connection-timeout-error.d.ts +1 -0
  50. package/dist/cjs/errors/db-connection-timeout-error.d.ts.map +1 -0
  51. package/dist/cjs/errors/db-connection-timeout-error.js +23 -0
  52. package/dist/cjs/errors/db-connection-timeout-error.js.map +1 -0
  53. package/dist/cjs/errors/ensure-error.d.ts +3 -0
  54. package/dist/cjs/errors/ensure-error.d.ts.map +1 -0
  55. package/dist/cjs/errors/ensure-error.js +23 -0
  56. package/dist/cjs/errors/ensure-error.js.map +1 -0
  57. package/dist/{errors → cjs/errors}/error.types.d.ts +2 -0
  58. package/dist/cjs/errors/error.types.d.ts.map +1 -0
  59. package/dist/cjs/errors/error.types.js +13 -0
  60. package/dist/{errors → cjs/errors}/error.types.js.map +1 -1
  61. package/dist/{errors → cjs/errors}/execution-cancelled.error.d.ts +1 -0
  62. package/dist/cjs/errors/execution-cancelled.error.d.ts.map +1 -0
  63. package/dist/cjs/errors/execution-cancelled.error.js +24 -0
  64. package/dist/cjs/errors/execution-cancelled.error.js.map +1 -0
  65. package/dist/{errors → cjs/errors}/expression-extension.error.d.ts +1 -0
  66. package/dist/cjs/errors/expression-extension.error.d.ts.map +1 -0
  67. package/dist/cjs/errors/expression-extension.error.js +18 -0
  68. package/dist/cjs/errors/expression-extension.error.js.map +1 -0
  69. package/dist/{errors → cjs/errors}/expression.error.d.ts +4 -0
  70. package/dist/cjs/errors/expression.error.d.ts.map +1 -0
  71. package/dist/cjs/errors/expression.error.js +48 -0
  72. package/dist/cjs/errors/expression.error.js.map +1 -0
  73. package/dist/{errors → cjs/errors}/index.d.ts +1 -0
  74. package/dist/cjs/errors/index.d.ts.map +1 -0
  75. package/dist/cjs/errors/index.js +58 -0
  76. package/dist/cjs/errors/index.js.map +1 -0
  77. package/dist/{errors → cjs/errors}/node-api.error.d.ts +8 -0
  78. package/dist/cjs/errors/node-api.error.d.ts.map +1 -0
  79. package/dist/cjs/errors/node-api.error.js +257 -0
  80. package/dist/cjs/errors/node-api.error.js.map +1 -0
  81. package/dist/{errors → cjs/errors}/node-operation.error.d.ts +4 -0
  82. package/dist/cjs/errors/node-operation.error.d.ts.map +1 -0
  83. package/dist/cjs/errors/node-operation.error.js +50 -0
  84. package/dist/cjs/errors/node-operation.error.js.map +1 -0
  85. package/dist/{errors → cjs/errors}/node-ssl.error.d.ts +1 -0
  86. package/dist/cjs/errors/node-ssl.error.d.ts.map +1 -0
  87. package/dist/cjs/errors/node-ssl.error.js +21 -0
  88. package/dist/cjs/errors/node-ssl.error.js.map +1 -0
  89. package/dist/{errors → cjs/errors}/subworkflow-operation.error.d.ts +1 -0
  90. package/dist/cjs/errors/subworkflow-operation.error.d.ts.map +1 -0
  91. package/dist/cjs/errors/subworkflow-operation.error.js +30 -0
  92. package/dist/cjs/errors/subworkflow-operation.error.js.map +1 -0
  93. package/dist/{errors → cjs/errors}/trigger-close.error.d.ts +1 -0
  94. package/dist/cjs/errors/trigger-close.error.d.ts.map +1 -0
  95. package/dist/cjs/errors/trigger-close.error.js +24 -0
  96. package/dist/cjs/errors/trigger-close.error.js.map +1 -0
  97. package/dist/{errors → cjs/errors}/webhook-taken.error.d.ts +1 -0
  98. package/dist/cjs/errors/webhook-taken.error.d.ts.map +1 -0
  99. package/dist/cjs/errors/webhook-taken.error.js +21 -0
  100. package/dist/cjs/errors/webhook-taken.error.js.map +1 -0
  101. package/dist/{errors → cjs/errors}/workflow-activation.error.d.ts +4 -0
  102. package/dist/cjs/errors/workflow-activation.error.d.ts.map +1 -0
  103. package/dist/cjs/errors/workflow-activation.error.js +54 -0
  104. package/dist/cjs/errors/workflow-activation.error.js.map +1 -0
  105. package/dist/{errors → cjs/errors}/workflow-deactivation.error.d.ts +1 -0
  106. package/dist/cjs/errors/workflow-deactivation.error.d.ts.map +1 -0
  107. package/dist/cjs/errors/workflow-deactivation.error.js +18 -0
  108. package/dist/cjs/errors/workflow-deactivation.error.js.map +1 -0
  109. package/dist/{errors → cjs/errors}/workflow-operation.error.d.ts +4 -0
  110. package/dist/cjs/errors/workflow-operation.error.d.ts.map +1 -0
  111. package/dist/cjs/errors/workflow-operation.error.js +32 -0
  112. package/dist/cjs/errors/workflow-operation.error.js.map +1 -0
  113. package/dist/{execution-status.d.ts → cjs/execution-status.d.ts} +1 -0
  114. package/dist/cjs/execution-status.d.ts.map +1 -0
  115. package/dist/cjs/execution-status.js +24 -0
  116. package/dist/cjs/execution-status.js.map +1 -0
  117. package/dist/{expression-evaluator-proxy.d.ts → cjs/expression-evaluator-proxy.d.ts} +1 -0
  118. package/dist/cjs/expression-evaluator-proxy.d.ts.map +1 -0
  119. package/dist/cjs/expression-evaluator-proxy.js +30 -0
  120. package/dist/cjs/expression-evaluator-proxy.js.map +1 -0
  121. package/dist/{expression-sandboxing.d.ts → cjs/expression-sandboxing.d.ts} +1 -0
  122. package/dist/cjs/expression-sandboxing.d.ts.map +1 -0
  123. package/dist/cjs/expression-sandboxing.js +62 -0
  124. package/dist/cjs/expression-sandboxing.js.map +1 -0
  125. package/dist/{expression.d.ts → cjs/expression.d.ts} +33 -0
  126. package/dist/cjs/expression.d.ts.map +1 -0
  127. package/dist/cjs/expression.js +368 -0
  128. package/dist/cjs/expression.js.map +1 -0
  129. package/dist/cjs/expressions/expression-helpers.d.ts +6 -0
  130. package/dist/cjs/expressions/expression-helpers.d.ts.map +1 -0
  131. package/dist/cjs/expressions/expression-helpers.js +24 -0
  132. package/dist/cjs/expressions/expression-helpers.js.map +1 -0
  133. package/dist/{extensions → cjs/extensions}/array-extensions.d.ts +1 -0
  134. package/dist/cjs/extensions/array-extensions.d.ts.map +1 -0
  135. package/dist/cjs/extensions/array-extensions.js +627 -0
  136. package/dist/cjs/extensions/array-extensions.js.map +1 -0
  137. package/dist/{extensions → cjs/extensions}/boolean-extensions.d.ts +1 -0
  138. package/dist/cjs/extensions/boolean-extensions.d.ts.map +1 -0
  139. package/dist/cjs/extensions/boolean-extensions.js +49 -0
  140. package/dist/cjs/extensions/boolean-extensions.js.map +1 -0
  141. package/dist/{extensions → cjs/extensions}/date-extensions.d.ts +1 -0
  142. package/dist/cjs/extensions/date-extensions.d.ts.map +1 -0
  143. package/dist/cjs/extensions/date-extensions.js +528 -0
  144. package/dist/cjs/extensions/date-extensions.js.map +1 -0
  145. package/dist/{extensions → cjs/extensions}/expression-extension.d.ts +22 -0
  146. package/dist/cjs/extensions/expression-extension.d.ts.map +1 -0
  147. package/dist/cjs/extensions/expression-extension.js +493 -0
  148. package/dist/cjs/extensions/expression-extension.js.map +1 -0
  149. package/dist/{extensions → cjs/extensions}/expression-parser.d.ts +1 -0
  150. package/dist/cjs/extensions/expression-parser.d.ts.map +1 -0
  151. package/dist/cjs/extensions/expression-parser.js +94 -0
  152. package/dist/cjs/extensions/expression-parser.js.map +1 -0
  153. package/dist/{extensions → cjs/extensions}/extended-functions.d.ts +1 -0
  154. package/dist/cjs/extensions/extended-functions.d.ts.map +1 -0
  155. package/dist/cjs/extensions/extended-functions.js +89 -0
  156. package/dist/cjs/extensions/extended-functions.js.map +1 -0
  157. package/dist/{extensions → cjs/extensions}/extensions.d.ts +1 -0
  158. package/dist/cjs/extensions/extensions.d.ts.map +1 -0
  159. package/dist/cjs/extensions/extensions.js +13 -0
  160. package/dist/cjs/extensions/extensions.js.map +1 -0
  161. package/dist/{extensions → cjs/extensions}/index.d.ts +1 -0
  162. package/dist/cjs/extensions/index.d.ts.map +1 -0
  163. package/dist/cjs/extensions/index.js +21 -0
  164. package/dist/cjs/extensions/index.js.map +1 -0
  165. package/dist/{extensions → cjs/extensions}/number-extensions.d.ts +1 -0
  166. package/dist/cjs/extensions/number-extensions.d.ts.map +1 -0
  167. package/dist/cjs/extensions/number-extensions.js +236 -0
  168. package/dist/cjs/extensions/number-extensions.js.map +1 -0
  169. package/dist/{extensions → cjs/extensions}/object-extensions.d.ts +1 -0
  170. package/dist/cjs/extensions/object-extensions.d.ts.map +1 -0
  171. package/dist/cjs/extensions/object-extensions.js +296 -0
  172. package/dist/cjs/extensions/object-extensions.js.map +1 -0
  173. package/dist/{extensions → cjs/extensions}/string-extensions.d.ts +1 -0
  174. package/dist/cjs/extensions/string-extensions.d.ts.map +1 -0
  175. package/dist/cjs/extensions/string-extensions.js +788 -0
  176. package/dist/cjs/extensions/string-extensions.js.map +1 -0
  177. package/dist/{extensions → cjs/extensions}/utils.d.ts +1 -0
  178. package/dist/cjs/extensions/utils.d.ts.map +1 -0
  179. package/dist/cjs/extensions/utils.js +42 -0
  180. package/dist/cjs/extensions/utils.js.map +1 -0
  181. package/dist/cjs/from-ai-parse-utils.d.ts +44 -0
  182. package/dist/cjs/from-ai-parse-utils.d.ts.map +1 -0
  183. package/dist/cjs/from-ai-parse-utils.js +291 -0
  184. package/dist/cjs/from-ai-parse-utils.js.map +1 -0
  185. package/dist/{global-state.d.ts → cjs/global-state.d.ts} +1 -0
  186. package/dist/cjs/global-state.d.ts.map +1 -0
  187. package/dist/cjs/global-state.js +23 -0
  188. package/dist/cjs/global-state.js.map +1 -0
  189. package/dist/{graph → cjs/graph}/graph-utils.d.ts +21 -0
  190. package/dist/cjs/graph/graph-utils.d.ts.map +1 -0
  191. package/dist/cjs/graph/graph-utils.js +195 -0
  192. package/dist/cjs/graph/graph-utils.js.map +1 -0
  193. package/dist/{index.d.ts → cjs/index.d.ts} +2 -0
  194. package/dist/cjs/index.d.ts.map +1 -0
  195. package/dist/cjs/index.js +114 -0
  196. package/dist/cjs/index.js.map +1 -0
  197. package/dist/{interfaces.d.ts → cjs/interfaces.d.ts} +89 -0
  198. package/dist/cjs/interfaces.d.ts.map +1 -0
  199. package/dist/cjs/interfaces.js +53 -0
  200. package/dist/cjs/interfaces.js.map +1 -0
  201. package/dist/{logger-proxy.d.ts → cjs/logger-proxy.d.ts} +1 -0
  202. package/dist/cjs/logger-proxy.d.ts.map +1 -0
  203. package/dist/cjs/logger-proxy.js +26 -0
  204. package/dist/cjs/logger-proxy.js.map +1 -0
  205. package/dist/{message-event-bus.d.ts → cjs/message-event-bus.d.ts} +1 -0
  206. package/dist/cjs/message-event-bus.d.ts.map +1 -0
  207. package/dist/cjs/message-event-bus.js +96 -0
  208. package/dist/cjs/message-event-bus.js.map +1 -0
  209. package/dist/{metadata-utils.d.ts → cjs/metadata-utils.d.ts} +1 -0
  210. package/dist/cjs/metadata-utils.d.ts.map +1 -0
  211. package/dist/cjs/metadata-utils.js +37 -0
  212. package/dist/cjs/metadata-utils.js.map +1 -0
  213. package/dist/{native-methods → cjs/native-methods}/array.methods.d.ts +1 -0
  214. package/dist/cjs/native-methods/array.methods.d.ts.map +1 -0
  215. package/dist/cjs/native-methods/array.methods.js +552 -0
  216. package/dist/cjs/native-methods/array.methods.js.map +1 -0
  217. package/dist/{native-methods → cjs/native-methods}/boolean.methods.d.ts +1 -0
  218. package/dist/cjs/native-methods/boolean.methods.d.ts.map +1 -0
  219. package/dist/cjs/native-methods/boolean.methods.js +31 -0
  220. package/dist/cjs/native-methods/boolean.methods.js.map +1 -0
  221. package/dist/{native-methods → cjs/native-methods}/index.d.ts +1 -0
  222. package/dist/cjs/native-methods/index.d.ts.map +1 -0
  223. package/dist/cjs/native-methods/index.js +27 -0
  224. package/dist/cjs/native-methods/index.js.map +1 -0
  225. package/dist/{native-methods → cjs/native-methods}/number.methods.d.ts +1 -0
  226. package/dist/cjs/native-methods/number.methods.d.ts.map +1 -0
  227. package/dist/cjs/native-methods/number.methods.js +95 -0
  228. package/dist/cjs/native-methods/number.methods.js.map +1 -0
  229. package/dist/{native-methods → cjs/native-methods}/object.methods.d.ts +1 -0
  230. package/dist/cjs/native-methods/object.methods.d.ts.map +1 -0
  231. package/dist/cjs/native-methods/object.methods.js +18 -0
  232. package/dist/cjs/native-methods/object.methods.js.map +1 -0
  233. package/dist/{native-methods → cjs/native-methods}/string.methods.d.ts +1 -0
  234. package/dist/cjs/native-methods/string.methods.d.ts.map +1 -0
  235. package/dist/cjs/native-methods/string.methods.js +499 -0
  236. package/dist/cjs/native-methods/string.methods.js.map +1 -0
  237. package/dist/{node-helpers.d.ts → cjs/node-helpers.d.ts} +109 -1
  238. package/dist/cjs/node-helpers.d.ts.map +1 -0
  239. package/dist/cjs/node-helpers.js +1369 -0
  240. package/dist/cjs/node-helpers.js.map +1 -0
  241. package/dist/{node-parameters → cjs/node-parameters}/filter-parameter.d.ts +1 -0
  242. package/dist/cjs/node-parameters/filter-parameter.d.ts.map +1 -0
  243. package/dist/cjs/node-parameters/filter-parameter.js +383 -0
  244. package/dist/cjs/node-parameters/filter-parameter.js.map +1 -0
  245. package/dist/{node-parameters → cjs/node-parameters}/rename-node-utils.d.ts +2 -1
  246. package/dist/cjs/node-parameters/rename-node-utils.d.ts.map +1 -0
  247. package/dist/cjs/node-parameters/rename-node-utils.js +36 -0
  248. package/dist/cjs/node-parameters/rename-node-utils.js.map +1 -0
  249. package/dist/{node-reference-parser-utils.d.ts → cjs/node-reference-parser-utils.d.ts} +11 -0
  250. package/dist/cjs/node-reference-parser-utils.d.ts.map +1 -0
  251. package/dist/cjs/node-reference-parser-utils.js +468 -0
  252. package/dist/cjs/node-reference-parser-utils.js.map +1 -0
  253. package/dist/{observable-object.d.ts → cjs/observable-object.d.ts} +1 -0
  254. package/dist/cjs/observable-object.d.ts.map +1 -0
  255. package/dist/cjs/observable-object.js +72 -0
  256. package/dist/cjs/observable-object.js.map +1 -0
  257. package/dist/{result.d.ts → cjs/result.d.ts} +7 -0
  258. package/dist/cjs/result.d.ts.map +1 -0
  259. package/dist/cjs/result.js +41 -0
  260. package/dist/cjs/result.js.map +1 -0
  261. package/dist/{telemetry-helpers.d.ts → cjs/telemetry-helpers.d.ts} +7 -0
  262. package/dist/cjs/telemetry-helpers.d.ts.map +1 -0
  263. package/dist/cjs/telemetry-helpers.js +522 -0
  264. package/dist/cjs/telemetry-helpers.js.map +1 -0
  265. package/dist/{type-guards.d.ts → cjs/type-guards.d.ts} +1 -0
  266. package/dist/cjs/type-guards.d.ts.map +1 -0
  267. package/dist/cjs/type-guards.js +56 -0
  268. package/dist/cjs/type-guards.js.map +1 -0
  269. package/dist/{type-validation.d.ts → cjs/type-validation.d.ts} +1 -0
  270. package/dist/cjs/type-validation.d.ts.map +1 -0
  271. package/dist/cjs/type-validation.js +408 -0
  272. package/dist/cjs/type-validation.js.map +1 -0
  273. package/dist/cjs/typecheck.tsbuildinfo +1 -0
  274. package/dist/{utils.d.ts → cjs/utils.d.ts} +31 -0
  275. package/dist/cjs/utils.d.ts.map +1 -0
  276. package/dist/cjs/utils.js +334 -0
  277. package/dist/cjs/utils.js.map +1 -0
  278. package/dist/{versioned-node-type.d.ts → cjs/versioned-node-type.d.ts} +1 -0
  279. package/dist/cjs/versioned-node-type.d.ts.map +1 -0
  280. package/dist/cjs/versioned-node-type.js +36 -0
  281. package/dist/cjs/versioned-node-type.js.map +1 -0
  282. package/dist/cjs/workflow-data-proxy-env-provider.d.ts +25 -0
  283. package/dist/cjs/workflow-data-proxy-env-provider.d.ts.map +1 -0
  284. package/dist/cjs/workflow-data-proxy-env-provider.js +70 -0
  285. package/dist/cjs/workflow-data-proxy-env-provider.js.map +1 -0
  286. package/dist/{workflow-data-proxy-helpers.d.ts → cjs/workflow-data-proxy-helpers.d.ts} +1 -0
  287. package/dist/cjs/workflow-data-proxy-helpers.d.ts.map +1 -0
  288. package/dist/cjs/workflow-data-proxy-helpers.js +20 -0
  289. package/dist/cjs/workflow-data-proxy-helpers.js.map +1 -0
  290. package/dist/{workflow-data-proxy.d.ts → cjs/workflow-data-proxy.d.ts} +45 -0
  291. package/dist/cjs/workflow-data-proxy.d.ts.map +1 -0
  292. package/dist/cjs/workflow-data-proxy.js +1189 -0
  293. package/dist/cjs/workflow-data-proxy.js.map +1 -0
  294. package/dist/cjs/workflow.d.ts +157 -0
  295. package/dist/cjs/workflow.d.ts.map +1 -0
  296. package/dist/cjs/workflow.js +765 -0
  297. package/dist/cjs/workflow.js.map +1 -0
  298. package/dist/esm/augment-object.d.ts +3 -0
  299. package/dist/esm/augment-object.d.ts.map +1 -0
  300. package/dist/{augment-object.js → esm/augment-object.js} +9 -6
  301. package/dist/esm/augment-object.js.map +1 -0
  302. package/dist/esm/constants.d.ts +73 -0
  303. package/dist/esm/constants.d.ts.map +1 -0
  304. package/dist/esm/constants.js +99 -0
  305. package/dist/esm/constants.js.map +1 -0
  306. package/dist/esm/cron.d.ts +35 -0
  307. package/dist/esm/cron.d.ts.map +1 -0
  308. package/dist/{cron.js → esm/cron.js} +4 -8
  309. package/dist/esm/cron.js.map +1 -0
  310. package/dist/esm/deferred-promise.d.ts +10 -0
  311. package/dist/esm/deferred-promise.d.ts.map +1 -0
  312. package/dist/esm/deferred-promise.js +9 -0
  313. package/dist/esm/deferred-promise.js.map +1 -0
  314. package/dist/esm/errors/abstract/execution-base.error.d.ts +28 -0
  315. package/dist/esm/errors/abstract/execution-base.error.d.ts.map +1 -0
  316. package/dist/{errors → esm/errors}/abstract/execution-base.error.js +9 -8
  317. package/dist/esm/errors/abstract/execution-base.error.js.map +1 -0
  318. package/dist/esm/errors/abstract/node.error.d.ts +48 -0
  319. package/dist/esm/errors/abstract/node.error.d.ts.map +1 -0
  320. package/dist/{errors → esm/errors}/abstract/node.error.js +52 -12
  321. package/dist/esm/errors/abstract/node.error.js.map +1 -0
  322. package/dist/esm/errors/application.error.d.ts +13 -0
  323. package/dist/esm/errors/application.error.d.ts.map +1 -0
  324. package/dist/esm/errors/application.error.js +24 -0
  325. package/dist/esm/errors/application.error.js.map +1 -0
  326. package/dist/esm/errors/base/base.error.d.ts +26 -0
  327. package/dist/esm/errors/base/base.error.d.ts.map +1 -0
  328. package/dist/{errors → esm/errors}/base/base.error.js +20 -10
  329. package/dist/esm/errors/base/base.error.js.map +1 -0
  330. package/dist/esm/errors/base/operational.error.d.ts +16 -0
  331. package/dist/esm/errors/base/operational.error.d.ts.map +1 -0
  332. package/dist/esm/errors/base/operational.error.js +15 -0
  333. package/dist/esm/errors/base/operational.error.js.map +1 -0
  334. package/dist/esm/errors/base/unexpected.error.d.ts +16 -0
  335. package/dist/esm/errors/base/unexpected.error.d.ts.map +1 -0
  336. package/dist/esm/errors/base/unexpected.error.js +15 -0
  337. package/dist/esm/errors/base/unexpected.error.js.map +1 -0
  338. package/dist/esm/errors/base/user.error.d.ts +18 -0
  339. package/dist/esm/errors/base/user.error.d.ts.map +1 -0
  340. package/dist/esm/errors/base/user.error.js +15 -0
  341. package/dist/esm/errors/base/user.error.js.map +1 -0
  342. package/dist/esm/errors/cli-subworkflow-operation.error.d.ts +4 -0
  343. package/dist/esm/errors/cli-subworkflow-operation.error.d.ts.map +1 -0
  344. package/dist/esm/errors/cli-subworkflow-operation.error.js +4 -0
  345. package/dist/esm/errors/cli-subworkflow-operation.error.js.map +1 -0
  346. package/dist/esm/errors/db-connection-timeout-error.d.ts +9 -0
  347. package/dist/esm/errors/db-connection-timeout-error.d.ts.map +1 -0
  348. package/dist/{errors → esm/errors}/db-connection-timeout-error.js +2 -6
  349. package/dist/esm/errors/db-connection-timeout-error.js.map +1 -0
  350. package/dist/esm/errors/ensure-error.d.ts +3 -0
  351. package/dist/esm/errors/ensure-error.d.ts.map +1 -0
  352. package/dist/esm/errors/ensure-error.js +10 -0
  353. package/dist/esm/errors/ensure-error.js.map +1 -0
  354. package/dist/esm/errors/error.types.d.ts +12 -0
  355. package/dist/esm/errors/error.types.d.ts.map +1 -0
  356. package/dist/esm/errors/error.types.js +2 -0
  357. package/dist/esm/errors/error.types.js.map +1 -0
  358. package/dist/esm/errors/execution-cancelled.error.d.ts +5 -0
  359. package/dist/esm/errors/execution-cancelled.error.d.ts.map +1 -0
  360. package/dist/esm/errors/execution-cancelled.error.js +10 -0
  361. package/dist/esm/errors/execution-cancelled.error.js.map +1 -0
  362. package/dist/esm/errors/expression-extension.error.d.ts +4 -0
  363. package/dist/esm/errors/expression-extension.error.d.ts.map +1 -0
  364. package/dist/esm/errors/expression-extension.error.js +4 -0
  365. package/dist/esm/errors/expression-extension.error.js.map +1 -0
  366. package/dist/esm/errors/expression.error.d.ts +22 -0
  367. package/dist/esm/errors/expression.error.d.ts.map +1 -0
  368. package/dist/{errors → esm/errors}/expression.error.js +5 -6
  369. package/dist/esm/errors/expression.error.js.map +1 -0
  370. package/dist/esm/errors/index.d.ts +24 -0
  371. package/dist/esm/errors/index.d.ts.map +1 -0
  372. package/dist/esm/errors/index.js +23 -0
  373. package/dist/esm/errors/index.js.map +1 -0
  374. package/dist/esm/errors/node-api.error.d.ts +39 -0
  375. package/dist/esm/errors/node-api.error.d.ts.map +1 -0
  376. package/dist/{errors → esm/errors}/node-api.error.js +55 -19
  377. package/dist/esm/errors/node-api.error.js.map +1 -0
  378. package/dist/esm/errors/node-operation.error.d.ts +11 -0
  379. package/dist/esm/errors/node-operation.error.d.ts.map +1 -0
  380. package/dist/{errors → esm/errors}/node-operation.error.js +9 -9
  381. package/dist/esm/errors/node-operation.error.js.map +1 -0
  382. package/dist/esm/errors/node-ssl.error.d.ts +5 -0
  383. package/dist/esm/errors/node-ssl.error.d.ts.map +1 -0
  384. package/dist/esm/errors/node-ssl.error.js +7 -0
  385. package/dist/esm/errors/node-ssl.error.js.map +1 -0
  386. package/dist/esm/errors/subworkflow-operation.error.d.ts +7 -0
  387. package/dist/esm/errors/subworkflow-operation.error.d.ts.map +1 -0
  388. package/dist/esm/errors/subworkflow-operation.error.js +16 -0
  389. package/dist/esm/errors/subworkflow-operation.error.js.map +1 -0
  390. package/dist/esm/errors/trigger-close.error.d.ts +12 -0
  391. package/dist/esm/errors/trigger-close.error.d.ts.map +1 -0
  392. package/dist/esm/errors/trigger-close.error.js +10 -0
  393. package/dist/esm/errors/trigger-close.error.js.map +1 -0
  394. package/dist/esm/errors/webhook-taken.error.d.ts +5 -0
  395. package/dist/esm/errors/webhook-taken.error.d.ts.map +1 -0
  396. package/dist/esm/errors/webhook-taken.error.js +7 -0
  397. package/dist/esm/errors/webhook-taken.error.js.map +1 -0
  398. package/dist/esm/errors/workflow-activation.error.d.ts +20 -0
  399. package/dist/esm/errors/workflow-activation.error.d.ts.map +1 -0
  400. package/dist/{errors → esm/errors}/workflow-activation.error.js +12 -11
  401. package/dist/esm/errors/workflow-activation.error.js.map +1 -0
  402. package/dist/esm/errors/workflow-deactivation.error.d.ts +4 -0
  403. package/dist/esm/errors/workflow-deactivation.error.d.ts.map +1 -0
  404. package/dist/esm/errors/workflow-deactivation.error.js +4 -0
  405. package/dist/esm/errors/workflow-deactivation.error.js.map +1 -0
  406. package/dist/esm/errors/workflow-operation.error.d.ts +11 -0
  407. package/dist/esm/errors/workflow-operation.error.d.ts.map +1 -0
  408. package/dist/esm/errors/workflow-operation.error.js +18 -0
  409. package/dist/esm/errors/workflow-operation.error.js.map +1 -0
  410. package/dist/esm/execution-status.d.ts +3 -0
  411. package/dist/esm/execution-status.d.ts.map +1 -0
  412. package/dist/esm/execution-status.js +11 -0
  413. package/dist/esm/execution-status.js.map +1 -0
  414. package/dist/esm/expression-evaluator-proxy.d.ts +6 -0
  415. package/dist/esm/expression-evaluator-proxy.d.ts.map +1 -0
  416. package/dist/esm/expression-evaluator-proxy.js +15 -0
  417. package/dist/esm/expression-evaluator-proxy.js.map +1 -0
  418. package/dist/esm/expression-sandboxing.d.ts +5 -0
  419. package/dist/esm/expression-sandboxing.d.ts.map +1 -0
  420. package/dist/esm/expression-sandboxing.js +47 -0
  421. package/dist/esm/expression-sandboxing.js.map +1 -0
  422. package/dist/esm/expression.d.ts +46 -0
  423. package/dist/esm/expression.d.ts.map +1 -0
  424. package/dist/{expression.js → esm/expression.js} +125 -44
  425. package/dist/esm/expression.js.map +1 -0
  426. package/dist/esm/expressions/expression-helpers.d.ts +6 -0
  427. package/dist/esm/expressions/expression-helpers.d.ts.map +1 -0
  428. package/dist/esm/expressions/expression-helpers.js +10 -0
  429. package/dist/esm/expressions/expression-helpers.js.map +1 -0
  430. package/dist/esm/extensions/array-extensions.d.ts +33 -0
  431. package/dist/esm/extensions/array-extensions.d.ts.map +1 -0
  432. package/dist/{extensions → esm/extensions}/array-extensions.js +41 -42
  433. package/dist/esm/extensions/array-extensions.js.map +1 -0
  434. package/dist/esm/extensions/boolean-extensions.d.ts +6 -0
  435. package/dist/esm/extensions/boolean-extensions.d.ts.map +1 -0
  436. package/dist/{extensions → esm/extensions}/boolean-extensions.js +4 -10
  437. package/dist/esm/extensions/boolean-extensions.js.map +1 -0
  438. package/dist/esm/extensions/date-extensions.d.ts +3 -0
  439. package/dist/esm/extensions/date-extensions.d.ts.map +1 -0
  440. package/dist/{extensions → esm/extensions}/date-extensions.js +27 -29
  441. package/dist/esm/extensions/date-extensions.js.map +1 -0
  442. package/dist/esm/extensions/expression-extension.d.ts +32 -0
  443. package/dist/esm/extensions/expression-extension.d.ts.map +1 -0
  444. package/dist/esm/extensions/expression-extension.js +474 -0
  445. package/dist/esm/extensions/expression-extension.js.map +1 -0
  446. package/dist/esm/extensions/expression-parser.d.ts +14 -0
  447. package/dist/esm/extensions/expression-parser.d.ts.map +1 -0
  448. package/dist/{extensions → esm/extensions}/expression-parser.js +9 -11
  449. package/dist/esm/extensions/expression-parser.js.map +1 -0
  450. package/dist/esm/extensions/extended-functions.d.ts +28 -0
  451. package/dist/esm/extensions/extended-functions.d.ts.map +1 -0
  452. package/dist/{extensions → esm/extensions}/extended-functions.js +8 -10
  453. package/dist/esm/extensions/extended-functions.js.map +1 -0
  454. package/dist/esm/extensions/extensions.d.ts +42 -0
  455. package/dist/esm/extensions/extensions.d.ts.map +1 -0
  456. package/dist/esm/extensions/extensions.js +2 -0
  457. package/dist/esm/extensions/extensions.js.map +1 -0
  458. package/dist/esm/extensions/index.d.ts +3 -0
  459. package/dist/esm/extensions/index.d.ts.map +1 -0
  460. package/dist/esm/extensions/index.js +2 -0
  461. package/dist/esm/extensions/index.js.map +1 -0
  462. package/dist/esm/extensions/number-extensions.d.ts +27 -0
  463. package/dist/esm/extensions/number-extensions.d.ts.map +1 -0
  464. package/dist/{extensions → esm/extensions}/number-extensions.js +14 -15
  465. package/dist/esm/extensions/number-extensions.js.map +1 -0
  466. package/dist/esm/extensions/object-extensions.d.ts +46 -0
  467. package/dist/esm/extensions/object-extensions.d.ts.map +1 -0
  468. package/dist/{extensions → esm/extensions}/object-extensions.js +18 -21
  469. package/dist/esm/extensions/object-extensions.js.map +1 -0
  470. package/dist/esm/extensions/string-extensions.d.ts +38 -0
  471. package/dist/esm/extensions/string-extensions.d.ts.map +1 -0
  472. package/dist/{extensions → esm/extensions}/string-extensions.js +121 -40
  473. package/dist/esm/extensions/string-extensions.js.map +1 -0
  474. package/dist/esm/extensions/utils.d.ts +4 -0
  475. package/dist/esm/extensions/utils.d.ts.map +1 -0
  476. package/dist/esm/extensions/utils.js +27 -0
  477. package/dist/esm/extensions/utils.js.map +1 -0
  478. package/dist/esm/from-ai-parse-utils.d.ts +44 -0
  479. package/dist/esm/from-ai-parse-utils.d.ts.map +1 -0
  480. package/dist/{from-ai-parse-utils.js → esm/from-ai-parse-utils.js} +63 -18
  481. package/dist/esm/from-ai-parse-utils.js.map +1 -0
  482. package/dist/esm/global-state.d.ts +6 -0
  483. package/dist/esm/global-state.d.ts.map +1 -0
  484. package/dist/esm/global-state.js +9 -0
  485. package/dist/esm/global-state.js.map +1 -0
  486. package/dist/esm/graph/graph-utils.d.ts +57 -0
  487. package/dist/esm/graph/graph-utils.d.ts.map +1 -0
  488. package/dist/{graph → esm/graph}/graph-utils.js +35 -16
  489. package/dist/esm/graph/graph-utils.js.map +1 -0
  490. package/dist/esm/index.d.ts +49 -0
  491. package/dist/esm/index.d.ts.map +1 -0
  492. package/dist/esm/index.js +33 -0
  493. package/dist/esm/index.js.map +1 -0
  494. package/dist/esm/interfaces.d.ts +2172 -0
  495. package/dist/esm/interfaces.d.ts.map +1 -0
  496. package/dist/{interfaces.js → esm/interfaces.js} +13 -11
  497. package/dist/esm/interfaces.js.map +1 -0
  498. package/dist/esm/logger-proxy.d.ts +7 -0
  499. package/dist/esm/logger-proxy.d.ts.map +1 -0
  500. package/dist/esm/logger-proxy.js +12 -0
  501. package/dist/esm/logger-proxy.js.map +1 -0
  502. package/dist/esm/message-event-bus.d.ts +107 -0
  503. package/dist/esm/message-event-bus.d.ts.map +1 -0
  504. package/dist/{message-event-bus.js → esm/message-event-bus.js} +26 -23
  505. package/dist/esm/message-event-bus.js.map +1 -0
  506. package/dist/esm/metadata-utils.d.ts +5 -0
  507. package/dist/esm/metadata-utils.d.ts.map +1 -0
  508. package/dist/{metadata-utils.js → esm/metadata-utils.js} +6 -7
  509. package/dist/esm/metadata-utils.js.map +1 -0
  510. package/dist/esm/native-methods/array.methods.d.ts +3 -0
  511. package/dist/esm/native-methods/array.methods.d.ts.map +1 -0
  512. package/dist/{native-methods → esm/native-methods}/array.methods.js +1 -4
  513. package/dist/esm/native-methods/array.methods.js.map +1 -0
  514. package/dist/esm/native-methods/boolean.methods.d.ts +3 -0
  515. package/dist/esm/native-methods/boolean.methods.d.ts.map +1 -0
  516. package/dist/{native-methods → esm/native-methods}/boolean.methods.js +1 -4
  517. package/dist/esm/native-methods/boolean.methods.js.map +1 -0
  518. package/dist/esm/native-methods/index.d.ts +4 -0
  519. package/dist/esm/native-methods/index.d.ts.map +1 -0
  520. package/dist/esm/native-methods/index.js +14 -0
  521. package/dist/esm/native-methods/index.js.map +1 -0
  522. package/dist/esm/native-methods/number.methods.d.ts +3 -0
  523. package/dist/esm/native-methods/number.methods.d.ts.map +1 -0
  524. package/dist/{native-methods → esm/native-methods}/number.methods.js +1 -4
  525. package/dist/esm/native-methods/number.methods.js.map +1 -0
  526. package/dist/esm/native-methods/object.methods.d.ts +3 -0
  527. package/dist/esm/native-methods/object.methods.d.ts.map +1 -0
  528. package/dist/esm/native-methods/object.methods.js +5 -0
  529. package/dist/esm/native-methods/object.methods.js.map +1 -0
  530. package/dist/esm/native-methods/string.methods.d.ts +3 -0
  531. package/dist/esm/native-methods/string.methods.d.ts.map +1 -0
  532. package/dist/{native-methods → esm/native-methods}/string.methods.js +1 -4
  533. package/dist/esm/native-methods/string.methods.js.map +1 -0
  534. package/dist/esm/node-helpers.d.ts +145 -0
  535. package/dist/esm/node-helpers.d.ts.map +1 -0
  536. package/dist/{node-helpers.js → esm/node-helpers.js} +302 -106
  537. package/dist/esm/node-helpers.js.map +1 -0
  538. package/dist/esm/node-parameters/filter-parameter.d.ts +21 -0
  539. package/dist/esm/node-parameters/filter-parameter.d.ts.map +1 -0
  540. package/dist/{node-parameters → esm/node-parameters}/filter-parameter.js +13 -51
  541. package/dist/esm/node-parameters/filter-parameter.js.map +1 -0
  542. package/dist/esm/node-parameters/rename-node-utils.d.ts +3 -0
  543. package/dist/esm/node-parameters/rename-node-utils.d.ts.map +1 -0
  544. package/dist/{node-parameters → esm/node-parameters}/rename-node-utils.js +4 -5
  545. package/dist/esm/node-parameters/rename-node-utils.js.map +1 -0
  546. package/dist/esm/node-reference-parser-utils.d.ts +20 -0
  547. package/dist/esm/node-reference-parser-utils.d.ts.map +1 -0
  548. package/dist/{node-reference-parser-utils.js → esm/node-reference-parser-utils.js} +135 -46
  549. package/dist/esm/node-reference-parser-utils.js.map +1 -0
  550. package/dist/esm/observable-object.d.ts +7 -0
  551. package/dist/esm/observable-object.d.ts.map +1 -0
  552. package/dist/{observable-object.js → esm/observable-object.js} +13 -5
  553. package/dist/esm/observable-object.js.map +1 -0
  554. package/dist/esm/result.d.ts +19 -0
  555. package/dist/esm/result.d.ts.map +1 -0
  556. package/dist/esm/result.js +25 -0
  557. package/dist/esm/result.js.map +1 -0
  558. package/dist/esm/telemetry-helpers.d.ts +45 -0
  559. package/dist/esm/telemetry-helpers.d.ts.map +1 -0
  560. package/dist/{telemetry-helpers.js → esm/telemetry-helpers.js} +67 -62
  561. package/dist/esm/telemetry-helpers.js.map +1 -0
  562. package/dist/esm/type-guards.d.ts +12 -0
  563. package/dist/esm/type-guards.d.ts.map +1 -0
  564. package/dist/esm/type-guards.js +33 -0
  565. package/dist/esm/type-guards.js.map +1 -0
  566. package/dist/esm/type-validation.d.ts +22 -0
  567. package/dist/esm/type-validation.d.ts.map +1 -0
  568. package/dist/{type-validation.js → esm/type-validation.js} +66 -78
  569. package/dist/esm/type-validation.js.map +1 -0
  570. package/dist/esm/typecheck.tsbuildinfo +1 -0
  571. package/dist/esm/utils.d.ts +94 -0
  572. package/dist/esm/utils.d.ts.map +1 -0
  573. package/dist/esm/utils.js +300 -0
  574. package/dist/esm/utils.js.map +1 -0
  575. package/dist/esm/versioned-node-type.d.ts +10 -0
  576. package/dist/esm/versioned-node-type.d.ts.map +1 -0
  577. package/dist/{versioned-node-type.js → esm/versioned-node-type.js} +4 -5
  578. package/dist/esm/versioned-node-type.js.map +1 -0
  579. package/dist/esm/workflow-data-proxy-env-provider.d.ts +25 -0
  580. package/dist/esm/workflow-data-proxy-env-provider.d.ts.map +1 -0
  581. package/dist/{workflow-data-proxy-env-provider.js → esm/workflow-data-proxy-env-provider.js} +22 -9
  582. package/dist/esm/workflow-data-proxy-env-provider.js.map +1 -0
  583. package/dist/esm/workflow-data-proxy-helpers.d.ts +3 -0
  584. package/dist/esm/workflow-data-proxy-helpers.d.ts.map +1 -0
  585. package/dist/esm/workflow-data-proxy-helpers.js +7 -0
  586. package/dist/esm/workflow-data-proxy-helpers.js.map +1 -0
  587. package/dist/esm/workflow-data-proxy.d.ts +80 -0
  588. package/dist/esm/workflow-data-proxy.d.ts.map +1 -0
  589. package/dist/{workflow-data-proxy.js → esm/workflow-data-proxy.js} +174 -109
  590. package/dist/esm/workflow-data-proxy.js.map +1 -0
  591. package/dist/esm/workflow.d.ts +157 -0
  592. package/dist/esm/workflow.d.ts.map +1 -0
  593. package/dist/{workflow.js → esm/workflow.js} +223 -73
  594. package/dist/esm/workflow.js.map +1 -0
  595. package/package.json +18 -14
  596. package/dist/augment-object.js.map +0 -1
  597. package/dist/build.tsbuildinfo +0 -1
  598. package/dist/constants.js +0 -89
  599. package/dist/constants.js.map +0 -1
  600. package/dist/cron.js.map +0 -1
  601. package/dist/deferred-promise.js +0 -12
  602. package/dist/deferred-promise.js.map +0 -1
  603. package/dist/errors/abstract/execution-base.error.js.map +0 -1
  604. package/dist/errors/abstract/node.error.d.ts +0 -12
  605. package/dist/errors/abstract/node.error.js.map +0 -1
  606. package/dist/errors/application.error.js +0 -24
  607. package/dist/errors/application.error.js.map +0 -1
  608. package/dist/errors/base/base.error.js.map +0 -1
  609. package/dist/errors/base/operational.error.js +0 -12
  610. package/dist/errors/base/operational.error.js.map +0 -1
  611. package/dist/errors/base/unexpected.error.js +0 -12
  612. package/dist/errors/base/unexpected.error.js.map +0 -1
  613. package/dist/errors/base/user.error.js +0 -12
  614. package/dist/errors/base/user.error.js.map +0 -1
  615. package/dist/errors/cli-subworkflow-operation.error.js +0 -8
  616. package/dist/errors/cli-subworkflow-operation.error.js.map +0 -1
  617. package/dist/errors/db-connection-timeout-error.js.map +0 -1
  618. package/dist/errors/ensure-error.d.ts +0 -1
  619. package/dist/errors/ensure-error.js +0 -11
  620. package/dist/errors/ensure-error.js.map +0 -1
  621. package/dist/errors/error.types.js +0 -3
  622. package/dist/errors/execution-cancelled.error.js +0 -14
  623. package/dist/errors/execution-cancelled.error.js.map +0 -1
  624. package/dist/errors/expression-extension.error.js +0 -8
  625. package/dist/errors/expression-extension.error.js.map +0 -1
  626. package/dist/errors/expression.error.js.map +0 -1
  627. package/dist/errors/index.js +0 -48
  628. package/dist/errors/index.js.map +0 -1
  629. package/dist/errors/node-api.error.js.map +0 -1
  630. package/dist/errors/node-operation.error.js.map +0 -1
  631. package/dist/errors/node-ssl.error.js +0 -11
  632. package/dist/errors/node-ssl.error.js.map +0 -1
  633. package/dist/errors/subworkflow-operation.error.js +0 -19
  634. package/dist/errors/subworkflow-operation.error.js.map +0 -1
  635. package/dist/errors/trigger-close.error.js +0 -13
  636. package/dist/errors/trigger-close.error.js.map +0 -1
  637. package/dist/errors/webhook-taken.error.js +0 -11
  638. package/dist/errors/webhook-taken.error.js.map +0 -1
  639. package/dist/errors/workflow-activation.error.js.map +0 -1
  640. package/dist/errors/workflow-deactivation.error.js +0 -8
  641. package/dist/errors/workflow-deactivation.error.js.map +0 -1
  642. package/dist/errors/workflow-operation.error.js +0 -17
  643. package/dist/errors/workflow-operation.error.js.map +0 -1
  644. package/dist/execution-status.js +0 -14
  645. package/dist/execution-status.js.map +0 -1
  646. package/dist/expression-evaluator-proxy.js +0 -20
  647. package/dist/expression-evaluator-proxy.js.map +0 -1
  648. package/dist/expression-sandboxing.js +0 -43
  649. package/dist/expression-sandboxing.js.map +0 -1
  650. package/dist/expression.js.map +0 -1
  651. package/dist/extensions/array-extensions.js.map +0 -1
  652. package/dist/extensions/boolean-extensions.js.map +0 -1
  653. package/dist/extensions/date-extensions.js.map +0 -1
  654. package/dist/extensions/expression-extension.js +0 -362
  655. package/dist/extensions/expression-extension.js.map +0 -1
  656. package/dist/extensions/expression-parser.js.map +0 -1
  657. package/dist/extensions/extended-functions.js.map +0 -1
  658. package/dist/extensions/extensions.js +0 -3
  659. package/dist/extensions/extensions.js.map +0 -1
  660. package/dist/extensions/index.js +0 -11
  661. package/dist/extensions/index.js.map +0 -1
  662. package/dist/extensions/number-extensions.js.map +0 -1
  663. package/dist/extensions/object-extensions.js.map +0 -1
  664. package/dist/extensions/string-extensions.js.map +0 -1
  665. package/dist/extensions/utils.js +0 -31
  666. package/dist/extensions/utils.js.map +0 -1
  667. package/dist/from-ai-parse-utils.d.ts +0 -12
  668. package/dist/from-ai-parse-utils.js.map +0 -1
  669. package/dist/global-state.js +0 -13
  670. package/dist/global-state.js.map +0 -1
  671. package/dist/graph/graph-utils.js.map +0 -1
  672. package/dist/index.js +0 -103
  673. package/dist/index.js.map +0 -1
  674. package/dist/interfaces.js.map +0 -1
  675. package/dist/logger-proxy.js +0 -16
  676. package/dist/logger-proxy.js.map +0 -1
  677. package/dist/message-event-bus.js.map +0 -1
  678. package/dist/metadata-utils.js.map +0 -1
  679. package/dist/native-methods/array.methods.js.map +0 -1
  680. package/dist/native-methods/boolean.methods.js.map +0 -1
  681. package/dist/native-methods/index.js +0 -17
  682. package/dist/native-methods/index.js.map +0 -1
  683. package/dist/native-methods/number.methods.js.map +0 -1
  684. package/dist/native-methods/object.methods.js +0 -8
  685. package/dist/native-methods/object.methods.js.map +0 -1
  686. package/dist/native-methods/string.methods.js.map +0 -1
  687. package/dist/node-helpers.js.map +0 -1
  688. package/dist/node-parameters/filter-parameter.js.map +0 -1
  689. package/dist/node-parameters/rename-node-utils.js.map +0 -1
  690. package/dist/node-reference-parser-utils.js.map +0 -1
  691. package/dist/observable-object.js.map +0 -1
  692. package/dist/result.js +0 -25
  693. package/dist/result.js.map +0 -1
  694. package/dist/telemetry-helpers.js.map +0 -1
  695. package/dist/type-guards.js +0 -46
  696. package/dist/type-guards.js.map +0 -1
  697. package/dist/type-validation.js.map +0 -1
  698. package/dist/utils.js +0 -259
  699. package/dist/utils.js.map +0 -1
  700. package/dist/versioned-node-type.js.map +0 -1
  701. package/dist/workflow-data-proxy-env-provider.d.ts +0 -7
  702. package/dist/workflow-data-proxy-env-provider.js.map +0 -1
  703. package/dist/workflow-data-proxy-helpers.js +0 -10
  704. package/dist/workflow-data-proxy-helpers.js.map +0 -1
  705. package/dist/workflow-data-proxy.js.map +0 -1
  706. package/dist/workflow.d.ts +0 -54
  707. package/dist/workflow.js.map +0 -1
@@ -1,44 +1,18 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getUpdatedToolDescription = exports.cronNodeOptions = void 0;
7
- exports.isSubNodeType = isSubNodeType;
8
- exports.displayParameter = displayParameter;
9
- exports.displayParameterPath = displayParameterPath;
10
- exports.getContext = getContext;
11
- exports.getNodeParameters = getNodeParameters;
12
- exports.getNodeWebhookPath = getNodeWebhookPath;
13
- exports.getNodeWebhookUrl = getNodeWebhookUrl;
14
- exports.getConnectionTypes = getConnectionTypes;
15
- exports.getNodeInputs = getNodeInputs;
16
- exports.getNodeOutputs = getNodeOutputs;
17
- exports.getNodeParametersIssues = getNodeParametersIssues;
18
- exports.getParameterValueByPath = getParameterValueByPath;
19
- exports.getParameterIssues = getParameterIssues;
20
- exports.mergeIssues = mergeIssues;
21
- exports.mergeNodeProperties = mergeNodeProperties;
22
- exports.getVersionedNodeType = getVersionedNodeType;
23
- exports.isTriggerNode = isTriggerNode;
24
- exports.isExecutable = isExecutable;
25
- exports.isNodeWithWorkflowSelector = isNodeWithWorkflowSelector;
26
- exports.makeDescription = makeDescription;
27
- exports.isTool = isTool;
28
- exports.makeNodeName = makeNodeName;
29
- exports.isDefaultNodeName = isDefaultNodeName;
30
- exports.getToolDescriptionForNode = getToolDescriptionForNode;
31
- exports.getSubworkflowId = getSubworkflowId;
32
- const get_1 = __importDefault(require("lodash/get"));
33
- const isEqual_1 = __importDefault(require("lodash/isEqual"));
34
- const constants_1 = require("./constants");
35
- const application_error_1 = require("./errors/application.error");
36
- const interfaces_1 = require("./interfaces");
37
- const filter_parameter_1 = require("./node-parameters/filter-parameter");
38
- const type_guards_1 = require("./type-guards");
39
- const type_validation_1 = require("./type-validation");
40
- const utils_1 = require("./utils");
41
- exports.cronNodeOptions = [
1
+ /* eslint-disable @typescript-eslint/no-unsafe-argument */
2
+ /* eslint-disable @typescript-eslint/no-use-before-define */
3
+ /* eslint-disable @typescript-eslint/no-unsafe-assignment */
4
+ /* eslint-disable @typescript-eslint/prefer-nullish-coalescing */
5
+ /* eslint-disable prefer-spread */
6
+ import get from 'lodash/get';
7
+ import isEqual from 'lodash/isEqual';
8
+ import { EXECUTE_WORKFLOW_NODE_TYPE, WORKFLOW_TOOL_LANGCHAIN_NODE_TYPE } from './constants';
9
+ import { ApplicationError } from './errors/application.error';
10
+ import { NodeConnectionTypes } from './interfaces';
11
+ import { validateFilterParameter } from './node-parameters/filter-parameter';
12
+ import { isFilterValue, isINodePropertyOptionsList, isResourceLocatorValue, isResourceMapperValue, isValidResourceLocatorParameterValue, } from './type-guards';
13
+ import { validateFieldType } from './type-validation';
14
+ import { deepCopy } from './utils';
15
+ export const cronNodeOptions = [
42
16
  {
43
17
  name: 'item',
44
18
  displayName: 'Item',
@@ -223,19 +197,24 @@ exports.cronNodeOptions = [
223
197
  ],
224
198
  },
225
199
  ];
226
- function isSubNodeType(typeDescription) {
200
+ /**
201
+ * Determines if the provided node type has any output types other than the main connection type.
202
+ * @param typeDescription The node's type description to check.
203
+ */
204
+ export function isSubNodeType(typeDescription) {
227
205
  if (!typeDescription?.outputs || typeof typeDescription.outputs === 'string') {
228
206
  return false;
229
207
  }
230
208
  const outputTypes = getConnectionTypes(typeDescription.outputs);
231
209
  return outputTypes
232
- ? outputTypes.filter((output) => output !== interfaces_1.NodeConnectionTypes.Main).length > 0
210
+ ? outputTypes.filter((output) => output !== NodeConnectionTypes.Main).length > 0
233
211
  : false;
234
212
  }
235
213
  const getPropertyValues = (nodeValues, propertyName, node, nodeTypeDescription, nodeValuesRoot) => {
236
214
  let value;
237
215
  if (propertyName.charAt(0) === '/') {
238
- value = (0, get_1.default)(nodeValuesRoot, propertyName.slice(1));
216
+ // Get the value from the root of the node
217
+ value = get(nodeValuesRoot, propertyName.slice(1));
239
218
  }
240
219
  else if (propertyName === '@version') {
241
220
  value = node?.typeVersion || 0;
@@ -244,7 +223,8 @@ const getPropertyValues = (nodeValues, propertyName, node, nodeTypeDescription,
244
223
  value = nodeTypeDescription?.name.endsWith('Tool') ?? false;
245
224
  }
246
225
  else {
247
- value = (0, get_1.default)(nodeValues, propertyName);
226
+ // Get the value from current level
227
+ value = get(nodeValues, propertyName);
248
228
  }
249
229
  if (value && typeof value === 'object' && '__rl' in value && value.__rl) {
250
230
  value = value.value;
@@ -265,10 +245,10 @@ const checkConditions = (conditions, actualValues) => {
265
245
  const [key, targetValue] = Object.entries(condition._cnd)[0];
266
246
  return actualValues.every((propertyValue) => {
267
247
  if (key === 'eq') {
268
- return (0, isEqual_1.default)(propertyValue, targetValue);
248
+ return isEqual(propertyValue, targetValue);
269
249
  }
270
250
  if (key === 'not') {
271
- return !(0, isEqual_1.default)(propertyValue, targetValue);
251
+ return !isEqual(propertyValue, targetValue);
272
252
  }
273
253
  if (key === 'gte') {
274
254
  return propertyValue >= targetValue;
@@ -307,13 +287,23 @@ const checkConditions = (conditions, actualValues) => {
307
287
  return actualValues.includes(condition);
308
288
  });
309
289
  };
310
- function displayParameter(nodeValues, parameter, node, nodeTypeDescription, nodeValuesRoot, displayKey = 'displayOptions') {
290
+ /**
291
+ * Returns if the parameter should be displayed or not
292
+ *
293
+ * @param {INodeParameters} nodeValues The data on the node which decides if the parameter
294
+ * should be displayed
295
+ * @param {(INodeProperties | INodeCredentialDescription)} parameter The parameter to check if it should be displayed
296
+ * @param {INodeParameters} [nodeValuesRoot] The root node-parameter-data
297
+ */
298
+ export function displayParameter(nodeValues, parameter, node, // Allow null as it does also get used by credentials and they do not have versioning yet
299
+ nodeTypeDescription, nodeValuesRoot, displayKey = 'displayOptions') {
311
300
  if (!parameter[displayKey]) {
312
301
  return true;
313
302
  }
314
303
  const { show, hide } = parameter[displayKey];
315
304
  nodeValuesRoot = nodeValuesRoot || nodeValues;
316
305
  if (show) {
306
+ // All the defined rules have to match to display parameter
317
307
  for (const propertyName of Object.keys(show)) {
318
308
  const values = getPropertyValues(nodeValues, propertyName, node, nodeTypeDescription, nodeValuesRoot);
319
309
  if (values.some((v) => typeof v === 'string' && v.charAt(0) === '=')) {
@@ -325,6 +315,7 @@ function displayParameter(nodeValues, parameter, node, nodeTypeDescription, node
325
315
  }
326
316
  }
327
317
  if (hide) {
318
+ // Any of the defined hide rules have to match to hide the parameter
328
319
  for (const propertyName of Object.keys(hide)) {
329
320
  const values = getPropertyValues(nodeValues, propertyName, node, nodeTypeDescription, nodeValuesRoot);
330
321
  if (values.length !== 0 && checkConditions(hide[propertyName], values)) {
@@ -334,20 +325,38 @@ function displayParameter(nodeValues, parameter, node, nodeTypeDescription, node
334
325
  }
335
326
  return true;
336
327
  }
337
- function displayParameterPath(nodeValues, parameter, path, node, nodeTypeDescription, displayKey = 'displayOptions') {
328
+ /**
329
+ * Returns if the given parameter should be displayed or not considering the path
330
+ * to the properties
331
+ *
332
+ * @param {INodeParameters} nodeValues The data on the node which decides if the parameter
333
+ * should be displayed
334
+ * @param {(INodeProperties | INodeCredentialDescription)} parameter The parameter to check if it should be displayed
335
+ * @param {string} path The path to the property
336
+ */
337
+ export function displayParameterPath(nodeValues, parameter, path, node, nodeTypeDescription, displayKey = 'displayOptions') {
338
338
  let resolvedNodeValues = nodeValues;
339
339
  if (path !== '') {
340
- resolvedNodeValues = (0, get_1.default)(nodeValues, path);
340
+ resolvedNodeValues = get(nodeValues, path);
341
341
  }
342
+ // Get the root parameter data
342
343
  let nodeValuesRoot = nodeValues;
343
344
  if (path && path.split('.').indexOf('parameters') === 0) {
344
- nodeValuesRoot = (0, get_1.default)(nodeValues, 'parameters');
345
+ nodeValuesRoot = get(nodeValues, 'parameters');
345
346
  }
346
347
  return displayParameter(resolvedNodeValues, parameter, node, nodeTypeDescription, nodeValuesRoot, displayKey);
347
348
  }
348
- function getContext(runExecutionData, type, node) {
349
+ /**
350
+ * Returns the context data
351
+ *
352
+ * @param {IRunExecutionData} runExecutionData The run execution data
353
+ * @param {string} type The data type. "node"/"flow"
354
+ * @param {INode} [node] If type "node" is set the node to return the context of has to be supplied
355
+ */
356
+ export function getContext(runExecutionData, type, node) {
349
357
  if (runExecutionData.executionData === undefined) {
350
- throw new application_error_1.ApplicationError('`executionData` is not initialized');
358
+ // TODO: Should not happen leave it for test now
359
+ throw new ApplicationError('`executionData` is not initialized');
351
360
  }
352
361
  let key;
353
362
  if (type === 'flow') {
@@ -355,12 +364,13 @@ function getContext(runExecutionData, type, node) {
355
364
  }
356
365
  else if (type === 'node') {
357
366
  if (node === undefined) {
358
- throw new application_error_1.ApplicationError('The request data of context type "node" the node parameter has to be set!');
367
+ // @TODO: What does this mean?
368
+ throw new ApplicationError('The request data of context type "node" the node parameter has to be set!');
359
369
  }
360
370
  key = `node:${node.name}`;
361
371
  }
362
372
  else {
363
- throw new application_error_1.ApplicationError('Unknown context type. Only `flow` and `node` are supported.', {
373
+ throw new ApplicationError('Unknown context type. Only `flow` and `node` are supported.', {
364
374
  extra: { contextType: type },
365
375
  });
366
376
  }
@@ -369,6 +379,9 @@ function getContext(runExecutionData, type, node) {
369
379
  }
370
380
  return runExecutionData.executionData.contextData[key];
371
381
  }
382
+ /**
383
+ * Returns which parameters are dependent on which
384
+ */
372
385
  function getParameterDependencies(nodePropertiesArray) {
373
386
  const dependencies = {};
374
387
  for (const nodeProperties of nodePropertiesArray) {
@@ -377,12 +390,14 @@ function getParameterDependencies(nodePropertiesArray) {
377
390
  dependencies[name] = [];
378
391
  }
379
392
  if (!displayOptions) {
393
+ // Does not have any dependencies
380
394
  continue;
381
395
  }
382
396
  for (const displayRule of Object.values(displayOptions)) {
383
397
  for (const parameterName of Object.keys(displayRule)) {
384
398
  if (!dependencies[name].includes(parameterName)) {
385
399
  if (parameterName.charAt(0) === '@') {
400
+ // Is a special parameter so can be skipped
386
401
  continue;
387
402
  }
388
403
  dependencies[name].push(parameterName);
@@ -392,6 +407,10 @@ function getParameterDependencies(nodePropertiesArray) {
392
407
  }
393
408
  return dependencies;
394
409
  }
410
+ /**
411
+ * Returns in which order the parameters should be resolved
412
+ * to have the parameters available they depend on
413
+ */
395
414
  function getParameterResolveOrder(nodePropertiesArray, parameterDependencies) {
396
415
  const executionOrder = [];
397
416
  const indexToResolve = Array.from({ length: nodePropertiesArray.length }, (_, k) => k);
@@ -406,37 +425,56 @@ function getParameterResolveOrder(nodePropertiesArray, parameterDependencies) {
406
425
  index = indexToResolve.shift();
407
426
  property = nodePropertiesArray[index];
408
427
  if (parameterDependencies[property.name].length === 0) {
428
+ // Does not have any dependencies so simply add
409
429
  executionOrder.push(index);
410
430
  resolvedParameters.push(property.name);
411
431
  continue;
412
432
  }
433
+ // Parameter has dependencies
413
434
  for (const dependency of parameterDependencies[property.name]) {
414
435
  if (!resolvedParameters.includes(dependency)) {
415
436
  if (dependency.charAt(0) === '/') {
437
+ // Assume that root level dependencies are resolved
416
438
  continue;
417
439
  }
440
+ // Dependencies for that parameter are still missing so
441
+ // try to add again later
418
442
  indexToResolve.push(index);
419
443
  continue;
420
444
  }
421
445
  }
446
+ // All dependencies got found so add
422
447
  executionOrder.push(index);
423
448
  resolvedParameters.push(property.name);
424
449
  if (indexToResolve.length < lastIndexLength) {
425
450
  lastIndexReduction = iterations;
426
451
  }
427
452
  if (iterations > lastIndexReduction + nodePropertiesArray.length) {
428
- throw new application_error_1.ApplicationError('Could not resolve parameter dependencies. Max iterations reached! Hint: If `displayOptions` are specified in any child parameter of a parent `collection` or `fixedCollection`, remove the `displayOptions` from the child parameter.');
453
+ throw new ApplicationError('Could not resolve parameter dependencies. Max iterations reached! Hint: If `displayOptions` are specified in any child parameter of a parent `collection` or `fixedCollection`, remove the `displayOptions` from the child parameter.');
429
454
  }
430
455
  lastIndexLength = indexToResolve.length;
431
456
  }
432
457
  return executionOrder;
433
458
  }
434
- function getNodeParameters(nodePropertiesArray, nodeValues, returnDefaults, returnNoneDisplayed, node, nodeTypeDescription, options) {
459
+ /**
460
+ * Returns the node parameter values. Depending on the settings it either just returns the none
461
+ * default values or it applies all the default values.
462
+ *
463
+ * @param {INodeProperties[]} nodePropertiesArray The properties which exist and their settings
464
+ * @param {INodeParameters} nodeValues The node parameter data
465
+ * @param {boolean} returnDefaults If default values get added or only none default values returned
466
+ * @param {boolean} returnNoneDisplayed If also values which should not be displayed should be returned
467
+ * @param {GetNodeParametersOptions} options Optional properties
468
+ */
469
+ // eslint-disable-next-line complexity
470
+ export function getNodeParameters(nodePropertiesArray, nodeValues, returnDefaults, returnNoneDisplayed, node, nodeTypeDescription, options) {
435
471
  let { nodeValuesRoot, parameterDependencies } = options ?? {};
436
472
  const { onlySimpleTypes = false, dataIsResolved = false, parentType } = options ?? {};
437
473
  if (parameterDependencies === undefined) {
438
474
  parameterDependencies = getParameterDependencies(nodePropertiesArray);
439
475
  }
476
+ // Get the parameter names which get used multiple times as for this
477
+ // ones we have to always check which ones get displayed and which ones not
440
478
  const duplicateParameterNames = [];
441
479
  const parameterNames = [];
442
480
  for (const nodeProperties of nodePropertiesArray) {
@@ -462,12 +500,14 @@ function getNodeParameters(nodePropertiesArray, nodeValues, returnDefaults, retu
462
500
  });
463
501
  }
464
502
  nodeValuesRoot = nodeValuesRoot || nodeValuesDisplayCheck;
503
+ // Go through the parameters in order of their dependencies
465
504
  const parameterIterationOrderIndex = getParameterResolveOrder(nodePropertiesArray, parameterDependencies);
466
505
  for (const parameterIndex of parameterIterationOrderIndex) {
467
506
  const nodeProperties = nodePropertiesArray[parameterIndex];
468
507
  if (!nodeValues ||
469
508
  (nodeValues[nodeProperties.name] === undefined &&
470
509
  (!returnDefaults || parentType === 'collection'))) {
510
+ // The value is not defined so go to the next
471
511
  continue;
472
512
  }
473
513
  if (!returnNoneDisplayed &&
@@ -477,13 +517,17 @@ function getNodeParameters(nodePropertiesArray, nodeValues, returnDefaults, retu
477
517
  }
478
518
  }
479
519
  if (!['collection', 'fixedCollection'].includes(nodeProperties.type)) {
520
+ // Is a simple property so can be set as it is
480
521
  if (duplicateParameterNames.includes(nodeProperties.name)) {
481
522
  if (!displayParameter(nodeValuesDisplayCheck, nodeProperties, node, nodeTypeDescription, nodeValuesRoot)) {
482
523
  continue;
483
524
  }
484
525
  }
485
526
  if (returnDefaults) {
527
+ // Set also when it has the default value
486
528
  if (['boolean', 'number', 'options'].includes(nodeProperties.type)) {
529
+ // Boolean, numbers and options are special as false and 0 are valid values
530
+ // and should not be replaced with default value
487
531
  nodeParameters[nodeProperties.name] =
488
532
  nodeValues[nodeProperties.name] !== undefined
489
533
  ? nodeValues[nodeProperties.name]
@@ -505,34 +549,44 @@ function getNodeParameters(nodePropertiesArray, nodeValues, returnDefaults, retu
505
549
  else if ((nodeValues[nodeProperties.name] !== nodeProperties.default &&
506
550
  typeof nodeValues[nodeProperties.name] !== 'object') ||
507
551
  (typeof nodeValues[nodeProperties.name] === 'object' &&
508
- !(0, isEqual_1.default)(nodeValues[nodeProperties.name], nodeProperties.default)) ||
552
+ !isEqual(nodeValues[nodeProperties.name], nodeProperties.default)) ||
509
553
  (nodeValues[nodeProperties.name] !== undefined && parentType === 'collection')) {
554
+ // Set only if it is different to the default value
510
555
  nodeParameters[nodeProperties.name] = nodeValues[nodeProperties.name];
511
556
  nodeParametersFull[nodeProperties.name] = nodeParameters[nodeProperties.name];
512
557
  continue;
513
558
  }
514
559
  }
515
560
  if (onlySimpleTypes) {
561
+ // It is only supposed to resolve the simple types. So continue.
516
562
  continue;
517
563
  }
564
+ // Is a complex property so check lower levels
518
565
  let tempValue;
519
566
  if (nodeProperties.type === 'collection') {
567
+ // Is collection
520
568
  if (nodeProperties.typeOptions !== undefined &&
521
569
  nodeProperties.typeOptions.multipleValues === true) {
570
+ // Multiple can be set so will be an array
571
+ // Return directly the values like they are
522
572
  if (nodeValues[nodeProperties.name] !== undefined) {
523
573
  nodeParameters[nodeProperties.name] = nodeValues[nodeProperties.name];
524
574
  }
525
575
  else if (returnDefaults) {
576
+ // Does not have values defined but defaults should be returned
526
577
  if (Array.isArray(nodeProperties.default)) {
527
- nodeParameters[nodeProperties.name] = (0, utils_1.deepCopy)(nodeProperties.default);
578
+ nodeParameters[nodeProperties.name] = deepCopy(nodeProperties.default);
528
579
  }
529
580
  else {
581
+ // As it is probably wrong for many nodes, do we keep on returning an empty array if
582
+ // anything else than an array is set as default
530
583
  nodeParameters[nodeProperties.name] = [];
531
584
  }
532
585
  }
533
586
  nodeParametersFull[nodeProperties.name] = nodeParameters[nodeProperties.name];
534
587
  }
535
588
  else if (nodeValues[nodeProperties.name] !== undefined) {
589
+ // Has values defined so get them
536
590
  const tempNodeParameters = getNodeParameters(nodeProperties.options, nodeValues[nodeProperties.name], returnDefaults, returnNoneDisplayed, node, nodeTypeDescription, {
537
591
  onlySimpleTypes: false,
538
592
  dataIsResolved: false,
@@ -545,11 +599,13 @@ function getNodeParameters(nodePropertiesArray, nodeValues, returnDefaults, retu
545
599
  }
546
600
  }
547
601
  else if (returnDefaults) {
548
- nodeParameters[nodeProperties.name] = (0, utils_1.deepCopy)(nodeProperties.default);
602
+ // Does not have values defined but defaults should be returned
603
+ nodeParameters[nodeProperties.name] = deepCopy(nodeProperties.default);
549
604
  nodeParametersFull[nodeProperties.name] = nodeParameters[nodeProperties.name];
550
605
  }
551
606
  }
552
607
  else if (nodeProperties.type === 'fixedCollection') {
608
+ // Is fixedCollection
553
609
  const collectionValues = {};
554
610
  let tempNodeParameters;
555
611
  let tempNodePropertiesArray;
@@ -557,23 +613,31 @@ function getNodeParameters(nodePropertiesArray, nodeValues, returnDefaults, retu
557
613
  let propertyValues = nodeValues[nodeProperties.name];
558
614
  if (returnDefaults) {
559
615
  if (propertyValues === undefined) {
560
- propertyValues = (0, utils_1.deepCopy)(nodeProperties.default);
616
+ propertyValues = deepCopy(nodeProperties.default);
561
617
  }
562
618
  }
563
619
  if (!returnDefaults &&
564
620
  nodeProperties.typeOptions?.multipleValues === false &&
565
621
  propertyValues &&
566
622
  Object.keys(propertyValues).length === 0) {
623
+ // For fixedCollections, which only allow one value, it is important to still return
624
+ // the empty object which indicates that a value got added, even if it does not have
625
+ // anything set. If that is not done, the value would get lost.
567
626
  return nodeValues;
568
627
  }
628
+ // Iterate over all collections
569
629
  for (const itemName of Object.keys(propertyValues || {})) {
570
630
  if (nodeProperties.typeOptions !== undefined &&
571
631
  nodeProperties.typeOptions.multipleValues === true) {
632
+ // Multiple can be set so will be an array
572
633
  const tempArrayValue = [];
634
+ // Iterate over all items as it contains multiple ones
573
635
  for (const nodeValue of propertyValues[itemName]) {
574
- nodePropertyOptions = nodeProperties.options.find((nodePropertyOptions) => nodePropertyOptions.name === itemName);
636
+ nodePropertyOptions = nodeProperties.options.find(
637
+ // eslint-disable-next-line @typescript-eslint/no-shadow
638
+ (nodePropertyOptions) => nodePropertyOptions.name === itemName);
575
639
  if (nodePropertyOptions === undefined) {
576
- throw new application_error_1.ApplicationError('Could not find property option', {
640
+ throw new ApplicationError('Could not find property option', {
577
641
  extra: { propertyOption: itemName, property: nodeProperties.name },
578
642
  });
579
643
  }
@@ -591,7 +655,10 @@ function getNodeParameters(nodePropertiesArray, nodeValues, returnDefaults, retu
591
655
  collectionValues[itemName] = tempArrayValue;
592
656
  }
593
657
  else {
658
+ // Only one can be set so is an object of objects
594
659
  tempNodeParameters = {};
660
+ // Get the options of the current item
661
+ // eslint-disable-next-line @typescript-eslint/no-shadow
595
662
  const nodePropertyOptions = nodeProperties.options.find((data) => data.name === itemName);
596
663
  if (nodePropertyOptions !== undefined) {
597
664
  tempNodePropertiesArray = nodePropertyOptions.values;
@@ -617,6 +684,9 @@ function getNodeParameters(nodePropertiesArray, nodeValues, returnDefaults, retu
617
684
  propertyValues &&
618
685
  propertyValues?.constructor.name === 'Object' &&
619
686
  Object.keys(propertyValues).length !== 0) {
687
+ // For fixedCollections, which only allow one value, it is important to still return
688
+ // the object with an empty collection property which indicates that a value got added
689
+ // which contains all default values. If that is not done, the value would get lost.
620
690
  const returnValue = {};
621
691
  Object.keys(propertyValues || {}).forEach((value) => {
622
692
  returnValue[value] = {};
@@ -624,9 +694,11 @@ function getNodeParameters(nodePropertiesArray, nodeValues, returnDefaults, retu
624
694
  nodeParameters[nodeProperties.name] = returnValue;
625
695
  }
626
696
  if (Object.keys(collectionValues).length !== 0 || returnDefaults) {
697
+ // Set only if value got found
627
698
  if (returnDefaults) {
699
+ // Set also when it has the default value
628
700
  if (collectionValues === undefined) {
629
- nodeParameters[nodeProperties.name] = (0, utils_1.deepCopy)(nodeProperties.default);
701
+ nodeParameters[nodeProperties.name] = deepCopy(nodeProperties.default);
630
702
  }
631
703
  else {
632
704
  nodeParameters[nodeProperties.name] = collectionValues;
@@ -634,6 +706,7 @@ function getNodeParameters(nodePropertiesArray, nodeValues, returnDefaults, retu
634
706
  nodeParametersFull[nodeProperties.name] = nodeParameters[nodeProperties.name];
635
707
  }
636
708
  else if (collectionValues !== nodeProperties.default) {
709
+ // Set only if values got found and it is not the default
637
710
  nodeParameters[nodeProperties.name] = collectionValues;
638
711
  nodeParametersFull[nodeProperties.name] = nodeParameters[nodeProperties.name];
639
712
  }
@@ -642,24 +715,32 @@ function getNodeParameters(nodePropertiesArray, nodeValues, returnDefaults, retu
642
715
  }
643
716
  return nodeParameters;
644
717
  }
645
- function getNodeWebhookPath(workflowId, node, path, isFullPath, restartWebhook) {
718
+ /**
719
+ * Returns the webhook path
720
+ */
721
+ export function getNodeWebhookPath(workflowId, node, path, isFullPath, restartWebhook) {
646
722
  let webhookPath = '';
647
723
  if (restartWebhook === true) {
648
724
  return path;
649
725
  }
650
726
  if (node.webhookId === undefined) {
651
- webhookPath = `${workflowId}/${encodeURIComponent(node.name.toLowerCase())}/${path}`;
727
+ const nodeName = encodeURIComponent(node.name.toLowerCase());
728
+ webhookPath = `${workflowId}/${nodeName}/${path}`;
652
729
  }
653
730
  else {
654
731
  if (isFullPath === true) {
655
- return path;
732
+ return path || node.webhookId;
656
733
  }
657
734
  webhookPath = `${node.webhookId}/${path}`;
658
735
  }
659
736
  return webhookPath;
660
737
  }
661
- function getNodeWebhookUrl(baseUrl, workflowId, node, path, isFullPath) {
738
+ /**
739
+ * Returns the webhook URL
740
+ */
741
+ export function getNodeWebhookUrl(baseUrl, workflowId, node, path, isFullPath) {
662
742
  if ((path.startsWith(':') || path.includes('/:')) && node.webhookId) {
743
+ // setting this to false to prefix the webhookId
663
744
  isFullPath = false;
664
745
  }
665
746
  if (path.startsWith('/')) {
@@ -667,7 +748,7 @@ function getNodeWebhookUrl(baseUrl, workflowId, node, path, isFullPath) {
667
748
  }
668
749
  return `${baseUrl}/${getNodeWebhookPath(workflowId, node, path, isFullPath)}`;
669
750
  }
670
- function getConnectionTypes(connections) {
751
+ export function getConnectionTypes(connections) {
671
752
  return connections
672
753
  .map((connection) => {
673
754
  if (typeof connection === 'string') {
@@ -677,10 +758,11 @@ function getConnectionTypes(connections) {
677
758
  })
678
759
  .filter((connection) => connection !== undefined);
679
760
  }
680
- function getNodeInputs(workflow, node, nodeTypeData) {
761
+ export function getNodeInputs(workflow, node, nodeTypeData) {
681
762
  if (Array.isArray(nodeTypeData?.inputs)) {
682
763
  return nodeTypeData.inputs;
683
764
  }
765
+ // Calculate the outputs dynamically
684
766
  try {
685
767
  return (workflow.expression.getSimpleParameterValue(node, nodeTypeData.inputs, 'internal', {}) || []);
686
768
  }
@@ -689,12 +771,13 @@ function getNodeInputs(workflow, node, nodeTypeData) {
689
771
  return [];
690
772
  }
691
773
  }
692
- function getNodeOutputs(workflow, node, nodeTypeData) {
774
+ export function getNodeOutputs(workflow, node, nodeTypeData) {
693
775
  let outputs = [];
694
776
  if (Array.isArray(nodeTypeData.outputs)) {
695
777
  outputs = nodeTypeData.outputs;
696
778
  }
697
779
  else {
780
+ // Calculate the outputs dynamically
698
781
  try {
699
782
  outputs = (workflow.expression.getSimpleParameterValue(node, nodeTypeData.outputs, 'internal', {}) || []);
700
783
  }
@@ -703,8 +786,11 @@ function getNodeOutputs(workflow, node, nodeTypeData) {
703
786
  }
704
787
  }
705
788
  if (node.onError === 'continueErrorOutput') {
706
- outputs = (0, utils_1.deepCopy)(outputs);
789
+ // Copy the data to make sure that we do not change the data of the
790
+ // node type and so change the displayNames for all nodes in the flow
791
+ outputs = deepCopy(outputs);
707
792
  if (outputs.length === 1) {
793
+ // Set the displayName to "Success"
708
794
  if (typeof outputs[0] === 'string') {
709
795
  outputs[0] = {
710
796
  type: outputs[0],
@@ -716,17 +802,24 @@ function getNodeOutputs(workflow, node, nodeTypeData) {
716
802
  ...outputs,
717
803
  {
718
804
  category: 'error',
719
- type: interfaces_1.NodeConnectionTypes.Main,
805
+ type: NodeConnectionTypes.Main,
720
806
  displayName: 'Error',
721
807
  },
722
808
  ];
723
809
  }
724
810
  return outputs;
725
811
  }
726
- function getNodeParametersIssues(nodePropertiesArray, node, nodeTypeDescription, pinDataNodeNames) {
812
+ /**
813
+ * Returns all the parameter-issues of the node
814
+ *
815
+ * @param {INodeProperties[]} nodePropertiesArray The properties of the node
816
+ * @param {INode} node The data of the node
817
+ */
818
+ export function getNodeParametersIssues(nodePropertiesArray, node, nodeTypeDescription, pinDataNodeNames) {
727
819
  const foundIssues = {};
728
820
  let propertyIssues;
729
821
  if (node.disabled === true || pinDataNodeNames?.includes(node.name)) {
822
+ // Ignore issues on disabled and pindata nodes
730
823
  return null;
731
824
  }
732
825
  for (const nodeProperty of nodePropertiesArray) {
@@ -738,12 +831,16 @@ function getNodeParametersIssues(nodePropertiesArray, node, nodeTypeDescription,
738
831
  }
739
832
  return foundIssues;
740
833
  }
834
+ /*
835
+ * Validates resource locator node parameters based on validation ruled defined in each parameter mode
836
+ */
741
837
  const validateResourceLocatorParameter = (value, parameterMode) => {
742
838
  const valueToValidate = value?.value?.toString() || '';
743
839
  if (valueToValidate.startsWith('=')) {
744
840
  return [];
745
841
  }
746
842
  const validationErrors = [];
843
+ // Each mode can have multiple validations specified
747
844
  if (parameterMode.validation) {
748
845
  for (const validation of parameterMode.validation) {
749
846
  if (validation && validation.type === 'regex') {
@@ -757,7 +854,11 @@ const validateResourceLocatorParameter = (value, parameterMode) => {
757
854
  }
758
855
  return validationErrors;
759
856
  };
857
+ /*
858
+ * Validates resource mapper values based on service schema
859
+ */
760
860
  const validateResourceMapperParameter = (nodeProperties, value, skipRequiredCheck = false) => {
861
+ // No issues to raise in automatic mapping mode, no user input to validate
761
862
  if (value.mappingMode === 'autoMapInputData') {
762
863
  return {};
763
864
  }
@@ -775,7 +876,7 @@ const validateResourceMapperParameter = (nodeProperties, value, skipRequiredChec
775
876
  }
776
877
  }
777
878
  if (!fieldValue?.toString().startsWith('=') && field.type) {
778
- const validationResult = (0, type_validation_1.validateFieldType)(field.id, fieldValue, field.type, {
879
+ const validationResult = validateFieldType(field.id, fieldValue, field.type, {
779
880
  valueOptions: field.options,
780
881
  });
781
882
  if (!validationResult.valid && validationResult.errorMessage) {
@@ -792,7 +893,7 @@ const validateParameter = (nodeProperties, value, type) => {
792
893
  const nodeName = nodeProperties.name;
793
894
  const options = type === 'options' ? nodeProperties.options : undefined;
794
895
  if (!value?.toString().startsWith('=')) {
795
- const validationResult = (0, type_validation_1.validateFieldType)(nodeName, value, type, {
896
+ const validationResult = validateFieldType(nodeName, value, type, {
796
897
  valueOptions: options,
797
898
  });
798
899
  if (!validationResult.valid && validationResult.errorMessage) {
@@ -801,13 +902,22 @@ const validateParameter = (nodeProperties, value, type) => {
801
902
  }
802
903
  return undefined;
803
904
  };
905
+ /**
906
+ * Adds an issue if the parameter is not defined
907
+ *
908
+ * @param {INodeIssues} foundIssues The already found issues
909
+ * @param {INodeProperties} nodeProperties The properties of the node
910
+ * @param {NodeParameterValue} value The value of the parameter
911
+ */
804
912
  function addToIssuesIfMissing(foundIssues, nodeProperties, value) {
913
+ // TODO: Check what it really has when undefined
805
914
  if ((nodeProperties.type === 'string' && (value === '' || value === undefined)) ||
806
915
  (nodeProperties.type === 'multiOptions' && Array.isArray(value) && value.length === 0) ||
807
916
  (nodeProperties.type === 'dateTime' && (value === '' || value === undefined)) ||
808
917
  (nodeProperties.type === 'options' && (value === '' || value === undefined)) ||
809
918
  ((nodeProperties.type === 'resourceLocator' || nodeProperties.type === 'workflowSelector') &&
810
- !(0, type_guards_1.isValidResourceLocatorParameterValue)(value))) {
919
+ !isValidResourceLocatorParameterValue(value))) {
920
+ // Parameter is required but empty
811
921
  if (foundIssues.parameters === undefined) {
812
922
  foundIssues.parameters = {};
813
923
  }
@@ -817,20 +927,38 @@ function addToIssuesIfMissing(foundIssues, nodeProperties, value) {
817
927
  foundIssues.parameters[nodeProperties.name].push(`Parameter "${nodeProperties.displayName}" is required.`);
818
928
  }
819
929
  }
820
- function getParameterValueByPath(nodeValues, parameterName, path) {
821
- return (0, get_1.default)(nodeValues, path ? `${path}.${parameterName}` : parameterName);
930
+ /**
931
+ * Returns the parameter value
932
+ *
933
+ * @param {INodeParameters} nodeValues The values of the node
934
+ * @param {string} parameterName The name of the parameter to return the value of
935
+ * @param {string} path The path to the properties
936
+ */
937
+ export function getParameterValueByPath(nodeValues, parameterName, path) {
938
+ return get(nodeValues, path ? `${path}.${parameterName}` : parameterName);
822
939
  }
823
940
  function isINodeParameterResourceLocator(value) {
824
941
  return typeof value === 'object' && value !== null && 'value' in value && 'mode' in value;
825
942
  }
826
- function getParameterIssues(nodeProperties, nodeValues, path, node, nodeTypeDescription) {
943
+ /**
944
+ * Returns all the issues with the given node-values
945
+ *
946
+ * @param {INodeProperties} nodeProperties The properties of the node
947
+ * @param {INodeParameters} nodeValues The values of the node
948
+ * @param {string} path The path to the properties
949
+ */
950
+ // eslint-disable-next-line complexity
951
+ export function getParameterIssues(nodeProperties, nodeValues, path, node, nodeTypeDescription) {
827
952
  const foundIssues = {};
828
953
  const isDisplayed = displayParameterPath(nodeValues, nodeProperties, path, node, nodeTypeDescription);
829
954
  if (nodeProperties.required === true) {
830
955
  if (isDisplayed) {
831
956
  const value = getParameterValueByPath(nodeValues, nodeProperties.name, path);
832
- if (nodeProperties.typeOptions !== undefined &&
957
+ if (
958
+ // eslint-disable-next-line @typescript-eslint/prefer-optional-chain
959
+ nodeProperties.typeOptions !== undefined &&
833
960
  nodeProperties.typeOptions.multipleValues !== undefined) {
961
+ // Multiple can be set so will be an array
834
962
  if (Array.isArray(value)) {
835
963
  for (const singleValue of value) {
836
964
  addToIssuesIfMissing(foundIssues, nodeProperties, singleValue);
@@ -838,6 +966,7 @@ function getParameterIssues(nodeProperties, nodeValues, path, node, nodeTypeDesc
838
966
  }
839
967
  }
840
968
  else {
969
+ // Only one can be set so will be a single value
841
970
  addToIssuesIfMissing(foundIssues, nodeProperties, value);
842
971
  }
843
972
  }
@@ -864,7 +993,7 @@ function getParameterIssues(nodeProperties, nodeValues, path, node, nodeTypeDesc
864
993
  else if (nodeProperties.type === 'resourceMapper' && isDisplayed) {
865
994
  const skipRequiredCheck = nodeProperties.typeOptions?.resourceMapper?.mode !== 'add';
866
995
  const value = getParameterValueByPath(nodeValues, nodeProperties.name, path);
867
- if ((0, type_guards_1.isResourceMapperValue)(value)) {
996
+ if (isResourceMapperValue(value)) {
868
997
  const issues = validateResourceMapperParameter(nodeProperties, value, skipRequiredCheck);
869
998
  if (Object.keys(issues).length > 0) {
870
999
  if (foundIssues.parameters === undefined) {
@@ -879,8 +1008,8 @@ function getParameterIssues(nodeProperties, nodeValues, path, node, nodeTypeDesc
879
1008
  }
880
1009
  else if (nodeProperties.type === 'filter' && isDisplayed) {
881
1010
  const value = getParameterValueByPath(nodeValues, nodeProperties.name, path);
882
- if ((0, type_guards_1.isFilterValue)(value)) {
883
- const issues = (0, filter_parameter_1.validateFilterParameter)(nodeProperties, value);
1011
+ if (isFilterValue(value)) {
1012
+ const issues = validateFilterParameter(nodeProperties, value);
884
1013
  if (Object.keys(issues).length > 0) {
885
1014
  foundIssues.parameters = { ...foundIssues.parameters, ...issues };
886
1015
  }
@@ -899,11 +1028,20 @@ function getParameterIssues(nodeProperties, nodeValues, path, node, nodeTypeDesc
899
1028
  foundIssues.parameters[nodeProperties.name].push(error);
900
1029
  }
901
1030
  }
1031
+ // Check if there are any child parameters
902
1032
  if (nodeProperties.options === undefined) {
1033
+ // There are none so nothing else to check
903
1034
  return foundIssues;
904
1035
  }
1036
+ // Check the child parameters
1037
+ // Important:
1038
+ // Checks the child properties only if the property is defined on current level.
1039
+ // That means that the required flag works only for the current level only. If
1040
+ // it is set on a lower level it means that the property is only required in case
1041
+ // the parent property got set.
905
1042
  let basePath = path ? `${path}.` : '';
906
1043
  const checkChildNodeProperties = [];
1044
+ // Collect all the properties to check
907
1045
  if (nodeProperties.type === 'collection') {
908
1046
  for (const option of nodeProperties.options) {
909
1047
  checkChildNodeProperties.push({
@@ -916,7 +1054,9 @@ function getParameterIssues(nodeProperties, nodeValues, path, node, nodeTypeDesc
916
1054
  basePath = basePath ? `${basePath}.` : `${nodeProperties.name}.`;
917
1055
  let propertyOptions;
918
1056
  for (propertyOptions of nodeProperties.options) {
1057
+ // Check if the option got set and if not skip it
919
1058
  const value = getParameterValueByPath(nodeValues, propertyOptions.name, basePath.slice(0, -1));
1059
+ // Validate allowed field counts
920
1060
  const valueArray = Array.isArray(value) ? value : [];
921
1061
  const { minRequiredFields, maxAllowedFields } = nodeProperties.typeOptions ?? {};
922
1062
  let error = '';
@@ -934,8 +1074,11 @@ function getParameterIssues(nodeProperties, nodeValues, path, node, nodeTypeDesc
934
1074
  if (value === undefined) {
935
1075
  continue;
936
1076
  }
937
- if (nodeProperties.typeOptions !== undefined &&
1077
+ if (
1078
+ // eslint-disable-next-line @typescript-eslint/prefer-optional-chain
1079
+ nodeProperties.typeOptions !== undefined &&
938
1080
  nodeProperties.typeOptions.multipleValues !== undefined) {
1081
+ // Multiple can be set so will be an array of objects
939
1082
  if (Array.isArray(value)) {
940
1083
  for (let i = 0; i < value.length; i++) {
941
1084
  for (const option of propertyOptions.values) {
@@ -948,6 +1091,7 @@ function getParameterIssues(nodeProperties, nodeValues, path, node, nodeTypeDesc
948
1091
  }
949
1092
  }
950
1093
  else {
1094
+ // Only one can be set so will be an object
951
1095
  for (const option of propertyOptions.values) {
952
1096
  checkChildNodeProperties.push({
953
1097
  basePath: basePath + propertyOptions.name,
@@ -958,6 +1102,7 @@ function getParameterIssues(nodeProperties, nodeValues, path, node, nodeTypeDesc
958
1102
  }
959
1103
  }
960
1104
  else {
1105
+ // For all other types there is nothing to check so return
961
1106
  return foundIssues;
962
1107
  }
963
1108
  let propertyIssues;
@@ -967,8 +1112,15 @@ function getParameterIssues(nodeProperties, nodeValues, path, node, nodeTypeDesc
967
1112
  }
968
1113
  return foundIssues;
969
1114
  }
970
- function mergeIssues(destination, source) {
1115
+ /**
1116
+ * Merges multiple NodeIssues together
1117
+ *
1118
+ * @param {INodeIssues} destination The issues to merge into
1119
+ * @param {(INodeIssues | null)} source The issues to merge
1120
+ */
1121
+ export function mergeIssues(destination, source) {
971
1122
  if (source === null) {
1123
+ // Nothing to merge
972
1124
  return;
973
1125
  }
974
1126
  if (source.execution === true) {
@@ -995,44 +1147,54 @@ function mergeIssues(destination, source) {
995
1147
  destination.typeUnknown = true;
996
1148
  }
997
1149
  }
998
- function mergeNodeProperties(mainProperties, addProperties) {
1150
+ /**
1151
+ * Merges the given node properties
1152
+ */
1153
+ export function mergeNodeProperties(mainProperties, addProperties) {
999
1154
  let existingIndex;
1000
1155
  for (const property of addProperties) {
1001
1156
  if (property.doNotInherit)
1002
1157
  continue;
1003
1158
  existingIndex = mainProperties.findIndex((element) => element.name === property.name);
1004
1159
  if (existingIndex === -1) {
1160
+ // Property does not exist yet, so add
1005
1161
  mainProperties.push(property);
1006
1162
  }
1007
1163
  else {
1164
+ // Property exists already, so overwrite
1008
1165
  mainProperties[existingIndex] = property;
1009
1166
  }
1010
1167
  }
1011
1168
  }
1012
- function getVersionedNodeType(object, version) {
1169
+ export function getVersionedNodeType(object, version) {
1013
1170
  if ('nodeVersions' in object) {
1014
1171
  return object.getNodeType(version);
1015
1172
  }
1016
1173
  return object;
1017
1174
  }
1018
- function isTriggerNode(nodeTypeData) {
1175
+ export function isTriggerNode(nodeTypeData) {
1019
1176
  return nodeTypeData.group.includes('trigger');
1020
1177
  }
1021
- function isExecutable(workflow, node, nodeTypeData) {
1178
+ export function isExecutable(workflow, node, nodeTypeData) {
1022
1179
  const outputs = getNodeOutputs(workflow, node, nodeTypeData);
1023
1180
  const outputNames = getConnectionTypes(outputs);
1024
- return (outputNames.includes(interfaces_1.NodeConnectionTypes.Main) ||
1025
- outputNames.includes(interfaces_1.NodeConnectionTypes.AiTool) ||
1181
+ return (outputNames.includes(NodeConnectionTypes.Main) ||
1182
+ outputNames.includes(NodeConnectionTypes.AiTool) ||
1026
1183
  isTriggerNode(nodeTypeData));
1027
1184
  }
1028
- function isNodeWithWorkflowSelector(node) {
1029
- return [constants_1.EXECUTE_WORKFLOW_NODE_TYPE, constants_1.WORKFLOW_TOOL_LANGCHAIN_NODE_TYPE].includes(node.type);
1185
+ export function isNodeWithWorkflowSelector(node) {
1186
+ return [EXECUTE_WORKFLOW_NODE_TYPE, WORKFLOW_TOOL_LANGCHAIN_NODE_TYPE].includes(node.type);
1030
1187
  }
1188
+ /**
1189
+ * @returns An object containing either the resolved operation's action if available,
1190
+ * else the resource and operation if both exist.
1191
+ * If neither can be resolved, returns an empty object.
1192
+ */
1031
1193
  function resolveResourceAndOperation(nodeParameters, nodeTypeDescription) {
1032
1194
  const resource = nodeParameters.resource;
1033
1195
  const operation = nodeParameters.operation;
1034
1196
  const nodeTypeOperation = nodeTypeDescription.properties.find((p) => p.name === 'operation' && p.displayOptions?.show?.resource?.includes(resource));
1035
- if (nodeTypeOperation?.options && (0, type_guards_1.isINodePropertyOptionsList)(nodeTypeOperation.options)) {
1197
+ if (nodeTypeOperation?.options && isINodePropertyOptionsList(nodeTypeOperation.options)) {
1036
1198
  const foundOperation = nodeTypeOperation.options.find((option) => option.value === operation);
1037
1199
  if (foundOperation?.action) {
1038
1200
  return { action: foundOperation.action };
@@ -1045,7 +1207,18 @@ function resolveResourceAndOperation(nodeParameters, nodeTypeDescription) {
1045
1207
  return {};
1046
1208
  }
1047
1209
  }
1048
- function makeDescription(nodeParameters, nodeTypeDescription) {
1210
+ /**
1211
+ * Generates a human-readable description for a node based on its parameters and type definition.
1212
+ *
1213
+ * This function creates a descriptive string that represents what the node does,
1214
+ * based on its resource, operation, and node type information. The description is
1215
+ * formatted in one of the following ways:
1216
+ *
1217
+ * 1. "{action} in {displayName}" if the operation has a defined action
1218
+ * 2. "{operation} {resource} in {displayName}" if resource and operation exist
1219
+ * 3. The node type's description field as a fallback
1220
+ */
1221
+ export function makeDescription(nodeParameters, nodeTypeDescription) {
1049
1222
  const { action, operation, resource } = resolveResourceAndOperation(nodeParameters, nodeTypeDescription);
1050
1223
  if (action) {
1051
1224
  return `${action} in ${nodeTypeDescription.defaults.name}`;
@@ -1055,22 +1228,33 @@ function makeDescription(nodeParameters, nodeTypeDescription) {
1055
1228
  }
1056
1229
  return nodeTypeDescription.description;
1057
1230
  }
1058
- function isTool(nodeTypeDescription, parameters) {
1231
+ export function isTool(nodeTypeDescription, parameters) {
1232
+ // Check if node is a vector store in retrieve-as-tool mode
1059
1233
  if (nodeTypeDescription.name.includes('vectorStore')) {
1060
1234
  const mode = parameters.mode;
1061
1235
  return mode === 'retrieve-as-tool';
1062
1236
  }
1237
+ // Check for other tool nodes
1063
1238
  for (const output of nodeTypeDescription.outputs) {
1064
1239
  if (typeof output === 'string') {
1065
- return output === interfaces_1.NodeConnectionTypes.AiTool;
1240
+ return output === NodeConnectionTypes.AiTool;
1066
1241
  }
1067
- else if (output?.type && output.type === interfaces_1.NodeConnectionTypes.AiTool) {
1242
+ else if (output?.type && output.type === NodeConnectionTypes.AiTool) {
1068
1243
  return true;
1069
1244
  }
1070
1245
  }
1071
1246
  return false;
1072
1247
  }
1073
- function makeNodeName(nodeParameters, nodeTypeDescription) {
1248
+ /**
1249
+ * Generates a resource and operation aware node name.
1250
+ *
1251
+ * Appends `in {nodeTypeDisplayName}` if nodeType is a tool
1252
+ *
1253
+ * 1. "{action}" if the operation has a defined action
1254
+ * 2. "{operation} {resource}" if resource and operation exist
1255
+ * 3. The node type's defaults.name field or displayName as a fallback
1256
+ */
1257
+ export function makeNodeName(nodeParameters, nodeTypeDescription) {
1074
1258
  const { action, operation, resource } = resolveResourceAndOperation(nodeParameters, nodeTypeDescription);
1075
1259
  const postfix = isTool(nodeTypeDescription, nodeParameters)
1076
1260
  ? ` in ${nodeTypeDescription.defaults.name}`
@@ -1084,7 +1268,10 @@ function makeNodeName(nodeParameters, nodeTypeDescription) {
1084
1268
  }
1085
1269
  return nodeTypeDescription.defaults.name ?? nodeTypeDescription.displayName;
1086
1270
  }
1087
- function isDefaultNodeName(name, nodeType, parameters) {
1271
+ /**
1272
+ * Returns true if the node name is of format `<defaultNodeName>\d*` , which includes auto-renamed nodes
1273
+ */
1274
+ export function isDefaultNodeName(name, nodeType, parameters) {
1088
1275
  const legacyDefaultName = nodeType.defaults.name ?? nodeType.displayName;
1089
1276
  const currentDefaultName = makeNodeName(parameters, nodeType);
1090
1277
  for (const defaultName of [legacyDefaultName, currentDefaultName]) {
@@ -1093,7 +1280,11 @@ function isDefaultNodeName(name, nodeType, parameters) {
1093
1280
  }
1094
1281
  return false;
1095
1282
  }
1096
- const getUpdatedToolDescription = (currentNodeType, newParameters, currentParameters) => {
1283
+ /**
1284
+ * Determines whether a tool description should be updated and returns the new description if needed.
1285
+ * Returns undefined if no update is needed.
1286
+ */
1287
+ export const getUpdatedToolDescription = (currentNodeType, newParameters, currentParameters) => {
1097
1288
  if (!currentNodeType)
1098
1289
  return;
1099
1290
  if (newParameters?.descriptionType === 'manual' && currentParameters) {
@@ -1107,8 +1298,10 @@ const getUpdatedToolDescription = (currentNodeType, newParameters, currentParame
1107
1298
  }
1108
1299
  return;
1109
1300
  };
1110
- exports.getUpdatedToolDescription = getUpdatedToolDescription;
1111
- function getToolDescriptionForNode(node, nodeType) {
1301
+ /**
1302
+ * Generates a tool description for a given node based on its parameters and type.
1303
+ */
1304
+ export function getToolDescriptionForNode(node, nodeType) {
1112
1305
  let toolDescription;
1113
1306
  if (node.parameters.descriptionType === 'auto' ||
1114
1307
  !node?.parameters.toolDescription?.toString().trim()) {
@@ -1122,8 +1315,11 @@ function getToolDescriptionForNode(node, nodeType) {
1122
1315
  }
1123
1316
  return toolDescription;
1124
1317
  }
1125
- function getSubworkflowId(node) {
1126
- if (isNodeWithWorkflowSelector(node) && (0, type_guards_1.isResourceLocatorValue)(node.parameters.workflowId)) {
1318
+ /**
1319
+ * Attempts to retrieve the ID of a subworkflow from a execute workflow node.
1320
+ */
1321
+ export function getSubworkflowId(node) {
1322
+ if (isNodeWithWorkflowSelector(node) && isResourceLocatorValue(node.parameters.workflowId)) {
1127
1323
  return node.parameters.workflowId.value;
1128
1324
  }
1129
1325
  return;