n8n-workflow 2.31.3 → 2.32.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 (406) hide show
  1. package/dist/cjs/augment-object.js +136 -146
  2. package/dist/cjs/augment-object.js.map +1 -1
  3. package/dist/cjs/build.tsbuildinfo +1 -1
  4. package/dist/cjs/common/find-ai-root-node-names.js +36 -46
  5. package/dist/cjs/common/find-ai-root-node-names.js.map +1 -1
  6. package/dist/cjs/common/get-child-nodes.js +8 -18
  7. package/dist/cjs/common/get-child-nodes.js.map +1 -1
  8. package/dist/cjs/common/get-connected-nodes.js +84 -94
  9. package/dist/cjs/common/get-connected-nodes.js.map +1 -1
  10. package/dist/cjs/common/get-node-by-name.js +16 -26
  11. package/dist/cjs/common/get-node-by-name.js.map +1 -1
  12. package/dist/cjs/common/get-parent-nodes.js +14 -24
  13. package/dist/cjs/common/get-parent-nodes.js.map +1 -1
  14. package/dist/cjs/common/index.js +9 -19
  15. package/dist/cjs/common/index.js.map +1 -1
  16. package/dist/cjs/common/map-connections-by-destination.js +31 -41
  17. package/dist/cjs/common/map-connections-by-destination.js.map +1 -1
  18. package/dist/cjs/common/resolve-variables.d.ts +8 -0
  19. package/dist/cjs/common/resolve-variables.d.ts.map +1 -1
  20. package/dist/cjs/common/resolve-variables.js +46 -33
  21. package/dist/cjs/common/resolve-variables.js.map +1 -1
  22. package/dist/cjs/connections-diff.js +58 -68
  23. package/dist/cjs/connections-diff.js.map +1 -1
  24. package/dist/cjs/constants.d.ts +3 -3
  25. package/dist/cjs/constants.d.ts.map +1 -1
  26. package/dist/cjs/constants.js +157 -166
  27. package/dist/cjs/constants.js.map +1 -1
  28. package/dist/cjs/credential-domain-restrictions.js +153 -163
  29. package/dist/cjs/credential-domain-restrictions.js.map +1 -1
  30. package/dist/cjs/cron.d.ts.map +1 -1
  31. package/dist/cjs/cron.js +25 -35
  32. package/dist/cjs/cron.js.map +1 -1
  33. package/dist/cjs/data-table.types.js +10 -20
  34. package/dist/cjs/data-table.types.js.map +1 -1
  35. package/dist/cjs/dynamic-credentials-helpers.js +93 -103
  36. package/dist/cjs/dynamic-credentials-helpers.js.map +1 -1
  37. package/dist/cjs/errors/abstract/execution-base.error.d.ts.map +1 -1
  38. package/dist/cjs/errors/abstract/execution-base.error.js +41 -51
  39. package/dist/cjs/errors/abstract/execution-base.error.js.map +1 -1
  40. package/dist/cjs/errors/abstract/node.error.d.ts.map +1 -1
  41. package/dist/cjs/errors/abstract/node.error.js +142 -152
  42. package/dist/cjs/errors/abstract/node.error.js.map +1 -1
  43. package/dist/cjs/errors/base/base.error.d.ts.map +1 -1
  44. package/dist/cjs/errors/base/base.error.js +35 -45
  45. package/dist/cjs/errors/base/base.error.js.map +1 -1
  46. package/dist/cjs/errors/base/operational.error.d.ts.map +1 -1
  47. package/dist/cjs/errors/base/operational.error.js +17 -27
  48. package/dist/cjs/errors/base/operational.error.js.map +1 -1
  49. package/dist/cjs/errors/base/unexpected.error.d.ts.map +1 -1
  50. package/dist/cjs/errors/base/unexpected.error.js +17 -27
  51. package/dist/cjs/errors/base/unexpected.error.js.map +1 -1
  52. package/dist/cjs/errors/base/user.error.d.ts.map +1 -1
  53. package/dist/cjs/errors/base/user.error.js +17 -27
  54. package/dist/cjs/errors/base/user.error.js.map +1 -1
  55. package/dist/cjs/errors/cli-subworkflow-operation.error.js +7 -17
  56. package/dist/cjs/errors/cli-subworkflow-operation.error.js.map +1 -1
  57. package/dist/cjs/errors/db-connection-timeout-error.d.ts.map +1 -1
  58. package/dist/cjs/errors/db-connection-timeout-error.js +11 -21
  59. package/dist/cjs/errors/db-connection-timeout-error.js.map +1 -1
  60. package/dist/cjs/errors/execution-cancelled.error.d.ts.map +1 -1
  61. package/dist/cjs/errors/execution-cancelled.error.js +33 -43
  62. package/dist/cjs/errors/execution-cancelled.error.js.map +1 -1
  63. package/dist/cjs/errors/expression-class-extension.error.d.ts.map +1 -1
  64. package/dist/cjs/errors/expression-class-extension.error.js +9 -19
  65. package/dist/cjs/errors/expression-class-extension.error.js.map +1 -1
  66. package/dist/cjs/errors/expression-computed-destructuring.error.d.ts.map +1 -1
  67. package/dist/cjs/errors/expression-computed-destructuring.error.js +9 -19
  68. package/dist/cjs/errors/expression-computed-destructuring.error.js.map +1 -1
  69. package/dist/cjs/errors/expression-destructuring.error.d.ts.map +1 -1
  70. package/dist/cjs/errors/expression-destructuring.error.js +9 -19
  71. package/dist/cjs/errors/expression-destructuring.error.js.map +1 -1
  72. package/dist/cjs/errors/expression-extension.error.js +7 -17
  73. package/dist/cjs/errors/expression-extension.error.js.map +1 -1
  74. package/dist/cjs/errors/expression-reserved-variable.error.d.ts.map +1 -1
  75. package/dist/cjs/errors/expression-reserved-variable.error.js +9 -19
  76. package/dist/cjs/errors/expression-reserved-variable.error.js.map +1 -1
  77. package/dist/cjs/errors/expression-with-statement.error.d.ts.map +1 -1
  78. package/dist/cjs/errors/expression-with-statement.error.js +9 -19
  79. package/dist/cjs/errors/expression-with-statement.error.js.map +1 -1
  80. package/dist/cjs/errors/expression.error.d.ts.map +1 -1
  81. package/dist/cjs/errors/expression.error.js +33 -43
  82. package/dist/cjs/errors/expression.error.js.map +1 -1
  83. package/dist/cjs/errors/index.js +62 -72
  84. package/dist/cjs/errors/index.js.map +1 -1
  85. package/dist/cjs/errors/node-api.error.d.ts.map +1 -1
  86. package/dist/cjs/errors/node-api.error.js +227 -237
  87. package/dist/cjs/errors/node-api.error.js.map +1 -1
  88. package/dist/cjs/errors/node-operation.error.d.ts.map +1 -1
  89. package/dist/cjs/errors/node-operation.error.js +43 -53
  90. package/dist/cjs/errors/node-operation.error.js.map +1 -1
  91. package/dist/cjs/errors/node-ssl.error.d.ts.map +1 -1
  92. package/dist/cjs/errors/node-ssl.error.js +9 -19
  93. package/dist/cjs/errors/node-ssl.error.js.map +1 -1
  94. package/dist/cjs/errors/subworkflow-operation.error.d.ts.map +1 -1
  95. package/dist/cjs/errors/subworkflow-operation.error.js +18 -28
  96. package/dist/cjs/errors/subworkflow-operation.error.js.map +1 -1
  97. package/dist/cjs/errors/trigger-close.error.d.ts.map +1 -1
  98. package/dist/cjs/errors/trigger-close.error.js +11 -21
  99. package/dist/cjs/errors/trigger-close.error.js.map +1 -1
  100. package/dist/cjs/errors/webhook-taken.error.d.ts.map +1 -1
  101. package/dist/cjs/errors/webhook-taken.error.js +9 -19
  102. package/dist/cjs/errors/webhook-taken.error.js.map +1 -1
  103. package/dist/cjs/errors/workflow-activation.error.d.ts.map +1 -1
  104. package/dist/cjs/errors/workflow-activation.error.js +54 -64
  105. package/dist/cjs/errors/workflow-activation.error.js.map +1 -1
  106. package/dist/cjs/errors/workflow-configuration.error.js +10 -20
  107. package/dist/cjs/errors/workflow-configuration.error.js.map +1 -1
  108. package/dist/cjs/errors/workflow-deactivation.error.js +7 -17
  109. package/dist/cjs/errors/workflow-deactivation.error.js.map +1 -1
  110. package/dist/cjs/errors/workflow-operation.error.d.ts.map +1 -1
  111. package/dist/cjs/errors/workflow-operation.error.js +20 -30
  112. package/dist/cjs/errors/workflow-operation.error.js.map +1 -1
  113. package/dist/cjs/evaluation-helpers.js +16 -26
  114. package/dist/cjs/evaluation-helpers.js.map +1 -1
  115. package/dist/cjs/execution-context-establishment-hooks.d.ts.map +1 -1
  116. package/dist/cjs/execution-context-establishment-hooks.js +43 -53
  117. package/dist/cjs/execution-context-establishment-hooks.js.map +1 -1
  118. package/dist/cjs/execution-context.d.ts +14 -14
  119. package/dist/cjs/execution-context.d.ts.map +1 -1
  120. package/dist/cjs/execution-context.js +203 -213
  121. package/dist/cjs/execution-context.js.map +1 -1
  122. package/dist/cjs/execution-status.d.ts +2 -2
  123. package/dist/cjs/execution-status.d.ts.map +1 -1
  124. package/dist/cjs/execution-status.js +27 -37
  125. package/dist/cjs/execution-status.js.map +1 -1
  126. package/dist/cjs/expression-evaluator-proxy.d.ts.map +1 -1
  127. package/dist/cjs/expression-evaluator-proxy.js +18 -28
  128. package/dist/cjs/expression-evaluator-proxy.js.map +1 -1
  129. package/dist/cjs/expression-sandboxing.d.ts.map +1 -1
  130. package/dist/cjs/expression-sandboxing.js +447 -457
  131. package/dist/cjs/expression-sandboxing.js.map +1 -1
  132. package/dist/cjs/expression.d.ts.map +1 -1
  133. package/dist/cjs/expression.js +535 -546
  134. package/dist/cjs/expression.js.map +1 -1
  135. package/dist/cjs/expressions/expression-helpers.d.ts.map +1 -1
  136. package/dist/cjs/expressions/expression-helpers.js +13 -23
  137. package/dist/cjs/expressions/expression-helpers.js.map +1 -1
  138. package/dist/cjs/extensions/array-extensions.js +591 -601
  139. package/dist/cjs/extensions/array-extensions.js.map +1 -1
  140. package/dist/cjs/extensions/boolean-extensions.d.ts +1 -1
  141. package/dist/cjs/extensions/boolean-extensions.js +38 -48
  142. package/dist/cjs/extensions/boolean-extensions.js.map +1 -1
  143. package/dist/cjs/extensions/date-extensions.js +507 -517
  144. package/dist/cjs/extensions/date-extensions.js.map +1 -1
  145. package/dist/cjs/extensions/expression-extension.d.ts.map +1 -1
  146. package/dist/cjs/extensions/expression-extension.js +455 -465
  147. package/dist/cjs/extensions/expression-extension.js.map +1 -1
  148. package/dist/cjs/extensions/expression-parser.d.ts.map +1 -1
  149. package/dist/cjs/extensions/expression-parser.js +82 -92
  150. package/dist/cjs/extensions/expression-parser.js.map +1 -1
  151. package/dist/cjs/extensions/extended-functions.d.ts +10 -18
  152. package/dist/cjs/extensions/extended-functions.d.ts.map +1 -1
  153. package/dist/cjs/extensions/extended-functions.js +80 -90
  154. package/dist/cjs/extensions/extended-functions.js.map +1 -1
  155. package/dist/cjs/extensions/extensions.js +2 -12
  156. package/dist/cjs/extensions/index.js +10 -20
  157. package/dist/cjs/extensions/index.js.map +1 -1
  158. package/dist/cjs/extensions/number-extensions.js +226 -236
  159. package/dist/cjs/extensions/number-extensions.js.map +1 -1
  160. package/dist/cjs/extensions/object-extensions.js +274 -284
  161. package/dist/cjs/extensions/object-extensions.js.map +1 -1
  162. package/dist/cjs/extensions/string-extensions.d.ts +1 -1
  163. package/dist/cjs/extensions/string-extensions.d.ts.map +1 -1
  164. package/dist/cjs/extensions/string-extensions.js +769 -779
  165. package/dist/cjs/extensions/string-extensions.js.map +1 -1
  166. package/dist/cjs/extensions/utils.d.ts.map +1 -1
  167. package/dist/cjs/extensions/utils.js +35 -45
  168. package/dist/cjs/extensions/utils.js.map +1 -1
  169. package/dist/cjs/from-ai-parse-utils.js +393 -403
  170. package/dist/cjs/from-ai-parse-utils.js.map +1 -1
  171. package/dist/cjs/global-state.js +12 -22
  172. package/dist/cjs/global-state.js.map +1 -1
  173. package/dist/cjs/graph/graph-utils.js +166 -176
  174. package/dist/cjs/graph/graph-utils.js.map +1 -1
  175. package/dist/cjs/highlighted-data.js +13 -23
  176. package/dist/cjs/highlighted-data.js.map +1 -1
  177. package/dist/cjs/index.js +105 -115
  178. package/dist/cjs/index.js.map +1 -1
  179. package/dist/cjs/interfaces.d.ts +112 -22
  180. package/dist/cjs/interfaces.d.ts.map +1 -1
  181. package/dist/cjs/interfaces.js +62 -72
  182. package/dist/cjs/interfaces.js.map +1 -1
  183. package/dist/cjs/jmespath-query.js +26 -36
  184. package/dist/cjs/jmespath-query.js.map +1 -1
  185. package/dist/cjs/logger-proxy.d.ts.map +1 -1
  186. package/dist/cjs/logger-proxy.js +15 -25
  187. package/dist/cjs/logger-proxy.js.map +1 -1
  188. package/dist/cjs/mcp-helpers.js +10 -20
  189. package/dist/cjs/mcp-helpers.js.map +1 -1
  190. package/dist/cjs/message-event-bus.d.ts +184 -165
  191. package/dist/cjs/message-event-bus.d.ts.map +1 -1
  192. package/dist/cjs/message-event-bus.js +207 -217
  193. package/dist/cjs/message-event-bus.js.map +1 -1
  194. package/dist/cjs/metadata-utils.js +35 -45
  195. package/dist/cjs/metadata-utils.js.map +1 -1
  196. package/dist/cjs/native-methods/array.methods.js +527 -537
  197. package/dist/cjs/native-methods/array.methods.js.map +1 -1
  198. package/dist/cjs/native-methods/boolean.methods.js +18 -28
  199. package/dist/cjs/native-methods/boolean.methods.js.map +1 -1
  200. package/dist/cjs/native-methods/index.js +16 -26
  201. package/dist/cjs/native-methods/index.js.map +1 -1
  202. package/dist/cjs/native-methods/number.methods.js +79 -89
  203. package/dist/cjs/native-methods/number.methods.js.map +1 -1
  204. package/dist/cjs/native-methods/object.methods.js +7 -17
  205. package/dist/cjs/native-methods/object.methods.js.map +1 -1
  206. package/dist/cjs/native-methods/string.methods.js +474 -484
  207. package/dist/cjs/native-methods/string.methods.js.map +1 -1
  208. package/dist/cjs/node-grouping-validation.d.ts +6 -0
  209. package/dist/cjs/node-grouping-validation.d.ts.map +1 -1
  210. package/dist/cjs/node-grouping-validation.js +165 -144
  211. package/dist/cjs/node-grouping-validation.js.map +1 -1
  212. package/dist/cjs/node-helpers.d.ts.map +1 -1
  213. package/dist/cjs/node-helpers.js +1486 -1493
  214. package/dist/cjs/node-helpers.js.map +1 -1
  215. package/dist/cjs/node-parameters/filter-parameter.d.ts.map +1 -1
  216. package/dist/cjs/node-parameters/filter-parameter.js +315 -325
  217. package/dist/cjs/node-parameters/filter-parameter.js.map +1 -1
  218. package/dist/cjs/node-parameters/node-parameter-value-type-guard.js +105 -115
  219. package/dist/cjs/node-parameters/node-parameter-value-type-guard.js.map +1 -1
  220. package/dist/cjs/node-parameters/parameter-type-validation.js +120 -130
  221. package/dist/cjs/node-parameters/parameter-type-validation.js.map +1 -1
  222. package/dist/cjs/node-parameters/path-utils.js +21 -31
  223. package/dist/cjs/node-parameters/path-utils.js.map +1 -1
  224. package/dist/cjs/node-parameters/rename-node-utils.js +22 -32
  225. package/dist/cjs/node-parameters/rename-node-utils.js.map +1 -1
  226. package/dist/cjs/node-reference-parser-utils.js +472 -482
  227. package/dist/cjs/node-reference-parser-utils.js.map +1 -1
  228. package/dist/cjs/node-validation.js +59 -69
  229. package/dist/cjs/node-validation.js.map +1 -1
  230. package/dist/cjs/observable-object.js +56 -66
  231. package/dist/cjs/observable-object.js.map +1 -1
  232. package/dist/cjs/redaction-channels.js +36 -46
  233. package/dist/cjs/redaction-channels.js.map +1 -1
  234. package/dist/cjs/run-execution-data/run-execution-data.js +15 -25
  235. package/dist/cjs/run-execution-data/run-execution-data.js.map +1 -1
  236. package/dist/cjs/run-execution-data/run-execution-data.v0.js +2 -12
  237. package/dist/cjs/run-execution-data/run-execution-data.v1.js +26 -36
  238. package/dist/cjs/run-execution-data/run-execution-data.v1.js.map +1 -1
  239. package/dist/cjs/run-execution-data-factory.js +113 -123
  240. package/dist/cjs/run-execution-data-factory.js.map +1 -1
  241. package/dist/cjs/schemas.d.ts +13 -13
  242. package/dist/cjs/schemas.d.ts.map +1 -1
  243. package/dist/cjs/schemas.js +351 -360
  244. package/dist/cjs/schemas.js.map +1 -1
  245. package/dist/cjs/sub-workflow-output.js +10 -20
  246. package/dist/cjs/sub-workflow-output.js.map +1 -1
  247. package/dist/cjs/telemetry-helpers.d.ts.map +1 -1
  248. package/dist/cjs/telemetry-helpers.js +716 -726
  249. package/dist/cjs/telemetry-helpers.js.map +1 -1
  250. package/dist/cjs/tool-helpers.js +18 -28
  251. package/dist/cjs/tool-helpers.js.map +1 -1
  252. package/dist/cjs/trigger-identity.js +41 -51
  253. package/dist/cjs/trigger-identity.js.map +1 -1
  254. package/dist/cjs/trimmed-task-data.js +21 -31
  255. package/dist/cjs/trimmed-task-data.js.map +1 -1
  256. package/dist/cjs/type-guards.d.ts +3 -3
  257. package/dist/cjs/type-guards.d.ts.map +1 -1
  258. package/dist/cjs/type-guards.js +74 -84
  259. package/dist/cjs/type-guards.js.map +1 -1
  260. package/dist/cjs/type-validation.d.ts.map +1 -1
  261. package/dist/cjs/type-validation.js +383 -393
  262. package/dist/cjs/type-validation.js.map +1 -1
  263. package/dist/cjs/utils.d.ts +2 -2
  264. package/dist/cjs/utils.d.ts.map +1 -1
  265. package/dist/cjs/utils.js +430 -440
  266. package/dist/cjs/utils.js.map +1 -1
  267. package/dist/cjs/versioned-node-type.d.ts.map +1 -1
  268. package/dist/cjs/versioned-node-type.js +20 -30
  269. package/dist/cjs/versioned-node-type.js.map +1 -1
  270. package/dist/cjs/workflow-checksum.js +67 -77
  271. package/dist/cjs/workflow-checksum.js.map +1 -1
  272. package/dist/cjs/workflow-data-proxy-env-provider.js +58 -68
  273. package/dist/cjs/workflow-data-proxy-env-provider.js.map +1 -1
  274. package/dist/cjs/workflow-data-proxy-helpers.js +8 -18
  275. package/dist/cjs/workflow-data-proxy-helpers.js.map +1 -1
  276. package/dist/cjs/workflow-data-proxy.d.ts.map +1 -1
  277. package/dist/cjs/workflow-data-proxy.js +1162 -1172
  278. package/dist/cjs/workflow-data-proxy.js.map +1 -1
  279. package/dist/cjs/workflow-diff.d.ts +2 -1
  280. package/dist/cjs/workflow-diff.d.ts.map +1 -1
  281. package/dist/cjs/workflow-diff.js +292 -300
  282. package/dist/cjs/workflow-diff.js.map +1 -1
  283. package/dist/cjs/workflow-environments-helper.js +23 -33
  284. package/dist/cjs/workflow-environments-helper.js.map +1 -1
  285. package/dist/cjs/workflow-expression.d.ts.map +1 -1
  286. package/dist/cjs/workflow-expression.js +97 -107
  287. package/dist/cjs/workflow-expression.js.map +1 -1
  288. package/dist/cjs/workflow-structure-validation.d.ts.map +1 -1
  289. package/dist/cjs/workflow-structure-validation.js +140 -150
  290. package/dist/cjs/workflow-structure-validation.js.map +1 -1
  291. package/dist/cjs/workflow-validation.js +40 -50
  292. package/dist/cjs/workflow-validation.js.map +1 -1
  293. package/dist/cjs/workflow.d.ts.map +1 -1
  294. package/dist/cjs/workflow.js +612 -622
  295. package/dist/cjs/workflow.js.map +1 -1
  296. package/dist/esm/common/get-child-nodes.js.map +1 -1
  297. package/dist/esm/common/get-connected-nodes.js.map +1 -1
  298. package/dist/esm/common/get-parent-nodes.js.map +1 -1
  299. package/dist/esm/common/resolve-variables.d.ts +8 -0
  300. package/dist/esm/common/resolve-variables.d.ts.map +1 -1
  301. package/dist/esm/common/resolve-variables.js +22 -0
  302. package/dist/esm/common/resolve-variables.js.map +1 -1
  303. package/dist/esm/constants.d.ts +3 -3
  304. package/dist/esm/constants.d.ts.map +1 -1
  305. package/dist/esm/cron.d.ts.map +1 -1
  306. package/dist/esm/errors/abstract/execution-base.error.d.ts.map +1 -1
  307. package/dist/esm/errors/abstract/execution-base.error.js.map +1 -1
  308. package/dist/esm/errors/abstract/node.error.d.ts.map +1 -1
  309. package/dist/esm/errors/abstract/node.error.js.map +1 -1
  310. package/dist/esm/errors/base/base.error.d.ts.map +1 -1
  311. package/dist/esm/errors/base/base.error.js.map +1 -1
  312. package/dist/esm/errors/base/operational.error.d.ts.map +1 -1
  313. package/dist/esm/errors/base/operational.error.js.map +1 -1
  314. package/dist/esm/errors/base/unexpected.error.d.ts.map +1 -1
  315. package/dist/esm/errors/base/unexpected.error.js.map +1 -1
  316. package/dist/esm/errors/base/user.error.d.ts.map +1 -1
  317. package/dist/esm/errors/base/user.error.js.map +1 -1
  318. package/dist/esm/errors/db-connection-timeout-error.d.ts.map +1 -1
  319. package/dist/esm/errors/execution-cancelled.error.d.ts.map +1 -1
  320. package/dist/esm/errors/expression-class-extension.error.d.ts.map +1 -1
  321. package/dist/esm/errors/expression-computed-destructuring.error.d.ts.map +1 -1
  322. package/dist/esm/errors/expression-destructuring.error.d.ts.map +1 -1
  323. package/dist/esm/errors/expression-reserved-variable.error.d.ts.map +1 -1
  324. package/dist/esm/errors/expression-with-statement.error.d.ts.map +1 -1
  325. package/dist/esm/errors/expression.error.d.ts.map +1 -1
  326. package/dist/esm/errors/node-api.error.d.ts.map +1 -1
  327. package/dist/esm/errors/node-api.error.js.map +1 -1
  328. package/dist/esm/errors/node-operation.error.d.ts.map +1 -1
  329. package/dist/esm/errors/node-operation.error.js.map +1 -1
  330. package/dist/esm/errors/node-ssl.error.d.ts.map +1 -1
  331. package/dist/esm/errors/subworkflow-operation.error.d.ts.map +1 -1
  332. package/dist/esm/errors/trigger-close.error.d.ts.map +1 -1
  333. package/dist/esm/errors/trigger-close.error.js.map +1 -1
  334. package/dist/esm/errors/webhook-taken.error.d.ts.map +1 -1
  335. package/dist/esm/errors/workflow-activation.error.d.ts.map +1 -1
  336. package/dist/esm/errors/workflow-activation.error.js.map +1 -1
  337. package/dist/esm/errors/workflow-operation.error.d.ts.map +1 -1
  338. package/dist/esm/execution-context-establishment-hooks.d.ts.map +1 -1
  339. package/dist/esm/execution-context.d.ts +14 -14
  340. package/dist/esm/execution-context.d.ts.map +1 -1
  341. package/dist/esm/execution-status.d.ts +2 -2
  342. package/dist/esm/execution-status.d.ts.map +1 -1
  343. package/dist/esm/expression-evaluator-proxy.d.ts.map +1 -1
  344. package/dist/esm/expression-sandboxing.d.ts.map +1 -1
  345. package/dist/esm/expression-sandboxing.js.map +1 -1
  346. package/dist/esm/expression.d.ts.map +1 -1
  347. package/dist/esm/expression.js.map +1 -1
  348. package/dist/esm/expressions/expression-helpers.d.ts.map +1 -1
  349. package/dist/esm/extensions/boolean-extensions.d.ts +1 -1
  350. package/dist/esm/extensions/expression-extension.d.ts.map +1 -1
  351. package/dist/esm/extensions/expression-parser.d.ts.map +1 -1
  352. package/dist/esm/extensions/extended-functions.d.ts +10 -18
  353. package/dist/esm/extensions/extended-functions.d.ts.map +1 -1
  354. package/dist/esm/extensions/number-extensions.js.map +1 -1
  355. package/dist/esm/extensions/string-extensions.d.ts +1 -1
  356. package/dist/esm/extensions/string-extensions.d.ts.map +1 -1
  357. package/dist/esm/extensions/string-extensions.js.map +1 -1
  358. package/dist/esm/extensions/utils.d.ts.map +1 -1
  359. package/dist/esm/from-ai-parse-utils.js.map +1 -1
  360. package/dist/esm/interfaces.d.ts +112 -22
  361. package/dist/esm/interfaces.d.ts.map +1 -1
  362. package/dist/esm/interfaces.js.map +1 -1
  363. package/dist/esm/logger-proxy.d.ts.map +1 -1
  364. package/dist/esm/message-event-bus.d.ts +184 -165
  365. package/dist/esm/message-event-bus.d.ts.map +1 -1
  366. package/dist/esm/message-event-bus.js +2 -2
  367. package/dist/esm/message-event-bus.js.map +1 -1
  368. package/dist/esm/node-grouping-validation.d.ts +6 -0
  369. package/dist/esm/node-grouping-validation.d.ts.map +1 -1
  370. package/dist/esm/node-grouping-validation.js +34 -5
  371. package/dist/esm/node-grouping-validation.js.map +1 -1
  372. package/dist/esm/node-helpers.d.ts.map +1 -1
  373. package/dist/esm/node-helpers.js +3 -0
  374. package/dist/esm/node-helpers.js.map +1 -1
  375. package/dist/esm/node-parameters/filter-parameter.d.ts.map +1 -1
  376. package/dist/esm/node-parameters/filter-parameter.js.map +1 -1
  377. package/dist/esm/node-reference-parser-utils.js.map +1 -1
  378. package/dist/esm/run-execution-data-factory.js.map +1 -1
  379. package/dist/esm/schemas.d.ts +13 -13
  380. package/dist/esm/schemas.d.ts.map +1 -1
  381. package/dist/esm/schemas.js +1 -0
  382. package/dist/esm/schemas.js.map +1 -1
  383. package/dist/esm/telemetry-helpers.d.ts.map +1 -1
  384. package/dist/esm/telemetry-helpers.js.map +1 -1
  385. package/dist/esm/type-guards.d.ts +3 -3
  386. package/dist/esm/type-guards.d.ts.map +1 -1
  387. package/dist/esm/type-validation.d.ts.map +1 -1
  388. package/dist/esm/type-validation.js.map +1 -1
  389. package/dist/esm/typecheck.tsbuildinfo +1 -1
  390. package/dist/esm/utils.d.ts +2 -2
  391. package/dist/esm/utils.d.ts.map +1 -1
  392. package/dist/esm/utils.js.map +1 -1
  393. package/dist/esm/versioned-node-type.d.ts.map +1 -1
  394. package/dist/esm/workflow-data-proxy.d.ts.map +1 -1
  395. package/dist/esm/workflow-data-proxy.js.map +1 -1
  396. package/dist/esm/workflow-diff.d.ts +2 -1
  397. package/dist/esm/workflow-diff.d.ts.map +1 -1
  398. package/dist/esm/workflow-diff.js +3 -1
  399. package/dist/esm/workflow-diff.js.map +1 -1
  400. package/dist/esm/workflow-expression.d.ts.map +1 -1
  401. package/dist/esm/workflow-expression.js.map +1 -1
  402. package/dist/esm/workflow-structure-validation.d.ts.map +1 -1
  403. package/dist/esm/workflow-structure-validation.js.map +1 -1
  404. package/dist/esm/workflow.d.ts.map +1 -1
  405. package/dist/esm/workflow.js.map +1 -1
  406. package/package.json +9 -8
