n8n-workflow 1.98.0 → 1.99.1

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} +90 -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 +2173 -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 +20 -16
  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
@@ -0,0 +1,765 @@
1
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
2
+ if (k2 === undefined) k2 = k;
3
+ var desc = Object.getOwnPropertyDescriptor(m, k);
4
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
5
+ desc = { enumerable: true, get: function() { return m[k]; } };
6
+ }
7
+ Object.defineProperty(o, k2, desc);
8
+ }) : (function(o, m, k, k2) {
9
+ if (k2 === undefined) k2 = k;
10
+ o[k2] = m[k];
11
+ }));
12
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
13
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
14
+ }) : function(o, v) {
15
+ o["default"] = v;
16
+ });
17
+ var __importStar = (this && this.__importStar) || (function () {
18
+ var ownKeys = function(o) {
19
+ ownKeys = Object.getOwnPropertyNames || function (o) {
20
+ var ar = [];
21
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
22
+ return ar;
23
+ };
24
+ return ownKeys(o);
25
+ };
26
+ return function (mod) {
27
+ if (mod && mod.__esModule) return mod;
28
+ var result = {};
29
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
30
+ __setModuleDefault(result, mod);
31
+ return result;
32
+ };
33
+ })();
34
+ (function (factory) {
35
+ if (typeof module === "object" && typeof module.exports === "object") {
36
+ var v = factory(require, exports);
37
+ if (v !== undefined) module.exports = v;
38
+ }
39
+ else if (typeof define === "function" && define.amd) {
40
+ define(["require", "exports", "./constants", "./errors", "./errors/application.error", "./expression", "./global-state", "./interfaces", "./node-helpers", "./node-parameters/rename-node-utils", "./node-reference-parser-utils", "./observable-object"], factory);
41
+ }
42
+ })(function (require, exports) {
43
+ "use strict";
44
+ Object.defineProperty(exports, "__esModule", { value: true });
45
+ exports.Workflow = void 0;
46
+ /* eslint-disable @typescript-eslint/no-use-before-define */
47
+ /* eslint-disable @typescript-eslint/no-unsafe-member-access */
48
+ /* eslint-disable @typescript-eslint/no-unsafe-return */
49
+ /* eslint-disable @typescript-eslint/no-for-in-array */
50
+ const constants_1 = require("./constants");
51
+ const errors_1 = require("./errors");
52
+ const application_error_1 = require("./errors/application.error");
53
+ const expression_1 = require("./expression");
54
+ const global_state_1 = require("./global-state");
55
+ const interfaces_1 = require("./interfaces");
56
+ const NodeHelpers = __importStar(require("./node-helpers"));
57
+ const rename_node_utils_1 = require("./node-parameters/rename-node-utils");
58
+ const node_reference_parser_utils_1 = require("./node-reference-parser-utils");
59
+ const ObservableObject = __importStar(require("./observable-object"));
60
+ function dedupe(arr) {
61
+ return [...new Set(arr)];
62
+ }
63
+ class Workflow {
64
+ id;
65
+ name;
66
+ nodes = {};
67
+ connectionsBySourceNode;
68
+ connectionsByDestinationNode;
69
+ nodeTypes;
70
+ expression;
71
+ active;
72
+ settings;
73
+ timezone;
74
+ // To save workflow specific static data like for example
75
+ // ids of registered webhooks of nodes
76
+ staticData;
77
+ testStaticData;
78
+ pinData;
79
+ constructor(parameters) {
80
+ this.id = parameters.id; // @tech_debt Ensure this is not optional
81
+ this.name = parameters.name;
82
+ this.nodeTypes = parameters.nodeTypes;
83
+ this.pinData = parameters.pinData;
84
+ // Save nodes in workflow as object to be able to get the
85
+ // nodes easily by its name.
86
+ // Also directly add the default values of the node type.
87
+ let nodeType;
88
+ for (const node of parameters.nodes) {
89
+ this.nodes[node.name] = node;
90
+ nodeType = this.nodeTypes.getByNameAndVersion(node.type, node.typeVersion);
91
+ if (nodeType === undefined) {
92
+ // Go on to next node when its type is not known.
93
+ // For now do not error because that causes problems with
94
+ // expression resolution also then when the unknown node
95
+ // does not get used.
96
+ continue;
97
+ // throw new ApplicationError(`Node with unknown node type`, {
98
+ // tags: { nodeType: node.type },
99
+ // extra: { node },
100
+ // });
101
+ }
102
+ // Add default values
103
+ const nodeParameters = NodeHelpers.getNodeParameters(nodeType.description.properties, node.parameters, true, false, node, nodeType.description);
104
+ node.parameters = nodeParameters !== null ? nodeParameters : {};
105
+ }
106
+ this.connectionsBySourceNode = parameters.connections;
107
+ // Save also the connections by the destination nodes
108
+ this.connectionsByDestinationNode = Workflow.getConnectionsByDestination(parameters.connections);
109
+ this.active = parameters.active || false;
110
+ this.staticData = ObservableObject.create(parameters.staticData || {}, undefined, {
111
+ ignoreEmptyOnFirstChild: true,
112
+ });
113
+ this.settings = parameters.settings || {};
114
+ this.timezone = this.settings.timezone ?? (0, global_state_1.getGlobalState)().defaultTimezone;
115
+ this.expression = new expression_1.Expression(this);
116
+ }
117
+ overrideStaticData(staticData) {
118
+ this.staticData = ObservableObject.create(staticData || {}, undefined, {
119
+ ignoreEmptyOnFirstChild: true,
120
+ });
121
+ this.staticData.__dataChanged = true;
122
+ }
123
+ /**
124
+ * The default connections are by source node. This function rewrites them by destination nodes
125
+ * to easily find parent nodes.
126
+ *
127
+ */
128
+ static getConnectionsByDestination(connections) {
129
+ const returnConnection = {};
130
+ let connectionInfo;
131
+ let maxIndex;
132
+ for (const sourceNode in connections) {
133
+ if (!connections.hasOwnProperty(sourceNode)) {
134
+ continue;
135
+ }
136
+ for (const type of Object.keys(connections[sourceNode])) {
137
+ if (!connections[sourceNode].hasOwnProperty(type)) {
138
+ continue;
139
+ }
140
+ for (const inputIndex in connections[sourceNode][type]) {
141
+ if (!connections[sourceNode][type].hasOwnProperty(inputIndex)) {
142
+ continue;
143
+ }
144
+ for (connectionInfo of connections[sourceNode][type][inputIndex] ?? []) {
145
+ if (!returnConnection.hasOwnProperty(connectionInfo.node)) {
146
+ returnConnection[connectionInfo.node] = {};
147
+ }
148
+ if (!returnConnection[connectionInfo.node].hasOwnProperty(connectionInfo.type)) {
149
+ returnConnection[connectionInfo.node][connectionInfo.type] = [];
150
+ }
151
+ maxIndex = returnConnection[connectionInfo.node][connectionInfo.type].length - 1;
152
+ for (let j = maxIndex; j < connectionInfo.index; j++) {
153
+ returnConnection[connectionInfo.node][connectionInfo.type].push([]);
154
+ }
155
+ returnConnection[connectionInfo.node][connectionInfo.type][connectionInfo.index]?.push({
156
+ node: sourceNode,
157
+ type,
158
+ index: parseInt(inputIndex, 10),
159
+ });
160
+ }
161
+ }
162
+ }
163
+ }
164
+ return returnConnection;
165
+ }
166
+ /**
167
+ * Returns the static data of the workflow.
168
+ * It gets saved with the workflow and will be the same for
169
+ * all workflow-executions.
170
+ *
171
+ * @param {string} type The type of data to return ("global"|"node")
172
+ * @param {INode} [node] If type is set to "node" then the node has to be provided
173
+ */
174
+ getStaticData(type, node) {
175
+ let key;
176
+ if (type === 'global') {
177
+ key = 'global';
178
+ }
179
+ else if (type === 'node') {
180
+ if (node === undefined) {
181
+ throw new application_error_1.ApplicationError('The request data of context type "node" the node parameter has to be set!');
182
+ }
183
+ key = `node:${node.name}`;
184
+ }
185
+ else {
186
+ throw new application_error_1.ApplicationError('Unknown context type. Only `global` and `node` are supported.', {
187
+ extra: { contextType: type },
188
+ });
189
+ }
190
+ if (this.testStaticData?.[key])
191
+ return this.testStaticData[key];
192
+ if (this.staticData[key] === undefined) {
193
+ // Create it as ObservableObject that we can easily check if the data changed
194
+ // to know if the workflow with its data has to be saved afterwards or not.
195
+ this.staticData[key] = ObservableObject.create({}, this.staticData);
196
+ }
197
+ return this.staticData[key];
198
+ }
199
+ setTestStaticData(testStaticData) {
200
+ this.testStaticData = testStaticData;
201
+ }
202
+ /**
203
+ * Returns all the trigger nodes in the workflow.
204
+ *
205
+ */
206
+ getTriggerNodes() {
207
+ return this.queryNodes((nodeType) => !!nodeType.trigger);
208
+ }
209
+ /**
210
+ * Returns all the poll nodes in the workflow
211
+ *
212
+ */
213
+ getPollNodes() {
214
+ return this.queryNodes((nodeType) => !!nodeType.poll);
215
+ }
216
+ /**
217
+ * Returns all the nodes in the workflow for which the given
218
+ * checkFunction return true
219
+ *
220
+ * @param {(nodeType: INodeType) => boolean} checkFunction
221
+ */
222
+ queryNodes(checkFunction) {
223
+ const returnNodes = [];
224
+ // Check if it has any of them
225
+ let node;
226
+ let nodeType;
227
+ for (const nodeName of Object.keys(this.nodes)) {
228
+ node = this.nodes[nodeName];
229
+ if (node.disabled === true) {
230
+ continue;
231
+ }
232
+ nodeType = this.nodeTypes.getByNameAndVersion(node.type, node.typeVersion);
233
+ if (nodeType !== undefined && checkFunction(nodeType)) {
234
+ returnNodes.push(node);
235
+ }
236
+ }
237
+ return returnNodes;
238
+ }
239
+ /**
240
+ * Returns the node with the given name if it exists else null
241
+ *
242
+ * @param {string} nodeName Name of the node to return
243
+ */
244
+ getNode(nodeName) {
245
+ if (this.nodes.hasOwnProperty(nodeName)) {
246
+ return this.nodes[nodeName];
247
+ }
248
+ return null;
249
+ }
250
+ /**
251
+ * Returns the nodes with the given names if they exist.
252
+ * If a node cannot be found it will be ignored, meaning the returned array
253
+ * of nodes can be smaller than the array of names.
254
+ */
255
+ getNodes(nodeNames) {
256
+ const nodes = [];
257
+ for (const name of nodeNames) {
258
+ const node = this.getNode(name);
259
+ if (!node) {
260
+ console.warn(`Could not find a node with the name ${name} in the workflow. This was passed in as a dirty node name.`);
261
+ continue;
262
+ }
263
+ nodes.push(node);
264
+ }
265
+ return nodes;
266
+ }
267
+ /**
268
+ * Returns the pinData of the node with the given name if it exists
269
+ *
270
+ * @param {string} nodeName Name of the node to return the pinData of
271
+ */
272
+ getPinDataOfNode(nodeName) {
273
+ return this.pinData ? this.pinData[nodeName] : undefined;
274
+ }
275
+ renameNodeInParameterValue(parameterValue, currentName, newName, { hasRenamableContent } = { hasRenamableContent: false }) {
276
+ if (typeof parameterValue !== 'object') {
277
+ // Reached the actual value
278
+ if (typeof parameterValue === 'string' &&
279
+ (parameterValue.charAt(0) === '=' || hasRenamableContent)) {
280
+ parameterValue = (0, node_reference_parser_utils_1.applyAccessPatterns)(parameterValue, currentName, newName);
281
+ }
282
+ return parameterValue;
283
+ }
284
+ if (Array.isArray(parameterValue)) {
285
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
286
+ const returnArray = [];
287
+ for (const currentValue of parameterValue) {
288
+ returnArray.push(this.renameNodeInParameterValue(currentValue, currentName, newName));
289
+ }
290
+ return returnArray;
291
+ }
292
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
293
+ const returnData = {};
294
+ for (const parameterName of Object.keys(parameterValue || {})) {
295
+ returnData[parameterName] = this.renameNodeInParameterValue(parameterValue[parameterName], currentName, newName, { hasRenamableContent });
296
+ }
297
+ return returnData;
298
+ }
299
+ /**
300
+ * Rename a node in the workflow
301
+ *
302
+ * @param {string} currentName The current name of the node
303
+ * @param {string} newName The new name
304
+ */
305
+ renameNode(currentName, newName) {
306
+ // These keys are excluded to prevent accidental modification of inherited properties and
307
+ // to avoid any issues related to JavaScript's built-in methods that can cause unexpected behavior
308
+ const restrictedKeys = [
309
+ 'hasOwnProperty',
310
+ 'isPrototypeOf',
311
+ 'propertyIsEnumerable',
312
+ 'toLocaleString',
313
+ 'toString',
314
+ 'valueOf',
315
+ 'constructor',
316
+ 'prototype',
317
+ '__proto__',
318
+ '__defineGetter__',
319
+ '__defineSetter__',
320
+ '__lookupGetter__',
321
+ '__lookupSetter__',
322
+ ];
323
+ if (restrictedKeys.map((k) => k.toLowerCase()).includes(newName.toLowerCase())) {
324
+ throw new errors_1.UserError(`Node name "${newName}" is a restricted name.`, {
325
+ description: `Node names cannot be any of the following: ${restrictedKeys.join(', ')}`,
326
+ });
327
+ }
328
+ // Rename the node itself
329
+ if (this.nodes[currentName] !== undefined) {
330
+ this.nodes[newName] = this.nodes[currentName];
331
+ this.nodes[newName].name = newName;
332
+ delete this.nodes[currentName];
333
+ }
334
+ // Update the expressions which reference the node
335
+ // with its old name
336
+ for (const node of Object.values(this.nodes)) {
337
+ node.parameters = this.renameNodeInParameterValue(node.parameters, currentName, newName);
338
+ if (constants_1.NODES_WITH_RENAMABLE_CONTENT.has(node.type)) {
339
+ node.parameters.jsCode = this.renameNodeInParameterValue(node.parameters.jsCode, currentName, newName, { hasRenamableContent: true });
340
+ }
341
+ if (constants_1.NODES_WITH_RENAMEABLE_TOPLEVEL_HTML_CONTENT.has(node.type)) {
342
+ node.parameters.html = this.renameNodeInParameterValue(node.parameters.html, currentName, newName, { hasRenamableContent: true });
343
+ }
344
+ if (constants_1.NODES_WITH_RENAMABLE_FORM_HTML_CONTENT.has(node.type)) {
345
+ (0, rename_node_utils_1.renameFormFields)(node, (p) => this.renameNodeInParameterValue(p, currentName, newName, {
346
+ hasRenamableContent: true,
347
+ }));
348
+ }
349
+ }
350
+ // Change all source connections
351
+ if (this.connectionsBySourceNode.hasOwnProperty(currentName)) {
352
+ this.connectionsBySourceNode[newName] = this.connectionsBySourceNode[currentName];
353
+ delete this.connectionsBySourceNode[currentName];
354
+ }
355
+ // Change all destination connections
356
+ let sourceNode;
357
+ let type;
358
+ let sourceIndex;
359
+ let connectionIndex;
360
+ let connectionData;
361
+ for (sourceNode of Object.keys(this.connectionsBySourceNode)) {
362
+ for (type of Object.keys(this.connectionsBySourceNode[sourceNode])) {
363
+ for (sourceIndex of Object.keys(this.connectionsBySourceNode[sourceNode][type])) {
364
+ for (connectionIndex of Object.keys(this.connectionsBySourceNode[sourceNode][type][parseInt(sourceIndex, 10)] || [])) {
365
+ connectionData =
366
+ this.connectionsBySourceNode[sourceNode][type][parseInt(sourceIndex, 10)]?.[parseInt(connectionIndex, 10)];
367
+ if (connectionData?.node === currentName) {
368
+ connectionData.node = newName;
369
+ }
370
+ }
371
+ }
372
+ }
373
+ }
374
+ // Use the updated connections to create updated connections by destination nodes
375
+ this.connectionsByDestinationNode = Workflow.getConnectionsByDestination(this.connectionsBySourceNode);
376
+ }
377
+ /**
378
+ * Finds the highest parent nodes of the node with the given name
379
+ *
380
+ * @param {NodeConnectionType} [type='main']
381
+ */
382
+ getHighestNode(nodeName, nodeConnectionIndex, checkedNodes) {
383
+ const currentHighest = [];
384
+ if (this.nodes[nodeName].disabled === false) {
385
+ // If the current node is not disabled itself is the highest
386
+ currentHighest.push(nodeName);
387
+ }
388
+ if (!this.connectionsByDestinationNode.hasOwnProperty(nodeName)) {
389
+ // Node does not have incoming connections
390
+ return currentHighest;
391
+ }
392
+ if (!this.connectionsByDestinationNode[nodeName].hasOwnProperty(interfaces_1.NodeConnectionTypes.Main)) {
393
+ // Node does not have incoming connections of given type
394
+ return currentHighest;
395
+ }
396
+ checkedNodes = checkedNodes || [];
397
+ if (checkedNodes.includes(nodeName)) {
398
+ // Node got checked already before
399
+ return currentHighest;
400
+ }
401
+ checkedNodes.push(nodeName);
402
+ const returnNodes = [];
403
+ let addNodes;
404
+ let connectionsByIndex;
405
+ for (let connectionIndex = 0; connectionIndex <
406
+ this.connectionsByDestinationNode[nodeName][interfaces_1.NodeConnectionTypes.Main].length; connectionIndex++) {
407
+ if (nodeConnectionIndex !== undefined && nodeConnectionIndex !== connectionIndex) {
408
+ // If a connection-index is given ignore all other ones
409
+ continue;
410
+ }
411
+ connectionsByIndex =
412
+ this.connectionsByDestinationNode[nodeName][interfaces_1.NodeConnectionTypes.Main][connectionIndex];
413
+ // eslint-disable-next-line @typescript-eslint/no-loop-func
414
+ connectionsByIndex?.forEach((connection) => {
415
+ if (checkedNodes.includes(connection.node)) {
416
+ // Node got checked already before
417
+ return;
418
+ }
419
+ // Ignore connections for nodes that don't exist in this workflow
420
+ if (!(connection.node in this.nodes))
421
+ return;
422
+ addNodes = this.getHighestNode(connection.node, undefined, checkedNodes);
423
+ if (addNodes.length === 0) {
424
+ // The checked node does not have any further parents so add it
425
+ // if it is not disabled
426
+ if (this.nodes[connection.node].disabled !== true) {
427
+ addNodes = [connection.node];
428
+ }
429
+ }
430
+ addNodes.forEach((name) => {
431
+ // Only add if node is not on the list already anyway
432
+ if (returnNodes.indexOf(name) === -1) {
433
+ returnNodes.push(name);
434
+ }
435
+ });
436
+ });
437
+ }
438
+ return returnNodes;
439
+ }
440
+ /**
441
+ * Returns all the after the given one
442
+ *
443
+ * @param {string} [type='main']
444
+ * @param {*} [depth=-1]
445
+ */
446
+ getChildNodes(nodeName, type = interfaces_1.NodeConnectionTypes.Main, depth = -1) {
447
+ return this.getConnectedNodes(this.connectionsBySourceNode, nodeName, type, depth);
448
+ }
449
+ /**
450
+ * Returns all the nodes before the given one
451
+ *
452
+ * @param {NodeConnectionType} [type='main']
453
+ * @param {*} [depth=-1]
454
+ */
455
+ getParentNodes(nodeName, type = interfaces_1.NodeConnectionTypes.Main, depth = -1) {
456
+ return this.getConnectedNodes(this.connectionsByDestinationNode, nodeName, type, depth);
457
+ }
458
+ /**
459
+ * Gets all the nodes which are connected nodes starting from
460
+ * the given one
461
+ *
462
+ * @param {NodeConnectionType} [type='main']
463
+ * @param {*} [depth=-1]
464
+ */
465
+ getConnectedNodes(connections, nodeName, connectionType = interfaces_1.NodeConnectionTypes.Main, depth = -1, checkedNodesIncoming) {
466
+ depth = depth === -1 ? -1 : depth;
467
+ const newDepth = depth === -1 ? depth : depth - 1;
468
+ if (depth === 0) {
469
+ // Reached max depth
470
+ return [];
471
+ }
472
+ if (!connections.hasOwnProperty(nodeName)) {
473
+ // Node does not have incoming connections
474
+ return [];
475
+ }
476
+ let types;
477
+ if (connectionType === 'ALL') {
478
+ types = Object.keys(connections[nodeName]);
479
+ }
480
+ else if (connectionType === 'ALL_NON_MAIN') {
481
+ types = Object.keys(connections[nodeName]).filter((type) => type !== 'main');
482
+ }
483
+ else {
484
+ types = [connectionType];
485
+ }
486
+ let addNodes;
487
+ let nodeIndex;
488
+ let i;
489
+ let parentNodeName;
490
+ const returnNodes = [];
491
+ types.forEach((type) => {
492
+ if (!connections[nodeName].hasOwnProperty(type)) {
493
+ // Node does not have incoming connections of given type
494
+ return;
495
+ }
496
+ const checkedNodes = checkedNodesIncoming ? [...checkedNodesIncoming] : [];
497
+ if (checkedNodes.includes(nodeName)) {
498
+ // Node got checked already before
499
+ return;
500
+ }
501
+ checkedNodes.push(nodeName);
502
+ connections[nodeName][type].forEach((connectionsByIndex) => {
503
+ connectionsByIndex?.forEach((connection) => {
504
+ if (checkedNodes.includes(connection.node)) {
505
+ // Node got checked already before
506
+ return;
507
+ }
508
+ returnNodes.unshift(connection.node);
509
+ addNodes = this.getConnectedNodes(connections, connection.node, connectionType, newDepth, checkedNodes);
510
+ for (i = addNodes.length; i--; i > 0) {
511
+ // Because nodes can have multiple parents it is possible that
512
+ // parts of the tree is parent of both and to not add nodes
513
+ // twice check first if they already got added before.
514
+ parentNodeName = addNodes[i];
515
+ nodeIndex = returnNodes.indexOf(parentNodeName);
516
+ if (nodeIndex !== -1) {
517
+ // Node got found before so remove it from current location
518
+ // that node-order stays correct
519
+ returnNodes.splice(nodeIndex, 1);
520
+ }
521
+ returnNodes.unshift(parentNodeName);
522
+ }
523
+ });
524
+ });
525
+ });
526
+ return returnNodes;
527
+ }
528
+ /**
529
+ * Returns all the nodes before the given one
530
+ *
531
+ * @param {*} [maxDepth=-1]
532
+ */
533
+ getParentNodesByDepth(nodeName, maxDepth = -1) {
534
+ return this.searchNodesBFS(this.connectionsByDestinationNode, nodeName, maxDepth);
535
+ }
536
+ /**
537
+ * Gets all the nodes which are connected nodes starting from
538
+ * the given one
539
+ * Uses BFS traversal
540
+ *
541
+ * @param {*} [maxDepth=-1]
542
+ */
543
+ searchNodesBFS(connections, sourceNode, maxDepth = -1) {
544
+ const returnConns = [];
545
+ const type = interfaces_1.NodeConnectionTypes.Main;
546
+ let queue = [];
547
+ queue.push({
548
+ name: sourceNode,
549
+ depth: 0,
550
+ indicies: [],
551
+ });
552
+ const visited = {};
553
+ let depth = 0;
554
+ while (queue.length > 0) {
555
+ if (maxDepth !== -1 && depth > maxDepth) {
556
+ break;
557
+ }
558
+ depth++;
559
+ const toAdd = [...queue];
560
+ queue = [];
561
+ // eslint-disable-next-line @typescript-eslint/no-loop-func
562
+ toAdd.forEach((curr) => {
563
+ if (visited[curr.name]) {
564
+ visited[curr.name].indicies = dedupe(visited[curr.name].indicies.concat(curr.indicies));
565
+ return;
566
+ }
567
+ visited[curr.name] = curr;
568
+ if (curr.name !== sourceNode) {
569
+ returnConns.push(curr);
570
+ }
571
+ if (!connections.hasOwnProperty(curr.name) ||
572
+ !connections[curr.name].hasOwnProperty(type)) {
573
+ return;
574
+ }
575
+ connections[curr.name][type].forEach((connectionsByIndex) => {
576
+ connectionsByIndex?.forEach((connection) => {
577
+ queue.push({
578
+ name: connection.node,
579
+ indicies: [connection.index],
580
+ depth,
581
+ });
582
+ });
583
+ });
584
+ });
585
+ }
586
+ return returnConns;
587
+ }
588
+ getParentMainInputNode(node) {
589
+ if (node) {
590
+ const nodeType = this.nodeTypes.getByNameAndVersion(node.type, node.typeVersion);
591
+ const outputs = NodeHelpers.getNodeOutputs(this, node, nodeType.description);
592
+ if (!!outputs.find((output) => (output?.type ?? output) !== interfaces_1.NodeConnectionTypes.Main)) {
593
+ // Get the first node which is connected to a non-main output
594
+ const nonMainNodesConnected = outputs?.reduce((acc, outputName) => {
595
+ const parentNodes = this.getChildNodes(node.name, outputName?.type ?? outputName);
596
+ if (parentNodes.length > 0) {
597
+ acc.push(...parentNodes);
598
+ }
599
+ return acc;
600
+ }, []);
601
+ if (nonMainNodesConnected.length) {
602
+ const returnNode = this.getNode(nonMainNodesConnected[0]);
603
+ if (returnNode === null) {
604
+ // This should theoretically never happen as the node is connected
605
+ // but who knows and it makes TS happy
606
+ throw new application_error_1.ApplicationError(`Node "${nonMainNodesConnected[0]}" not found`);
607
+ }
608
+ // The chain of non-main nodes is potentially not finished yet so
609
+ // keep on going
610
+ return this.getParentMainInputNode(returnNode);
611
+ }
612
+ }
613
+ }
614
+ return node;
615
+ }
616
+ /**
617
+ * Returns via which output of the parent-node and index the current node
618
+ * they are connected
619
+ *
620
+ * @param {string} nodeName The node to check how it is connected with parent node
621
+ * @param {string} parentNodeName The parent node to get the output index of
622
+ * @param {string} [type='main']
623
+ * @param {*} [depth=-1]
624
+ */
625
+ getNodeConnectionIndexes(nodeName, parentNodeName, type = interfaces_1.NodeConnectionTypes.Main, depth = -1, checkedNodes) {
626
+ const node = this.getNode(parentNodeName);
627
+ if (node === null) {
628
+ return undefined;
629
+ }
630
+ depth = depth === -1 ? -1 : depth;
631
+ const newDepth = depth === -1 ? depth : depth - 1;
632
+ if (depth === 0) {
633
+ // Reached max depth
634
+ return undefined;
635
+ }
636
+ if (!this.connectionsByDestinationNode.hasOwnProperty(nodeName)) {
637
+ // Node does not have incoming connections
638
+ return undefined;
639
+ }
640
+ if (!this.connectionsByDestinationNode[nodeName].hasOwnProperty(type)) {
641
+ // Node does not have incoming connections of given type
642
+ return undefined;
643
+ }
644
+ checkedNodes = checkedNodes || [];
645
+ if (checkedNodes.includes(nodeName)) {
646
+ // Node got checked already before
647
+ return undefined;
648
+ }
649
+ checkedNodes.push(nodeName);
650
+ let outputIndex;
651
+ for (const connectionsByIndex of this.connectionsByDestinationNode[nodeName][type]) {
652
+ if (!connectionsByIndex) {
653
+ continue;
654
+ }
655
+ for (let destinationIndex = 0; destinationIndex < connectionsByIndex.length; destinationIndex++) {
656
+ const connection = connectionsByIndex[destinationIndex];
657
+ if (parentNodeName === connection.node) {
658
+ return {
659
+ sourceIndex: connection.index,
660
+ destinationIndex,
661
+ };
662
+ }
663
+ if (checkedNodes.includes(connection.node)) {
664
+ // Node got checked already before so continue with the next one
665
+ continue;
666
+ }
667
+ outputIndex = this.getNodeConnectionIndexes(connection.node, parentNodeName, type, newDepth, checkedNodes);
668
+ if (outputIndex !== undefined) {
669
+ return outputIndex;
670
+ }
671
+ }
672
+ }
673
+ return undefined;
674
+ }
675
+ /**
676
+ * Returns from which of the given nodes the workflow should get started from
677
+ *
678
+ * @param {string[]} nodeNames The potential start nodes
679
+ */
680
+ __getStartNode(nodeNames) {
681
+ // Check if there are any trigger or poll nodes and then return the first one
682
+ let node;
683
+ let nodeType;
684
+ for (const nodeName of nodeNames) {
685
+ node = this.nodes[nodeName];
686
+ if (nodeNames.length === 1 && !node.disabled) {
687
+ return node;
688
+ }
689
+ nodeType = this.nodeTypes.getByNameAndVersion(node.type, node.typeVersion);
690
+ // TODO: Identify later differently
691
+ if (nodeType.description.name === constants_1.MANUAL_CHAT_TRIGGER_LANGCHAIN_NODE_TYPE) {
692
+ continue;
693
+ }
694
+ if (nodeType && (nodeType.trigger !== undefined || nodeType.poll !== undefined)) {
695
+ if (node.disabled === true) {
696
+ continue;
697
+ }
698
+ return node;
699
+ }
700
+ }
701
+ const sortedNodeNames = Object.values(this.nodes)
702
+ .sort((a, b) => constants_1.STARTING_NODE_TYPES.indexOf(a.type) - constants_1.STARTING_NODE_TYPES.indexOf(b.type))
703
+ .map((n) => n.name);
704
+ for (const nodeName of sortedNodeNames) {
705
+ node = this.nodes[nodeName];
706
+ if (constants_1.STARTING_NODE_TYPES.includes(node.type)) {
707
+ if (node.disabled === true) {
708
+ continue;
709
+ }
710
+ return node;
711
+ }
712
+ }
713
+ return undefined;
714
+ }
715
+ /**
716
+ * Returns the start node to start the workflow from
717
+ *
718
+ */
719
+ getStartNode(destinationNode) {
720
+ if (destinationNode) {
721
+ // Find the highest parent nodes of the given one
722
+ const nodeNames = this.getHighestNode(destinationNode);
723
+ if (nodeNames.length === 0) {
724
+ // If no parent nodes have been found then only the destination-node
725
+ // is in the tree so add that one
726
+ nodeNames.push(destinationNode);
727
+ }
728
+ // Check which node to return as start node
729
+ const node = this.__getStartNode(nodeNames);
730
+ if (node !== undefined) {
731
+ return node;
732
+ }
733
+ // If none of the above did find anything simply return the
734
+ // first parent node in the list
735
+ return this.nodes[nodeNames[0]];
736
+ }
737
+ return this.__getStartNode(Object.keys(this.nodes));
738
+ }
739
+ getConnectionsBetweenNodes(sources, targets) {
740
+ const result = [];
741
+ for (const source of sources) {
742
+ for (const type of Object.keys(this.connectionsBySourceNode[source] ?? {})) {
743
+ for (const sourceIndex of Object.keys(this.connectionsBySourceNode[source][type])) {
744
+ for (const connectionIndex of Object.keys(this.connectionsBySourceNode[source][type][parseInt(sourceIndex, 10)] ?? [])) {
745
+ const targetConnectionData = this.connectionsBySourceNode[source][type][parseInt(sourceIndex, 10)]?.[parseInt(connectionIndex, 10)];
746
+ if (targetConnectionData && targets.includes(targetConnectionData?.node)) {
747
+ result.push([
748
+ {
749
+ node: source,
750
+ index: parseInt(sourceIndex, 10),
751
+ type: type,
752
+ },
753
+ targetConnectionData,
754
+ ]);
755
+ }
756
+ }
757
+ }
758
+ }
759
+ }
760
+ return result;
761
+ }
762
+ }
763
+ exports.Workflow = Workflow;
764
+ });
765
+ //# sourceMappingURL=workflow.js.map