@@ -1,448 +1,438 @@
1
+ "use strict";
1
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
2
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
3
4
  };
4
- (function (factory) {
5
- if (typeof module === "object" && typeof module.exports === "object") {
6
- var v = factory(require, exports);
7
- if (v !== undefined) module.exports = v;
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.tryToParseJwt = exports.tryToParseUrl = exports.getValueDescription = exports.tryToParseJsonToFormFields = exports.tryToParseBinary = exports.tryToParseObject = exports.tryToParseArray = exports.tryToParseTime = exports.tryToParseDateTime = exports.tryToParseBoolean = exports.tryToParseAlphanumericString = exports.tryToParseString = exports.tryToParseNumber = void 0;
7
+ exports.validateFieldType = validateFieldType;
8
+ const isObject_1 = __importDefault(require("lodash/isObject"));
9
+ const luxon_1 = require("luxon");
10
+ const errors_1 = require("./errors");
11
+ const utils_1 = require("./utils");
12
+ const type_guards_1 = require("./type-guards");
13
+ const tryToParseNumber = (value) => {
14
+ const isValidNumber = !isNaN(Number(value));
15
+ if (!isValidNumber) {
16
+ throw new errors_1.UserError('Failed to parse value to number', { extra: { value } });
8
17
  }
9
- else if (typeof define === "function" && define.amd) {
10
- define(["require", "exports", "lodash/isObject", "luxon", "./errors", "./utils", "./type-guards"], factory);
18
+ return Number(value);
19
+ };
20
+ exports.tryToParseNumber = tryToParseNumber;
21
+ const tryToParseString = (value) => {
22
+ if (typeof value === 'object')
23
+ return JSON.stringify(value);
24
+ if (typeof value === 'undefined')
25
+ return '';
26
+ if (typeof value === 'string' ||
27
+ typeof value === 'bigint' ||
28
+ typeof value === 'boolean' ||
29
+ typeof value === 'number') {
30
+ return value.toString();
11
31
  }
12
- })(function (require, exports) {
13
- "use strict";
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.tryToParseJwt = exports.tryToParseUrl = exports.getValueDescription = exports.tryToParseJsonToFormFields = exports.tryToParseBinary = exports.tryToParseObject = exports.tryToParseArray = exports.tryToParseTime = exports.tryToParseDateTime = exports.tryToParseBoolean = exports.tryToParseAlphanumericString = exports.tryToParseString = exports.tryToParseNumber = void 0;
16
- exports.validateFieldType = validateFieldType;
17
- const isObject_1 = __importDefault(require("lodash/isObject"));
18
- const luxon_1 = require("luxon");
19
- const errors_1 = require("./errors");
20
- const utils_1 = require("./utils");
21
- const type_guards_1 = require("./type-guards");
22
- const tryToParseNumber = (value) => {
23
- const isValidNumber = !isNaN(Number(value));
24
- if (!isValidNumber) {
25
- throw new errors_1.UserError('Failed to parse value to number', { extra: { value } });
26
- }
27
- return Number(value);
28
- };
29
- exports.tryToParseNumber = tryToParseNumber;
30
- const tryToParseString = (value) => {
31
- if (typeof value === 'object')
32
- return JSON.stringify(value);
33
- if (typeof value === 'undefined')
34
- return '';
35
- if (typeof value === 'string' ||
36
- typeof value === 'bigint' ||
37
- typeof value === 'boolean' ||
38
- typeof value === 'number') {
39
- return value.toString();
40
- }
41
- return String(value);
42
- };
43
- exports.tryToParseString = tryToParseString;
44
- const tryToParseAlphanumericString = (value) => {
45
- const parsed = (0, exports.tryToParseString)(value);
46
- // We do not allow special characters, only letters, numbers and underscore
47
- // Numbers not allowed as the first character
48
- const regex = /^[a-zA-Z_][a-zA-Z0-9_]*$/;
49
- if (!regex.test(parsed)) {
50
- throw new errors_1.UserError('Value is not a valid alphanumeric string', { extra: { value } });
51
- }
52
- return parsed;
53
- };
54
- exports.tryToParseAlphanumericString = tryToParseAlphanumericString;
55
- const tryToParseBoolean = (value) => {
56
- if (typeof value === 'boolean') {
57
- return value;
32
+ return String(value);
33
+ };
34
+ exports.tryToParseString = tryToParseString;
35
+ const tryToParseAlphanumericString = (value) => {
36
+ const parsed = (0, exports.tryToParseString)(value);
37
+ // We do not allow special characters, only letters, numbers and underscore
38
+ // Numbers not allowed as the first character
39
+ const regex = /^[a-zA-Z_][a-zA-Z0-9_]*$/;
40
+ if (!regex.test(parsed)) {
41
+ throw new errors_1.UserError('Value is not a valid alphanumeric string', { extra: { value } });
42
+ }
43
+ return parsed;
44
+ };
45
+ exports.tryToParseAlphanumericString = tryToParseAlphanumericString;
46
+ const tryToParseBoolean = (value) => {
47
+ if (typeof value === 'boolean') {
48
+ return value;
49
+ }
50
+ if (typeof value === 'string' && ['true', 'false'].includes(value.toLowerCase())) {
51
+ return value.toLowerCase() === 'true';
52
+ }
53
+ // If value is not a empty string, try to parse it to a number
54
+ if (!(typeof value === 'string' && value.trim() === '')) {
55
+ const num = Number(value);
56
+ if (num === 0) {
57
+ return false;
58
58
  }
59
- if (typeof value === 'string' && ['true', 'false'].includes(value.toLowerCase())) {
60
- return value.toLowerCase() === 'true';
59
+ else if (num === 1) {
60
+ return true;
61
61
  }
62
- // If value is not a empty string, try to parse it to a number
63
- if (!(typeof value === 'string' && value.trim() === '')) {
64
- const num = Number(value);
65
- if (num === 0) {
66
- return false;
67
- }
68
- else if (num === 1) {
69
- return true;
70
- }
62
+ }
63
+ throw new errors_1.UserError('Failed to parse value as boolean', {
64
+ extra: { value },
65
+ });
66
+ };
67
+ exports.tryToParseBoolean = tryToParseBoolean;
68
+ const tryToParseDateTime = (value, defaultZone) => {
69
+ if (luxon_1.DateTime.isDateTime(value) && value.isValid) {
70
+ // Ignore the defaultZone if the value is already a DateTime
71
+ // because DateTime objects already contain the zone information
72
+ return value;
73
+ }
74
+ if (value instanceof Date) {
75
+ const fromJSDate = luxon_1.DateTime.fromJSDate(value, { zone: defaultZone });
76
+ if (fromJSDate.isValid) {
77
+ return fromJSDate;
71
78
  }
72
- throw new errors_1.UserError('Failed to parse value as boolean', {
73
- extra: { value },
74
- });
75
- };
76
- exports.tryToParseBoolean = tryToParseBoolean;
77
- const tryToParseDateTime = (value, defaultZone) => {
78
- if (luxon_1.DateTime.isDateTime(value) && value.isValid) {
79
- // Ignore the defaultZone if the value is already a DateTime
80
- // because DateTime objects already contain the zone information
79
+ }
80
+ const dateString = String(value).trim();
81
+ // Rely on luxon to parse different date formats
82
+ const isoDate = luxon_1.DateTime.fromISO(dateString, { zone: defaultZone, setZone: true });
83
+ if (isoDate.isValid) {
84
+ return isoDate;
85
+ }
86
+ const httpDate = luxon_1.DateTime.fromHTTP(dateString, { zone: defaultZone, setZone: true });
87
+ if (httpDate.isValid) {
88
+ return httpDate;
89
+ }
90
+ const rfc2822Date = luxon_1.DateTime.fromRFC2822(dateString, { zone: defaultZone, setZone: true });
91
+ if (rfc2822Date.isValid) {
92
+ return rfc2822Date;
93
+ }
94
+ const sqlDate = luxon_1.DateTime.fromSQL(dateString, { zone: defaultZone, setZone: true });
95
+ if (sqlDate.isValid) {
96
+ return sqlDate;
97
+ }
98
+ const parsedDateTime = luxon_1.DateTime.fromMillis(Date.parse(dateString), { zone: defaultZone });
99
+ if (parsedDateTime.isValid) {
100
+ return parsedDateTime;
101
+ }
102
+ throw new errors_1.UserError('Value is not a valid date', { extra: { dateString } });
103
+ };
104
+ exports.tryToParseDateTime = tryToParseDateTime;
105
+ const tryToParseTime = (value) => {
106
+ const isTimeInput = /^\d{2}:\d{2}(:\d{2})?((\-|\+)\d{4})?((\-|\+)\d{1,2}(:\d{2})?)?$/s.test(String(value));
107
+ if (!isTimeInput) {
108
+ throw new errors_1.UserError('Value is not a valid time', { extra: { value } });
109
+ }
110
+ return String(value);
111
+ };
112
+ exports.tryToParseTime = tryToParseTime;
113
+ const tryToParseArray = (value) => {
114
+ try {
115
+ if (typeof value === 'object' && Array.isArray(value)) {
81
116
  return value;
82
117
  }
83
- if (value instanceof Date) {
84
- const fromJSDate = luxon_1.DateTime.fromJSDate(value, { zone: defaultZone });
85
- if (fromJSDate.isValid) {
86
- return fromJSDate;
87
- }
88
- }
89
- const dateString = String(value).trim();
90
- // Rely on luxon to parse different date formats
91
- const isoDate = luxon_1.DateTime.fromISO(dateString, { zone: defaultZone, setZone: true });
92
- if (isoDate.isValid) {
93
- return isoDate;
94
- }
95
- const httpDate = luxon_1.DateTime.fromHTTP(dateString, { zone: defaultZone, setZone: true });
96
- if (httpDate.isValid) {
97
- return httpDate;
98
- }
99
- const rfc2822Date = luxon_1.DateTime.fromRFC2822(dateString, { zone: defaultZone, setZone: true });
100
- if (rfc2822Date.isValid) {
101
- return rfc2822Date;
102
- }
103
- const sqlDate = luxon_1.DateTime.fromSQL(dateString, { zone: defaultZone, setZone: true });
104
- if (sqlDate.isValid) {
105
- return sqlDate;
106
- }
107
- const parsedDateTime = luxon_1.DateTime.fromMillis(Date.parse(dateString), { zone: defaultZone });
108
- if (parsedDateTime.isValid) {
109
- return parsedDateTime;
110
- }
111
- throw new errors_1.UserError('Value is not a valid date', { extra: { dateString } });
112
- };
113
- exports.tryToParseDateTime = tryToParseDateTime;
114
- const tryToParseTime = (value) => {
115
- const isTimeInput = /^\d{2}:\d{2}(:\d{2})?((\-|\+)\d{4})?((\-|\+)\d{1,2}(:\d{2})?)?$/s.test(String(value));
116
- if (!isTimeInput) {
117
- throw new errors_1.UserError('Value is not a valid time', { extra: { value } });
118
- }
119
- return String(value);
120
- };
121
- exports.tryToParseTime = tryToParseTime;
122
- const tryToParseArray = (value) => {
118
+ let parsed;
123
119
  try {
124
- if (typeof value === 'object' && Array.isArray(value)) {
125
- return value;
126
- }
127
- let parsed;
128
- try {
129
- parsed = JSON.parse(String(value));
130
- }
131
- catch (e) {
132
- parsed = JSON.parse(String(value).replace(/'/g, '"'));
133
- }
134
- if (!Array.isArray(parsed)) {
135
- throw new errors_1.UserError('Value is not a valid array', { extra: { value } });
136
- }
137
- return parsed;
120
+ parsed = JSON.parse(String(value));
138
121
  }
139
122
  catch (e) {
140
- throw new errors_1.UserError('Value is not a valid array', { extra: { value } });
141
- }
142
- };
143
- exports.tryToParseArray = tryToParseArray;
144
- const tryToParseObject = (value) => {
145
- if (value && typeof value === 'object' && !Array.isArray(value)) {
146
- return value;
123
+ parsed = JSON.parse(String(value).replace(/'/g, '"'));
147
124
  }
148
- try {
149
- const o = (0, utils_1.jsonParse)(String(value), { acceptJSObject: true });
150
- if (typeof o !== 'object' || Array.isArray(o)) {
151
- throw new errors_1.UserError('Value is not a valid object', { extra: { value } });
152
- }
153
- return o;
125
+ if (!Array.isArray(parsed)) {
126
+ throw new errors_1.UserError('Value is not a valid array', { extra: { value } });
154
127
  }
155
- catch (e) {
128
+ return parsed;
129
+ }
130
+ catch (e) {
131
+ throw new errors_1.UserError('Value is not a valid array', { extra: { value } });
132
+ }
133
+ };
134
+ exports.tryToParseArray = tryToParseArray;
135
+ const tryToParseObject = (value) => {
136
+ if (value && typeof value === 'object' && !Array.isArray(value)) {
137
+ return value;
138
+ }
139
+ try {
140
+ const o = (0, utils_1.jsonParse)(String(value), { acceptJSObject: true });
141
+ if (typeof o !== 'object' || Array.isArray(o)) {
156
142
  throw new errors_1.UserError('Value is not a valid object', { extra: { value } });
157
143
  }
158
- };
159
- exports.tryToParseObject = tryToParseObject;
160
- const tryToParseBinary = (value) => {
161
- if (!value || typeof value !== 'object' || Array.isArray(value) || !(0, type_guards_1.isBinaryValue)(value)) {
162
- throw new errors_1.UserError('Value is not a valid binary data object', { extra: { value } });
163
- }
164
- return value;
165
- };
166
- exports.tryToParseBinary = tryToParseBinary;
167
- const ALLOWED_FORM_FIELDS_KEYS = [
168
- 'fieldLabel',
169
- 'fieldType',
170
- 'placeholder',
171
- 'defaultValue',
172
- 'fieldOptions',
173
- 'multiselect',
174
- 'multipleFiles',
175
- 'acceptFileTypes',
176
- 'formatDate',
177
- 'requiredField',
178
- 'fieldValue',
179
- 'elementName',
180
- 'html',
181
- 'fieldName',
182
- 'limitSelection',
183
- 'numberOfSelections',
184
- 'minSelections',
185
- 'maxSelections',
186
- ];
187
- const ALLOWED_FIELD_TYPES = [
188
- 'date',
189
- 'dropdown',
190
- 'email',
191
- 'file',
192
- 'number',
193
- 'password',
194
- 'text',
195
- 'textarea',
196
- 'checkbox',
197
- 'radio',
198
- 'html',
199
- 'hiddenField',
200
- ];
201
- const tryToParseJsonToFormFields = (value) => {
202
- const fields = [];
203
- try {
204
- const rawFields = (0, utils_1.jsonParse)(value, {
205
- acceptJSObject: true,
206
- });
207
- for (const [index, field] of rawFields.entries()) {
208
- for (const key of Object.keys(field)) {
209
- if (!ALLOWED_FORM_FIELDS_KEYS.includes(key)) {
210
- throw new errors_1.UserError(`Key '${key}' in field ${index} is not valid for form fields`);
211
- }
212
- if (key !== 'fieldOptions' &&
213
- !['string', 'number', 'boolean'].includes(typeof field[key])) {
214
- field[key] = String(field[key]);
215
- }
216
- else if (typeof field[key] === 'string' && key !== 'html') {
217
- field[key] = field[key].replace(/</g, '&lt;').replace(/>/g, '&gt;');
144
+ return o;
145
+ }
146
+ catch (e) {
147
+ throw new errors_1.UserError('Value is not a valid object', { extra: { value } });
148
+ }
149
+ };
150
+ exports.tryToParseObject = tryToParseObject;
151
+ const tryToParseBinary = (value) => {
152
+ if (!value || typeof value !== 'object' || Array.isArray(value) || !(0, type_guards_1.isBinaryValue)(value)) {
153
+ throw new errors_1.UserError('Value is not a valid binary data object', { extra: { value } });
154
+ }
155
+ return value;
156
+ };
157
+ exports.tryToParseBinary = tryToParseBinary;
158
+ const ALLOWED_FORM_FIELDS_KEYS = [
159
+ 'fieldLabel',
160
+ 'fieldType',
161
+ 'placeholder',
162
+ 'defaultValue',
163
+ 'fieldOptions',
164
+ 'multiselect',
165
+ 'multipleFiles',
166
+ 'acceptFileTypes',
167
+ 'formatDate',
168
+ 'requiredField',
169
+ 'fieldValue',
170
+ 'elementName',
171
+ 'html',
172
+ 'fieldName',
173
+ 'limitSelection',
174
+ 'numberOfSelections',
175
+ 'minSelections',
176
+ 'maxSelections',
177
+ ];
178
+ const ALLOWED_FIELD_TYPES = [
179
+ 'date',
180
+ 'dropdown',
181
+ 'email',
182
+ 'file',
183
+ 'number',
184
+ 'password',
185
+ 'text',
186
+ 'textarea',
187
+ 'checkbox',
188
+ 'radio',
189
+ 'html',
190
+ 'hiddenField',
191
+ ];
192
+ const tryToParseJsonToFormFields = (value) => {
193
+ const fields = [];
194
+ try {
195
+ const rawFields = (0, utils_1.jsonParse)(value, {
196
+ acceptJSObject: true,
197
+ });
198
+ for (const [index, field] of rawFields.entries()) {
199
+ for (const key of Object.keys(field)) {
200
+ if (!ALLOWED_FORM_FIELDS_KEYS.includes(key)) {
201
+ throw new errors_1.UserError(`Key '${key}' in field ${index} is not valid for form fields`);
202
+ }
203
+ if (key !== 'fieldOptions' &&
204
+ !['string', 'number', 'boolean'].includes(typeof field[key])) {
205
+ field[key] = String(field[key]);
206
+ }
207
+ else if (typeof field[key] === 'string' && key !== 'html') {
208
+ field[key] = field[key].replace(/</g, '&lt;').replace(/>/g, '&gt;');
209
+ }
210
+ if (key === 'fieldType' && !ALLOWED_FIELD_TYPES.includes(field[key])) {
211
+ throw new errors_1.UserError(`Field type '${field[key]}' in field ${index} is not valid for form fields`);
212
+ }
213
+ if (key === 'fieldOptions') {
214
+ if (Array.isArray(field[key])) {
215
+ field[key] = { values: field[key] };
218
216
  }
219
- if (key === 'fieldType' && !ALLOWED_FIELD_TYPES.includes(field[key])) {
220
- throw new errors_1.UserError(`Field type '${field[key]}' in field ${index} is not valid for form fields`);
217
+ if (typeof field[key] !== 'object' ||
218
+ !field[key].values) {
219
+ throw new errors_1.UserError(`Field dropdown in field ${index} does has no 'values' property that contain an array of options`);
221
220
  }
222
- if (key === 'fieldOptions') {
223
- if (Array.isArray(field[key])) {
224
- field[key] = { values: field[key] };
225
- }
226
- if (typeof field[key] !== 'object' ||
227
- !field[key].values) {
228
- throw new errors_1.UserError(`Field dropdown in field ${index} does has no 'values' property that contain an array of options`);
229
- }
230
- for (const [optionIndex, option] of field[key].values.entries()) {
231
- if (Object.keys(option).length !== 1 || typeof option.option !== 'string') {
232
- throw new errors_1.UserError(`Field dropdown in field ${index} has an invalid option ${optionIndex}`);
233
- }
221
+ for (const [optionIndex, option] of field[key].values.entries()) {
222
+ if (Object.keys(option).length !== 1 || typeof option.option !== 'string') {
223
+ throw new errors_1.UserError(`Field dropdown in field ${index} has an invalid option ${optionIndex}`);
234
224
  }
235
225
  }
236
226
  }
237
- fields.push(field);
238
- }
239
- }
240
- catch (error) {
241
- if (error instanceof errors_1.ApplicationError || error instanceof errors_1.BaseError)
242
- throw error;
243
- throw new errors_1.UserError('Value is not valid JSON');
244
- }
245
- return fields;
246
- };
247
- exports.tryToParseJsonToFormFields = tryToParseJsonToFormFields;
248
- const getValueDescription = (value) => {
249
- if (typeof value === 'object') {
250
- if (value === null)
251
- return "'null'";
252
- if (Array.isArray(value))
253
- return 'array';
254
- return 'object';
255
- }
256
- return `'${String(value)}'`;
257
- };
258
- exports.getValueDescription = getValueDescription;
259
- const ALLOWED_URL_PROTOCOLS = ['http:', 'https:', 'ftp:', 'file:'];
260
- const tryToParseUrl = (value) => {
261
- if (typeof value === 'string' && !value.includes('://')) {
262
- value = `https://${value}`;
263
- }
264
- try {
265
- const parsed = new URL(String(value));
266
- if (!ALLOWED_URL_PROTOCOLS.includes(parsed.protocol)) {
267
- throw new errors_1.UserError(`The value "${String(value)}" is not a valid url.`, {
268
- extra: { value },
269
- });
270
227
  }
271
- return String(value);
228
+ fields.push(field);
272
229
  }
273
- catch (e) {
274
- if (e instanceof errors_1.ApplicationError || e instanceof errors_1.BaseError)
275
- throw e;
230
+ }
231
+ catch (error) {
232
+ if (error instanceof errors_1.ApplicationError || error instanceof errors_1.BaseError)
233
+ throw error;
234
+ throw new errors_1.UserError('Value is not valid JSON');
235
+ }
236
+ return fields;
237
+ };
238
+ exports.tryToParseJsonToFormFields = tryToParseJsonToFormFields;
239
+ const getValueDescription = (value) => {
240
+ if (typeof value === 'object') {
241
+ if (value === null)
242
+ return "'null'";
243
+ if (Array.isArray(value))
244
+ return 'array';
245
+ return 'object';
246
+ }
247
+ return `'${String(value)}'`;
248
+ };
249
+ exports.getValueDescription = getValueDescription;
250
+ const ALLOWED_URL_PROTOCOLS = ['http:', 'https:', 'ftp:', 'file:'];
251
+ const tryToParseUrl = (value) => {
252
+ if (typeof value === 'string' && !value.includes('://')) {
253
+ value = `https://${value}`;
254
+ }
255
+ try {
256
+ const parsed = new URL(String(value));
257
+ if (!ALLOWED_URL_PROTOCOLS.includes(parsed.protocol)) {
276
258
  throw new errors_1.UserError(`The value "${String(value)}" is not a valid url.`, {
277
259
  extra: { value },
278
260
  });
279
261
  }
280
- };
281
- exports.tryToParseUrl = tryToParseUrl;
282
- const tryToParseJwt = (value) => {
283
- const error = new errors_1.UserError(`The value "${String(value)}" is not a valid JWT token.`, {
262
+ return String(value);
263
+ }
264
+ catch (e) {
265
+ if (e instanceof errors_1.ApplicationError || e instanceof errors_1.BaseError)
266
+ throw e;
267
+ throw new errors_1.UserError(`The value "${String(value)}" is not a valid url.`, {
284
268
  extra: { value },
285
269
  });
286
- if (!value)
287
- throw error;
288
- const jwtPattern = /^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_.+/=]*$/;
289
- if (!jwtPattern.test(String(value)))
290
- throw error;
291
- return String(value);
292
- };
293
- exports.tryToParseJwt = tryToParseJwt;
294
- // eslint-disable-next-line complexity
295
- function validateFieldType(fieldName, value, type, options = {}) {
296
- if (value === null || value === undefined)
297
- return { valid: true };
298
- const strict = options.strict ?? false;
299
- const valueOptions = options.valueOptions ?? [];
300
- const parseStrings = options.parseStrings ?? false;
301
- const defaultErrorMessage = `'${fieldName}' expects a ${type} but we got ${(0, exports.getValueDescription)(value)}`;
302
- switch (type.toLowerCase()) {
303
- case 'string': {
304
- if (!parseStrings)
305
- return { valid: true, newValue: value };
306
- try {
307
- if (strict && typeof value !== 'string') {
308
- return { valid: false, errorMessage: defaultErrorMessage };
309
- }
310
- return { valid: true, newValue: (0, exports.tryToParseString)(value) };
311
- }
312
- catch (e) {
270
+ }
271
+ };
272
+ exports.tryToParseUrl = tryToParseUrl;
273
+ const tryToParseJwt = (value) => {
274
+ const error = new errors_1.UserError(`The value "${String(value)}" is not a valid JWT token.`, {
275
+ extra: { value },
276
+ });
277
+ if (!value)
278
+ throw error;
279
+ const jwtPattern = /^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_.+/=]*$/;
280
+ if (!jwtPattern.test(String(value)))
281
+ throw error;
282
+ return String(value);
283
+ };
284
+ exports.tryToParseJwt = tryToParseJwt;
285
+ // eslint-disable-next-line complexity
286
+ function validateFieldType(fieldName, value, type, options = {}) {
287
+ if (value === null || value === undefined)
288
+ return { valid: true };
289
+ const strict = options.strict ?? false;
290
+ const valueOptions = options.valueOptions ?? [];
291
+ const parseStrings = options.parseStrings ?? false;
292
+ const defaultErrorMessage = `'${fieldName}' expects a ${type} but we got ${(0, exports.getValueDescription)(value)}`;
293
+ switch (type.toLowerCase()) {
294
+ case 'string': {
295
+ if (!parseStrings)
296
+ return { valid: true, newValue: value };
297
+ try {
298
+ if (strict && typeof value !== 'string') {
313
299
  return { valid: false, errorMessage: defaultErrorMessage };
314
300
  }
301
+ return { valid: true, newValue: (0, exports.tryToParseString)(value) };
315
302
  }
316
- case 'string-alphanumeric': {
317
- try {
318
- return { valid: true, newValue: (0, exports.tryToParseAlphanumericString)(value) };
319
- }
320
- catch (e) {
321
- return {
322
- valid: false,
323
- errorMessage: 'Value is not a valid alphanumeric string, only letters, numbers and underscore allowed',
324
- };
325
- }
303
+ catch (e) {
304
+ return { valid: false, errorMessage: defaultErrorMessage };
326
305
  }
327
- case 'number': {
328
- try {
329
- if (strict && typeof value !== 'number') {
330
- return { valid: false, errorMessage: defaultErrorMessage };
331
- }
332
- return { valid: true, newValue: (0, exports.tryToParseNumber)(value) };
333
- }
334
- catch (e) {
306
+ }
307
+ case 'string-alphanumeric': {
308
+ try {
309
+ return { valid: true, newValue: (0, exports.tryToParseAlphanumericString)(value) };
310
+ }
311
+ catch (e) {
312
+ return {
313
+ valid: false,
314
+ errorMessage: 'Value is not a valid alphanumeric string, only letters, numbers and underscore allowed',
315
+ };
316
+ }
317
+ }
318
+ case 'number': {
319
+ try {
320
+ if (strict && typeof value !== 'number') {
335
321
  return { valid: false, errorMessage: defaultErrorMessage };
336
322
  }
323
+ return { valid: true, newValue: (0, exports.tryToParseNumber)(value) };
337
324
  }
338
- case 'boolean': {
339
- try {
340
- if (strict && typeof value !== 'boolean') {
341
- return { valid: false, errorMessage: defaultErrorMessage };
342
- }
343
- return { valid: true, newValue: (0, exports.tryToParseBoolean)(value) };
344
- }
345
- catch (e) {
325
+ catch (e) {
326
+ return { valid: false, errorMessage: defaultErrorMessage };
327
+ }
328
+ }
329
+ case 'boolean': {
330
+ try {
331
+ if (strict && typeof value !== 'boolean') {
346
332
  return { valid: false, errorMessage: defaultErrorMessage };
347
333
  }
334
+ return { valid: true, newValue: (0, exports.tryToParseBoolean)(value) };
348
335
  }
349
- case 'datetime': {
350
- try {
351
- return { valid: true, newValue: (0, exports.tryToParseDateTime)(value) };
352
- }
353
- catch (e) {
354
- const luxonDocsURL = 'https://moment.github.io/luxon/api-docs/index.html#datetimefromformat';
355
- const errorMessage = `${defaultErrorMessage} <br/><br/> Consider using <a href="${luxonDocsURL}" target="_blank"><code>DateTime.fromFormat</code></a> to work with custom date formats.`;
356
- return { valid: false, errorMessage };
357
- }
336
+ catch (e) {
337
+ return { valid: false, errorMessage: defaultErrorMessage };
358
338
  }
359
- case 'time': {
360
- try {
361
- return { valid: true, newValue: (0, exports.tryToParseTime)(value) };
362
- }
363
- catch (e) {
364
- return {
365
- valid: false,
366
- errorMessage: `'${fieldName}' expects time (hh:mm:(:ss)) but we got ${(0, exports.getValueDescription)(value)}.`,
367
- };
368
- }
339
+ }
340
+ case 'datetime': {
341
+ try {
342
+ return { valid: true, newValue: (0, exports.tryToParseDateTime)(value) };
369
343
  }
370
- case 'binary': {
371
- try {
372
- return { valid: true, newValue: (0, exports.tryToParseBinary)(value) };
373
- }
374
- catch (e) {
375
- const errorMessage = `${defaultErrorMessage}. Make sure the value is a valid binary data object with 'mimeType' and 'data' or 'id' property.`;
376
- return { valid: false, errorMessage };
377
- }
344
+ catch (e) {
345
+ const luxonDocsURL = 'https://moment.github.io/luxon/api-docs/index.html#datetimefromformat';
346
+ const errorMessage = `${defaultErrorMessage} <br/><br/> Consider using <a href="${luxonDocsURL}" target="_blank"><code>DateTime.fromFormat</code></a> to work with custom date formats.`;
347
+ return { valid: false, errorMessage };
378
348
  }
379
- case 'object': {
380
- try {
381
- if (strict && !(0, isObject_1.default)(value)) {
382
- return { valid: false, errorMessage: defaultErrorMessage };
383
- }
384
- return { valid: true, newValue: (0, exports.tryToParseObject)(value) };
385
- }
386
- catch (e) {
387
- return { valid: false, errorMessage: defaultErrorMessage };
388
- }
349
+ }
350
+ case 'time': {
351
+ try {
352
+ return { valid: true, newValue: (0, exports.tryToParseTime)(value) };
389
353
  }
390
- case 'array': {
391
- if (strict && !Array.isArray(value)) {
392
- return { valid: false, errorMessage: defaultErrorMessage };
393
- }
394
- try {
395
- return { valid: true, newValue: (0, exports.tryToParseArray)(value) };
396
- }
397
- catch (e) {
398
- return { valid: false, errorMessage: defaultErrorMessage };
399
- }
354
+ catch (e) {
355
+ return {
356
+ valid: false,
357
+ errorMessage: `'${fieldName}' expects time (hh:mm:(:ss)) but we got ${(0, exports.getValueDescription)(value)}.`,
358
+ };
400
359
  }
401
- case 'options': {
402
- const validOptions = valueOptions.map((option) => option.value).join(', ');
403
- const isValidOption = valueOptions.some((option) => option.value === value);
404
- if (!isValidOption) {
405
- return {
406
- valid: false,
407
- errorMessage: `'${fieldName}' expects one of the following values: [${validOptions}] but we got ${(0, exports.getValueDescription)(value)}`,
408
- };
409
- }
410
- return { valid: true, newValue: value };
360
+ }
361
+ case 'binary': {
362
+ try {
363
+ return { valid: true, newValue: (0, exports.tryToParseBinary)(value) };
411
364
  }
412
- case 'url': {
413
- try {
414
- return { valid: true, newValue: (0, exports.tryToParseUrl)(value) };
415
- }
416
- catch (e) {
365
+ catch (e) {
366
+ const errorMessage = `${defaultErrorMessage}. Make sure the value is a valid binary data object with 'mimeType' and 'data' or 'id' property.`;
367
+ return { valid: false, errorMessage };
368
+ }
369
+ }
370
+ case 'object': {
371
+ try {
372
+ if (strict && !(0, isObject_1.default)(value)) {
417
373
  return { valid: false, errorMessage: defaultErrorMessage };
418
374
  }
375
+ return { valid: true, newValue: (0, exports.tryToParseObject)(value) };
419
376
  }
420
- case 'jwt': {
421
- try {
422
- return { valid: true, newValue: (0, exports.tryToParseJwt)(value) };
423
- }
424
- catch (e) {
425
- return {
426
- valid: false,
427
- errorMessage: 'Value is not a valid JWT token',
428
- };
429
- }
377
+ catch (e) {
378
+ return { valid: false, errorMessage: defaultErrorMessage };
430
379
  }
431
- case 'form-fields': {
432
- try {
433
- return { valid: true, newValue: (0, exports.tryToParseJsonToFormFields)(value) };
434
- }
435
- catch (e) {
436
- return {
437
- valid: false,
438
- errorMessage: e.message,
439
- };
440
- }
380
+ }
381
+ case 'array': {
382
+ if (strict && !Array.isArray(value)) {
383
+ return { valid: false, errorMessage: defaultErrorMessage };
441
384
  }
442
- default: {
443
- return { valid: true, newValue: value };
385
+ try {
386
+ return { valid: true, newValue: (0, exports.tryToParseArray)(value) };
387
+ }
388
+ catch (e) {
389
+ return { valid: false, errorMessage: defaultErrorMessage };
390
+ }
391
+ }
392
+ case 'options': {
393
+ const validOptions = valueOptions.map((option) => option.value).join(', ');
394
+ const isValidOption = valueOptions.some((option) => option.value === value);
395
+ if (!isValidOption) {
396
+ return {
397
+ valid: false,
398
+ errorMessage: `'${fieldName}' expects one of the following values: [${validOptions}] but we got ${(0, exports.getValueDescription)(value)}`,
399
+ };
400
+ }
401
+ return { valid: true, newValue: value };
402
+ }
403
+ case 'url': {
404
+ try {
405
+ return { valid: true, newValue: (0, exports.tryToParseUrl)(value) };
406
+ }
407
+ catch (e) {
408
+ return { valid: false, errorMessage: defaultErrorMessage };
444
409
  }
445
410
  }
411
+ case 'jwt': {
412
+ try {
413
+ return { valid: true, newValue: (0, exports.tryToParseJwt)(value) };
414
+ }
415
+ catch (e) {
416
+ return {
417
+ valid: false,
418
+ errorMessage: 'Value is not a valid JWT token',
419
+ };
420
+ }
421
+ }
422
+ case 'form-fields': {
423
+ try {
424
+ return { valid: true, newValue: (0, exports.tryToParseJsonToFormFields)(value) };
425
+ }
426
+ catch (e) {
427
+ return {
428
+ valid: false,
429
+ errorMessage: e.message,
430
+ };
431
+ }
432
+ }
433
+ default: {
434
+ return { valid: true, newValue: value };
435
+ }
446
436
  }
447
- });
437
+ }
448
438
  //# sourceMappingURL=type-validation.js.map