@servicenow/sdk-build-plugins 4.6.0 → 4.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (286) hide show
  1. package/dist/acl-plugin.js +3 -4
  2. package/dist/acl-plugin.js.map +1 -1
  3. package/dist/applicability-plugin.js +0 -2
  4. package/dist/applicability-plugin.js.map +1 -1
  5. package/dist/application-menu-plugin.js +0 -2
  6. package/dist/application-menu-plugin.js.map +1 -1
  7. package/dist/arrow-function-plugin.js +0 -1
  8. package/dist/arrow-function-plugin.js.map +1 -1
  9. package/dist/atf/test-plugin.js +6 -10
  10. package/dist/atf/test-plugin.js.map +1 -1
  11. package/dist/basic-syntax-plugin.js +10 -4
  12. package/dist/basic-syntax-plugin.js.map +1 -1
  13. package/dist/business-rule-plugin.js +0 -1
  14. package/dist/business-rule-plugin.js.map +1 -1
  15. package/dist/call-expression-plugin.js +0 -1
  16. package/dist/call-expression-plugin.js.map +1 -1
  17. package/dist/claims-plugin.js +0 -1
  18. package/dist/claims-plugin.js.map +1 -1
  19. package/dist/client-script-plugin.js +0 -1
  20. package/dist/client-script-plugin.js.map +1 -1
  21. package/dist/column-plugin.js +120 -49
  22. package/dist/column-plugin.js.map +1 -1
  23. package/dist/cross-scope-privilege-plugin.js +0 -1
  24. package/dist/cross-scope-privilege-plugin.js.map +1 -1
  25. package/dist/dashboard/dashboard-plugin.js +0 -2
  26. package/dist/dashboard/dashboard-plugin.js.map +1 -1
  27. package/dist/data-plugin.js +0 -1
  28. package/dist/data-plugin.js.map +1 -1
  29. package/dist/data-policy-plugin.d.ts +2 -0
  30. package/dist/data-policy-plugin.js +276 -0
  31. package/dist/data-policy-plugin.js.map +1 -0
  32. package/dist/email-notification-plugin.js +2 -3
  33. package/dist/email-notification-plugin.js.map +1 -1
  34. package/dist/flow/flow-logic/flow-logic-constants.d.ts +2 -0
  35. package/dist/flow/flow-logic/flow-logic-constants.js +6 -1
  36. package/dist/flow/flow-logic/flow-logic-constants.js.map +1 -1
  37. package/dist/flow/flow-logic/flow-logic-diagnostics.js +192 -56
  38. package/dist/flow/flow-logic/flow-logic-diagnostics.js.map +1 -1
  39. package/dist/flow/flow-logic/flow-logic-plugin-helpers.d.ts +2 -1
  40. package/dist/flow/flow-logic/flow-logic-plugin-helpers.js +44 -5
  41. package/dist/flow/flow-logic/flow-logic-plugin-helpers.js.map +1 -1
  42. package/dist/flow/flow-logic/flow-logic-plugin.js +279 -29
  43. package/dist/flow/flow-logic/flow-logic-plugin.js.map +1 -1
  44. package/dist/flow/flow-logic/flow-logic-shapes.d.ts +15 -0
  45. package/dist/flow/flow-logic/flow-logic-shapes.js +25 -1
  46. package/dist/flow/flow-logic/flow-logic-shapes.js.map +1 -1
  47. package/dist/flow/plugins/approval-rules-plugin.js +0 -1
  48. package/dist/flow/plugins/approval-rules-plugin.js.map +1 -1
  49. package/dist/flow/plugins/flow-action-definition-plugin.js +804 -205
  50. package/dist/flow/plugins/flow-action-definition-plugin.js.map +1 -1
  51. package/dist/flow/plugins/flow-data-pill-plugin.js +3 -5
  52. package/dist/flow/plugins/flow-data-pill-plugin.js.map +1 -1
  53. package/dist/flow/plugins/flow-definition-plugin.js +84 -17
  54. package/dist/flow/plugins/flow-definition-plugin.js.map +1 -1
  55. package/dist/flow/plugins/flow-diagnostics-plugin.js +65 -3
  56. package/dist/flow/plugins/flow-diagnostics-plugin.js.map +1 -1
  57. package/dist/flow/plugins/flow-instance-plugin.js +13 -5
  58. package/dist/flow/plugins/flow-instance-plugin.js.map +1 -1
  59. package/dist/flow/plugins/flow-trigger-instance-plugin.js +0 -1
  60. package/dist/flow/plugins/flow-trigger-instance-plugin.js.map +1 -1
  61. package/dist/flow/plugins/inline-script-plugin.js +0 -1
  62. package/dist/flow/plugins/inline-script-plugin.js.map +1 -1
  63. package/dist/flow/plugins/step-definition-plugin.js +0 -2
  64. package/dist/flow/plugins/step-definition-plugin.js.map +1 -1
  65. package/dist/flow/plugins/step-instance-plugin.js +216 -77
  66. package/dist/flow/plugins/step-instance-plugin.js.map +1 -1
  67. package/dist/flow/plugins/trigger-plugin.js +0 -2
  68. package/dist/flow/plugins/trigger-plugin.js.map +1 -1
  69. package/dist/flow/plugins/wfa-datapill-plugin.js +0 -1
  70. package/dist/flow/plugins/wfa-datapill-plugin.js.map +1 -1
  71. package/dist/flow/utils/datapill-transformer.js +9 -5
  72. package/dist/flow/utils/datapill-transformer.js.map +1 -1
  73. package/dist/flow/utils/flow-constants.d.ts +12 -0
  74. package/dist/flow/utils/flow-constants.js +17 -3
  75. package/dist/flow/utils/flow-constants.js.map +1 -1
  76. package/dist/flow/utils/flow-io-to-record.d.ts +1 -1
  77. package/dist/flow/utils/flow-io-to-record.js +21 -13
  78. package/dist/flow/utils/flow-io-to-record.js.map +1 -1
  79. package/dist/flow/utils/flow-pill-utils.d.ts +26 -0
  80. package/dist/flow/utils/flow-pill-utils.js +50 -0
  81. package/dist/flow/utils/flow-pill-utils.js.map +1 -0
  82. package/dist/flow/utils/flow-stage-processor.d.ts +138 -0
  83. package/dist/flow/utils/flow-stage-processor.js +665 -0
  84. package/dist/flow/utils/flow-stage-processor.js.map +1 -0
  85. package/dist/flow/utils/pill-string-parser.js +28 -43
  86. package/dist/flow/utils/pill-string-parser.js.map +1 -1
  87. package/dist/flow/utils/utils.d.ts +11 -6
  88. package/dist/flow/utils/utils.js +37 -28
  89. package/dist/flow/utils/utils.js.map +1 -1
  90. package/dist/form-plugin.js +4 -14
  91. package/dist/form-plugin.js.map +1 -1
  92. package/dist/html-import-plugin.js +0 -1
  93. package/dist/html-import-plugin.js.map +1 -1
  94. package/dist/import-sets-plugin.js +0 -2
  95. package/dist/import-sets-plugin.js.map +1 -1
  96. package/dist/inbound-email-action-plugin.js +0 -1
  97. package/dist/inbound-email-action-plugin.js.map +1 -1
  98. package/dist/index.d.ts +2 -1
  99. package/dist/index.js +5 -1
  100. package/dist/index.js.map +1 -1
  101. package/dist/instance-scan-plugin.js +0 -7
  102. package/dist/instance-scan-plugin.js.map +1 -1
  103. package/dist/json-plugin.js +0 -1
  104. package/dist/json-plugin.js.map +1 -1
  105. package/dist/list-plugin.js +4 -1
  106. package/dist/list-plugin.js.map +1 -1
  107. package/dist/now-attach-plugin.js +0 -1
  108. package/dist/now-attach-plugin.js.map +1 -1
  109. package/dist/now-config-plugin.js +1 -1
  110. package/dist/now-config-plugin.js.map +1 -1
  111. package/dist/now-id-plugin.js +0 -1
  112. package/dist/now-id-plugin.js.map +1 -1
  113. package/dist/now-include-plugin.js +0 -1
  114. package/dist/now-include-plugin.js.map +1 -1
  115. package/dist/now-ref-plugin.js +0 -1
  116. package/dist/now-ref-plugin.js.map +1 -1
  117. package/dist/now-unresolved-plugin.js +0 -1
  118. package/dist/now-unresolved-plugin.js.map +1 -1
  119. package/dist/package-json-plugin.js +3 -2
  120. package/dist/package-json-plugin.js.map +1 -1
  121. package/dist/property-plugin.js +0 -2
  122. package/dist/property-plugin.js.map +1 -1
  123. package/dist/record-plugin.d.ts +2 -0
  124. package/dist/record-plugin.js +5 -4
  125. package/dist/record-plugin.js.map +1 -1
  126. package/dist/repack/lint/Rules.d.ts +1 -2
  127. package/dist/rest-api-plugin.js +6 -5
  128. package/dist/rest-api-plugin.js.map +1 -1
  129. package/dist/role-plugin.js +0 -1
  130. package/dist/role-plugin.js.map +1 -1
  131. package/dist/schedule-script/scheduled-script-plugin.js +5 -4
  132. package/dist/schedule-script/scheduled-script-plugin.js.map +1 -1
  133. package/dist/script-action-plugin.js +0 -2
  134. package/dist/script-action-plugin.js.map +1 -1
  135. package/dist/script-include-plugin.js +4 -4
  136. package/dist/script-include-plugin.js.map +1 -1
  137. package/dist/server-module-plugin/index.js +2 -3
  138. package/dist/server-module-plugin/index.js.map +1 -1
  139. package/dist/service-catalog/catalog-clientscript-plugin.js +2 -4
  140. package/dist/service-catalog/catalog-clientscript-plugin.js.map +1 -1
  141. package/dist/service-catalog/catalog-item-plugin.js +0 -2
  142. package/dist/service-catalog/catalog-item-plugin.js.map +1 -1
  143. package/dist/service-catalog/catalog-ui-policy-plugin.js +2 -4
  144. package/dist/service-catalog/catalog-ui-policy-plugin.js.map +1 -1
  145. package/dist/service-catalog/sc-record-producer-plugin.js +0 -2
  146. package/dist/service-catalog/sc-record-producer-plugin.js.map +1 -1
  147. package/dist/service-catalog/service-catalog-base.d.ts +2 -2
  148. package/dist/service-catalog/service-catalog-base.js +2 -2
  149. package/dist/service-catalog/service-catalog-base.js.map +1 -1
  150. package/dist/service-catalog/utils.js +1 -1
  151. package/dist/service-catalog/utils.js.map +1 -1
  152. package/dist/service-catalog/variable-set-plugin.js +0 -2
  153. package/dist/service-catalog/variable-set-plugin.js.map +1 -1
  154. package/dist/service-portal/angular-provider-plugin.js +0 -2
  155. package/dist/service-portal/angular-provider-plugin.js.map +1 -1
  156. package/dist/service-portal/dependency-plugin.js +3 -5
  157. package/dist/service-portal/dependency-plugin.js.map +1 -1
  158. package/dist/service-portal/header-footer-plugin.js +3 -5
  159. package/dist/service-portal/header-footer-plugin.js.map +1 -1
  160. package/dist/service-portal/menu-plugin.js +0 -1
  161. package/dist/service-portal/menu-plugin.js.map +1 -1
  162. package/dist/service-portal/page-plugin.js +0 -1
  163. package/dist/service-portal/page-plugin.js.map +1 -1
  164. package/dist/service-portal/page-route-map-plugin.js +0 -1
  165. package/dist/service-portal/page-route-map-plugin.js.map +1 -1
  166. package/dist/service-portal/portal-plugin.js +0 -2
  167. package/dist/service-portal/portal-plugin.js.map +1 -1
  168. package/dist/service-portal/theme-plugin.js +0 -2
  169. package/dist/service-portal/theme-plugin.js.map +1 -1
  170. package/dist/service-portal/widget-plugin.js +3 -5
  171. package/dist/service-portal/widget-plugin.js.map +1 -1
  172. package/dist/sla-plugin.js +0 -2
  173. package/dist/sla-plugin.js.map +1 -1
  174. package/dist/static-content-plugin.js +32 -3
  175. package/dist/static-content-plugin.js.map +1 -1
  176. package/dist/table-plugin.js +303 -66
  177. package/dist/table-plugin.js.map +1 -1
  178. package/dist/ui-action-plugin.js +26 -17
  179. package/dist/ui-action-plugin.js.map +1 -1
  180. package/dist/ui-page-plugin.js +159 -17
  181. package/dist/ui-page-plugin.js.map +1 -1
  182. package/dist/ui-policy-plugin.js +28 -97
  183. package/dist/ui-policy-plugin.js.map +1 -1
  184. package/dist/user-preference-plugin.js +0 -2
  185. package/dist/user-preference-plugin.js.map +1 -1
  186. package/dist/utils.d.ts +5 -9
  187. package/dist/utils.js +38 -11
  188. package/dist/utils.js.map +1 -1
  189. package/dist/ux-list-menu-config-plugin.js +0 -2
  190. package/dist/ux-list-menu-config-plugin.js.map +1 -1
  191. package/dist/view-plugin.js +0 -1
  192. package/dist/view-plugin.js.map +1 -1
  193. package/dist/workspace-plugin.js +0 -2
  194. package/dist/workspace-plugin.js.map +1 -1
  195. package/package.json +6 -6
  196. package/src/acl-plugin.ts +4 -5
  197. package/src/applicability-plugin.ts +0 -2
  198. package/src/application-menu-plugin.ts +0 -2
  199. package/src/arrow-function-plugin.ts +0 -1
  200. package/src/atf/test-plugin.ts +6 -11
  201. package/src/basic-syntax-plugin.ts +11 -4
  202. package/src/business-rule-plugin.ts +1 -2
  203. package/src/call-expression-plugin.ts +0 -1
  204. package/src/claims-plugin.ts +0 -1
  205. package/src/client-script-plugin.ts +1 -2
  206. package/src/column-plugin.ts +163 -76
  207. package/src/cross-scope-privilege-plugin.ts +1 -2
  208. package/src/dashboard/dashboard-plugin.ts +0 -2
  209. package/src/data-plugin.ts +0 -1
  210. package/src/data-policy-plugin.ts +333 -0
  211. package/src/email-notification-plugin.ts +8 -4
  212. package/src/flow/flow-logic/flow-logic-constants.ts +6 -0
  213. package/src/flow/flow-logic/flow-logic-diagnostics.ts +236 -58
  214. package/src/flow/flow-logic/flow-logic-plugin-helpers.ts +59 -6
  215. package/src/flow/flow-logic/flow-logic-plugin.ts +368 -38
  216. package/src/flow/flow-logic/flow-logic-shapes.ts +25 -0
  217. package/src/flow/plugins/approval-rules-plugin.ts +0 -1
  218. package/src/flow/plugins/flow-action-definition-plugin.ts +940 -208
  219. package/src/flow/plugins/flow-data-pill-plugin.ts +3 -5
  220. package/src/flow/plugins/flow-definition-plugin.ts +159 -26
  221. package/src/flow/plugins/flow-diagnostics-plugin.ts +89 -3
  222. package/src/flow/plugins/flow-instance-plugin.ts +26 -12
  223. package/src/flow/plugins/flow-trigger-instance-plugin.ts +0 -1
  224. package/src/flow/plugins/inline-script-plugin.ts +0 -1
  225. package/src/flow/plugins/step-definition-plugin.ts +0 -2
  226. package/src/flow/plugins/step-instance-plugin.ts +259 -65
  227. package/src/flow/plugins/trigger-plugin.ts +0 -2
  228. package/src/flow/plugins/wfa-datapill-plugin.ts +0 -1
  229. package/src/flow/utils/datapill-transformer.ts +13 -5
  230. package/src/flow/utils/flow-constants.ts +19 -1
  231. package/src/flow/utils/flow-io-to-record.ts +29 -19
  232. package/src/flow/utils/flow-pill-utils.ts +48 -0
  233. package/src/flow/utils/flow-stage-processor.ts +831 -0
  234. package/src/flow/utils/pill-string-parser.ts +29 -47
  235. package/src/flow/utils/utils.ts +39 -35
  236. package/src/form-plugin.ts +5 -15
  237. package/src/html-import-plugin.ts +0 -1
  238. package/src/import-sets-plugin.ts +0 -2
  239. package/src/inbound-email-action-plugin.ts +1 -2
  240. package/src/index.ts +7 -1
  241. package/src/instance-scan-plugin.ts +0 -7
  242. package/src/json-plugin.ts +0 -1
  243. package/src/list-plugin.ts +6 -2
  244. package/src/now-attach-plugin.ts +0 -1
  245. package/src/now-config-plugin.ts +1 -1
  246. package/src/now-id-plugin.ts +0 -1
  247. package/src/now-include-plugin.ts +0 -1
  248. package/src/now-ref-plugin.ts +0 -1
  249. package/src/now-unresolved-plugin.ts +0 -1
  250. package/src/package-json-plugin.ts +8 -3
  251. package/src/property-plugin.ts +0 -2
  252. package/src/record-plugin.ts +14 -6
  253. package/src/repack/lint/Rules.ts +1 -1
  254. package/src/rest-api-plugin.ts +7 -6
  255. package/src/role-plugin.ts +1 -2
  256. package/src/schedule-script/scheduled-script-plugin.ts +11 -5
  257. package/src/script-action-plugin.ts +0 -2
  258. package/src/script-include-plugin.ts +8 -4
  259. package/src/server-module-plugin/index.ts +2 -3
  260. package/src/service-catalog/catalog-clientscript-plugin.ts +2 -4
  261. package/src/service-catalog/catalog-item-plugin.ts +0 -2
  262. package/src/service-catalog/catalog-ui-policy-plugin.ts +2 -4
  263. package/src/service-catalog/sc-record-producer-plugin.ts +0 -2
  264. package/src/service-catalog/service-catalog-base.ts +2 -2
  265. package/src/service-catalog/utils.ts +1 -1
  266. package/src/service-catalog/variable-set-plugin.ts +0 -2
  267. package/src/service-portal/angular-provider-plugin.ts +0 -2
  268. package/src/service-portal/dependency-plugin.ts +0 -2
  269. package/src/service-portal/header-footer-plugin.ts +0 -2
  270. package/src/service-portal/menu-plugin.ts +1 -2
  271. package/src/service-portal/page-plugin.ts +1 -2
  272. package/src/service-portal/page-route-map-plugin.ts +1 -2
  273. package/src/service-portal/portal-plugin.ts +0 -2
  274. package/src/service-portal/theme-plugin.ts +0 -2
  275. package/src/service-portal/widget-plugin.ts +0 -2
  276. package/src/sla-plugin.ts +0 -2
  277. package/src/static-content-plugin.ts +37 -4
  278. package/src/table-plugin.ts +371 -92
  279. package/src/ui-action-plugin.ts +30 -17
  280. package/src/ui-page-plugin.ts +188 -20
  281. package/src/ui-policy-plugin.ts +33 -130
  282. package/src/user-preference-plugin.ts +0 -2
  283. package/src/utils.ts +48 -11
  284. package/src/ux-list-menu-config-plugin.ts +0 -2
  285. package/src/view-plugin.ts +0 -1
  286. package/src/workspace-plugin.ts +0 -2
@@ -7,6 +7,7 @@ const flow_logic_constants_1 = require("./flow-logic-constants");
7
7
  const utils_1 = require("../../utils");
8
8
  const utils_2 = require("../utils/utils");
9
9
  const flow_logic_plugin_helpers_1 = require("./flow-logic-plugin-helpers");
10
+ const arrow_function_plugin_1 = require("../../arrow-function-plugin");
10
11
  const data_pill_shapes_1 = require("../utils/data-pill-shapes");
11
12
  const flow_1 = require("@servicenow/sdk-core/runtime/flow");
12
13
  const inline_script_plugin_1 = require("../plugins/inline-script-plugin");
@@ -21,8 +22,9 @@ const FLOW_LOGIC_VALIDATORS = {
21
22
  [flow_logic_constants_1.FLOW_LOGIC.WAIT_FOR_A_DURATION]: validateWaitForADuration,
22
23
  [flow_logic_constants_1.FLOW_LOGIC.FOR_EACH]: validateForEach,
23
24
  [flow_logic_constants_1.FLOW_LOGIC.DO_IN_PARALLEL]: validateDoInParallel,
24
- [flow_logic_constants_1.FLOW_LOGIC.TRY_CATCH]: () => undefined,
25
+ [flow_logic_constants_1.FLOW_LOGIC.TRY_CATCH]: validateTryCatch,
25
26
  [flow_logic_constants_1.FLOW_LOGIC.SET_FLOW_VARIABLES]: validateSetFlowVariables,
27
+ [flow_logic_constants_1.FLOW_LOGIC.APPEND_TO_FLOW_VARIABLES]: validateAppendToFlowVariables,
26
28
  [flow_logic_constants_1.FLOW_LOGIC.ASSIGN_SUBFLOW_OUTPUTS]: validateAssignSubflowOutputs,
27
29
  };
28
30
  /**
@@ -110,8 +112,8 @@ function findParentFlowLogic(node) {
110
112
  return undefined;
111
113
  }
112
114
  const callName = (0, utils_1.getCallExpressionName)(current);
113
- if ([flow_logic_constants_1.FLOW_LOGIC.IF, flow_logic_constants_1.FLOW_LOGIC.ELSEIF, flow_logic_constants_1.FLOW_LOGIC.ELSE, 'TryCatch', 'MakeADecision'].includes(callName)) {
114
- if (callName === 'TryCatch') {
115
+ if ([flow_logic_constants_1.FLOW_LOGIC.IF, flow_logic_constants_1.FLOW_LOGIC.ELSEIF, flow_logic_constants_1.FLOW_LOGIC.ELSE, flow_logic_constants_1.FLOW_LOGIC.TRY_CATCH, 'MakeADecision'].includes(callName)) {
116
+ if (callName === flow_logic_constants_1.FLOW_LOGIC.TRY_CATCH) {
115
117
  // For TryCatch, GoBackTo should only be in the catch block, not in try block
116
118
  if (!isInCatchBlock(node)) {
117
119
  return undefined; // Invalid placement - not in catch block
@@ -256,12 +258,30 @@ function validateForEach(expr) {
256
258
  }
257
259
  return undefined;
258
260
  }
261
+ // TypeScript enforces argument count, $id, and `() => void` shape of try/catch.
262
+ // The plugin's transform logic requires arrow functions specifically, which TS does not distinguish from other
263
+ // function forms — so check that here.
264
+ function validateTryCatch(expr) {
265
+ if (!(0, flow_logic_plugin_helpers_1.isTryCatchShape)(expr)) {
266
+ return undefined;
267
+ }
268
+ const handlers = expr.getArgument(1)?.if(sdk_build_core_1.ObjectShape);
269
+ const tryHandler = handlers?.get('try');
270
+ const catchHandler = handlers?.get('catch');
271
+ if (!tryHandler?.if(arrow_function_plugin_1.ArrowFunctionShape)) {
272
+ return "TryCatch: 'try' handler must be an arrow function";
273
+ }
274
+ if (!catchHandler?.if(arrow_function_plugin_1.ArrowFunctionShape)) {
275
+ return "TryCatch: 'catch' handler must be an arrow function";
276
+ }
277
+ return undefined;
278
+ }
259
279
  function validateDoInParallel(expr) {
260
280
  if ((0, flow_logic_plugin_helpers_1.isDoInParallelShape)(expr)) {
261
- const doInParallelExpr = expr;
262
- const originalNode = doInParallelExpr.getOriginalNode();
263
- // Check for nested DoInParallel
264
- const parentDoInParallel = (0, utils_2.findAncestorByCalleeName)(originalNode, flow_logic_constants_1.FLOW_LOGIC.DO_IN_PARALLEL);
281
+ // Check for nested `DoInParallel`. `findAncestorByCalleeName` returns the node itself when it matches, so
282
+ // start the search from the parent call expression. Otherwise, every `DoInParallel` would flag itself.
283
+ const parentCall = expr.getOriginalNode()?.getFirstAncestorByKind(sdk_build_core_1.ts.SyntaxKind.CallExpression);
284
+ const parentDoInParallel = (0, utils_2.findAncestorByCalleeName)(parentCall, flow_logic_constants_1.FLOW_LOGIC.DO_IN_PARALLEL);
265
285
  if (parentDoInParallel) {
266
286
  return 'Nested DoInParallel calls are not allowed. DoInParallel cannot be used within another DoInParallel block.';
267
287
  }
@@ -269,76 +289,57 @@ function validateDoInParallel(expr) {
269
289
  return undefined;
270
290
  }
271
291
  /**
272
- * Validates SetFlowVariables flow logic instance.
273
- * Performs comprehensive validation of arguments, types, and structure.
274
- *
275
- * **Validations performed:**
276
- * 1. Argument count: Must have exactly 3 arguments
277
- * 2. Config object: Must contain required $id property
278
- * 3. Schema argument: Must be params.flowVariables (schema reference)
279
- * 4. Values object: Must be non-empty
280
- * 5. Variable names: Cannot be empty or whitespace
281
- * 6. Variable values: Must be valid types (string, number, boolean, or datapill)
282
- *
283
- * **Valid value types:**
284
- * - String literals: "hello"
285
- * - Numbers: 42, 3.14
286
- * - Booleans: true, false
287
- * - Objects: { a: "value", b: 42 } (ObjectShape - for FlowObject types)
288
- * - Arrays: [1, 2, 3] (ArrayShape - for FlowArray types)
289
- * - Datapills: params.trigger.name, params.complexObject (PropertyAccessShape)
290
- * - Template expressions: `Hello ${params.trigger.name}` (TemplateExpressionShape)
292
+ * Shared validator for "variable assignment"-style flow logic shapes (SetFlowVariables and AppendToFlowVariables).
293
+ * Both shapes share the (config, schema, values) argument layout and the same value-type rules; only the type guard,
294
+ * the values' accessor, and the error-message prefix differ. Routing both through one helper prevents the two
295
+ * implementations from drifting independently and ensures any future validation change applies to both call sites at
296
+ * once.
291
297
  *
292
- * @param expr - The SetFlowVariables flow logic instance shape
293
- * @returns Error message if validation fails, undefined if valid
298
+ * Validations performed:
299
+ * 1. Argument count must be exactly 3 (config, schema, values).
300
+ * 2. Config must expose a valid $id (`expr.getSysId()` must not throw).
301
+ * 3. Values argument must be a defined, non-empty object.
302
+ * 4. Every key must be a non-empty string.
303
+ * 5. Every value must be a string / number / boolean / object / array / datapill / inline script.
294
304
  *
295
- * @example
296
- * // Valid usage
297
- * wfa.flowLogic.setFlowVariables(
298
- * { $id: Now.ID['...'] },
299
- * params.flowVariables, // Schema reference (2nd argument)
300
- * { user: params.trigger.name, count: 42, active: true }
301
- * )
305
+ * @param expr - The flow logic instance shape to validate.
306
+ * @param name - API name used as the error-message prefix (e.g., 'SetFlowVariables').
307
+ * @param isShape - Type-guard distinguishing the specific assignment shape.
308
+ * @param getValues - Accessor returning the values ObjectShape from the narrowed shape.
309
+ * @returns Error message if validation fails, undefined otherwise.
302
310
  */
303
- function validateSetFlowVariables(expr) {
304
- if (!(0, flow_logic_plugin_helpers_1.isSetFlowVariablesShape)(expr)) {
311
+ function validateVariableAssignmentShape(expr, name, isShape, getValues) {
312
+ if (!isShape(expr)) {
305
313
  return undefined;
306
314
  }
307
- // Validate argument count
308
315
  const args = expr.getArguments();
309
316
  if (args.length !== 3) {
310
- return `SetFlowVariables requires exactly 3 arguments (config, schema, values), but received ${args.length}`;
317
+ return `${name} requires exactly 3 arguments (config, schema, values), but received ${args.length}`;
311
318
  }
312
- // Validate config argument
313
319
  try {
314
320
  expr.getSysId();
315
321
  }
316
- catch (error) {
317
- return 'SetFlowVariables: First argument (config) must be an object with valid $id property';
322
+ catch {
323
+ return `${name}: First argument (config) must be an object with valid $id property`;
318
324
  }
319
- // Validate values argument (third argument)
320
- const valuesArg = expr.getVariablesToSet();
325
+ const valuesArg = getValues(expr);
321
326
  if (!valuesArg || valuesArg.isUndefined()) {
322
- return 'SetFlowVariables: Third argument (values) is required';
327
+ return `${name}: Third argument (values) is required`;
323
328
  }
324
329
  if (!valuesArg.isObject()) {
325
- return 'SetFlowVariables: Third argument (values) must be an object';
330
+ return `${name}: Third argument (values) must be an object`;
326
331
  }
327
- // Validate that values object is not empty
328
332
  const entries = Array.from(valuesArg.entries({ resolve: false }));
329
333
  if (entries.length === 0) {
330
- return 'SetFlowVariables: Values object cannot be empty - at least one variable must be set';
334
+ return `${name}: Values object cannot be empty - at least one variable is required`;
331
335
  }
332
- // Validate each value in the object
333
336
  for (const [key, valueShape] of entries) {
334
337
  if (!key || key.trim() === '') {
335
- return 'SetFlowVariables: Variable names cannot be empty';
338
+ return `${name}: Variable names cannot be empty`;
336
339
  }
337
- // Check if value is valid (string, datapill, template expression, or inline script)
338
340
  if (valueShape.isUndefined()) {
339
- return `SetFlowVariables: Variable '${key}' has undefined value`;
341
+ return `${name}: Variable '${key}' has undefined value`;
340
342
  }
341
- // Values can be: strings, numbers, booleans, objects, arrays, datapills, template expressions, or inline scripts
342
343
  const isDatapill = valueShape instanceof sdk_build_core_1.PropertyAccessShape || valueShape instanceof sdk_build_core_1.TemplateExpressionShape;
343
344
  const isInlineScript = valueShape instanceof inline_script_plugin_1.FDInlineScriptCallShape;
344
345
  const isIdentifier = valueShape instanceof sdk_build_core_1.IdentifierShape;
@@ -350,15 +351,150 @@ function validateSetFlowVariables(expr) {
350
351
  isArrayOrObject ||
351
352
  isInlineScript;
352
353
  if (!isValidType) {
353
- // Provide specific error message for unsupported types
354
354
  if (isIdentifier) {
355
- return `SetFlowVariables: Variable '${key}' cannot use local variable references. Use direct values (literals) or datapills (e.g., params.someField) instead`;
355
+ return `${name}: Variable '${key}' cannot use local variable references. Use direct values (literals) or datapills (e.g., params.someField) instead`;
356
356
  }
357
- return `SetFlowVariables: Variable '${key}' has invalid value type. Expected string, number, boolean, object, array, or datapill expression`;
357
+ return `${name}: Variable '${key}' has invalid value type. Expected string, number, boolean, object, array, or datapill expression`;
358
+ }
359
+ }
360
+ return undefined;
361
+ }
362
+ function validateSetFlowVariables(expr) {
363
+ return validateVariableAssignmentShape(expr, 'SetFlowVariables', flow_logic_plugin_helpers_1.isSetFlowVariablesShape, (s) => s.getVariablesToSet());
364
+ }
365
+ /**
366
+ * Validates AppendToFlowVariables flow logic instance.
367
+ *
368
+ * The "target must be array-typed" constraint is enforced at compile time by the API type signature
369
+ * (`KV[K] extends Array<infer E> ? ... : never`). The platform only supports appending to Array.Object flow variables —
370
+ * other array element types (string / integer / boolean / datetime) are runtime no-ops, so this validator emits an
371
+ * error for any target whose flow variable is not declared as `FlowArray({ elementType: FlowObject(...) })`. The
372
+ * remaining argument / structural checks are shared with SetFlowVariables via `validateVariableAssignmentShape`.
373
+ *
374
+ * Additionally, when an array literal is provided as the value for an Array.Object target, every element must itself
375
+ * be an object literal or a datapill expression — primitive literals are not valid array.object elements and the TS
376
+ * `unknown[]` arm of the value union lets them slip past the compile-time check.
377
+ *
378
+ * @param expr - The AppendToFlowVariables flow logic instance shape
379
+ * @returns Error message if validation fails, undefined if valid
380
+ */
381
+ function validateAppendToFlowVariables(expr) {
382
+ const shapeError = validateVariableAssignmentShape(expr, 'AppendToFlowVariables', flow_logic_plugin_helpers_1.isAppendToFlowVariablesShape, (s) => s.getValuesToAppend());
383
+ if (shapeError) {
384
+ return shapeError;
385
+ }
386
+ if (!(0, flow_logic_plugin_helpers_1.isAppendToFlowVariablesShape)(expr)) {
387
+ return undefined;
388
+ }
389
+ const parentFlow = (0, utils_2.findAncestorByCalleeName)(expr.getOriginalNode(), 'Flow', 'Subflow');
390
+ if (!parentFlow) {
391
+ // Placement is already validated by the umbrella check; nothing further to assert here.
392
+ return undefined;
393
+ }
394
+ const flowVariableInitializers = getFlowVariableInitializers(parentFlow);
395
+ const valuesArg = expr.getValuesToAppend();
396
+ for (const [key, valueShape] of valuesArg.entries({ resolve: false })) {
397
+ const initializer = flowVariableInitializers.get(key);
398
+ // If the variable isn't declared in flowVariables, the TS signature has already rejected the key at compile
399
+ // time — skip rather than double-reporting.
400
+ if (!initializer) {
401
+ continue;
402
+ }
403
+ if (!isArrayObjectFlowVariable(initializer)) {
404
+ return `AppendToFlowVariables: Variable '${key}' is not an Array.Object flow variable. AppendToFlowVariables only supports Array.Object targets — declare the variable as FlowArray({ elementType: FlowObject(...) }).`;
405
+ }
406
+ const elementError = validateArrayObjectElements(key, valueShape);
407
+ if (elementError) {
408
+ return elementError;
358
409
  }
359
410
  }
360
411
  return undefined;
361
412
  }
413
+ /**
414
+ * For an Array.Object target, every element of an array-literal value must be an object literal or a datapill
415
+ * expression. A primitive literal (string / number / boolean) inside the array is silently accepted by TypeScript
416
+ * (via the `unknown[]` arm of the value union) but rejected by the platform at runtime, so we flag it here.
417
+ *
418
+ * Non-array values (single object literal, whole-field template string, whole-field datapill) are accepted as-is —
419
+ * those arms are already covered by the shared `validateVariableAssignmentShape` checks and by the platform's own
420
+ * runtime handling.
421
+ */
422
+ function validateArrayObjectElements(key, valueShape) {
423
+ if (!valueShape.isArray()) {
424
+ return undefined;
425
+ }
426
+ const elements = valueShape.asArray().getElements(false);
427
+ for (const [i, element] of elements.entries()) {
428
+ if (isArrayObjectElement(element)) {
429
+ continue;
430
+ }
431
+ return `AppendToFlowVariables: Variable '${key}' has an invalid element at index ${i}. Array.Object variables only accept object literals or datapill expressions as elements — primitive values are not allowed.`;
432
+ }
433
+ return undefined;
434
+ }
435
+ function isArrayObjectElement(element) {
436
+ if (element instanceof sdk_build_core_1.ObjectShape) {
437
+ return true;
438
+ }
439
+ if (element instanceof sdk_build_core_1.PropertyAccessShape ||
440
+ element instanceof sdk_build_core_1.TemplateExpressionShape ||
441
+ element instanceof data_pill_shapes_1.PillShape ||
442
+ element instanceof inline_script_plugin_1.FDInlineScriptCallShape) {
443
+ return true;
444
+ }
445
+ // `wfa.dataPill(...)` calls are unwrapped to PillShape by the DataPillPlugin in normal builds. However, raw
446
+ // CallExpressionShape can still arrive here for fixtures that haven't been subclassed yet — accept any call
447
+ // expression whose callee resolves to wfa.dataPill so the order of plugin subclassing does not matter.
448
+ return element instanceof sdk_build_core_1.CallExpressionShape && element.getCallee() === 'wfa.dataPill';
449
+ }
450
+ /**
451
+ * Reads a Flow / Subflow's `flowVariables` config property and returns a map from variable name to its initializer
452
+ * expression. Returns an empty map when `flowVariables` is missing or shaped unexpectedly — those cases are handled by
453
+ * other validators (or by the TypeScript type system) and should not be re-flagged here.
454
+ */
455
+ function getFlowVariableInitializers(flowOrSubflow) {
456
+ const result = new Map();
457
+ const configArg = flowOrSubflow.getArguments()[0];
458
+ if (!configArg || !sdk_build_core_1.ts.Node.isObjectLiteralExpression(configArg)) {
459
+ return result;
460
+ }
461
+ const flowVarsProp = configArg.getProperty('flowVariables')?.asKind(sdk_build_core_1.ts.SyntaxKind.PropertyAssignment);
462
+ const flowVarsObject = flowVarsProp?.getInitializer()?.asKind(sdk_build_core_1.ts.SyntaxKind.ObjectLiteralExpression);
463
+ if (!flowVarsObject) {
464
+ return result;
465
+ }
466
+ for (const prop of flowVarsObject.getProperties()) {
467
+ const propertyAssignment = prop.asKind(sdk_build_core_1.ts.SyntaxKind.PropertyAssignment);
468
+ const initializer = propertyAssignment?.getInitializer();
469
+ if (!propertyAssignment || !initializer) {
470
+ continue;
471
+ }
472
+ result.set(getPropertyAssignmentName(propertyAssignment), initializer);
473
+ }
474
+ return result;
475
+ }
476
+ function getPropertyAssignmentName(node) {
477
+ const nameNode = node.getNameNode();
478
+ return sdk_build_core_1.ts.Node.isStringLiteral(nameNode) || sdk_build_core_1.ts.Node.isNoSubstitutionTemplateLiteral(nameNode)
479
+ ? nameNode.getLiteralValue()
480
+ : nameNode.getText();
481
+ }
482
+ /**
483
+ * Returns true when the given flow-variable initializer expression is a `FlowArray({ elementType: FlowObject(...) })`
484
+ * call — the only flow-variable shape that AppendToFlowVariables can target at runtime.
485
+ */
486
+ function isArrayObjectFlowVariable(initializer) {
487
+ if (!sdk_build_core_1.ts.Node.isCallExpression(initializer) || (0, utils_1.getCallExpressionName)(initializer) !== 'FlowArray') {
488
+ return false;
489
+ }
490
+ const flowArrayConfig = initializer.getArguments()[0]?.asKind(sdk_build_core_1.ts.SyntaxKind.ObjectLiteralExpression);
491
+ const elementTypeProp = flowArrayConfig?.getProperty('elementType')?.asKind(sdk_build_core_1.ts.SyntaxKind.PropertyAssignment);
492
+ const elementTypeInit = elementTypeProp?.getInitializer();
493
+ if (!elementTypeInit || !sdk_build_core_1.ts.Node.isCallExpression(elementTypeInit)) {
494
+ return false;
495
+ }
496
+ return (0, utils_1.getCallExpressionName)(elementTypeInit) === 'FlowObject';
497
+ }
362
498
  /**
363
499
  * Validates AssignSubflowOutputs flow logic instance.
364
500
  * Performs comprehensive validation of arguments, types, structure, and placement.
@@ -1 +1 @@
1
- {"version":3,"file":"flow-logic-diagnostics.js","sourceRoot":"","sources":["../../../src/flow/flow-logic/flow-logic-diagnostics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"flow-logic-diagnostics.js","sourceRoot":"","sources":["../../../src/flow/flow-logic/flow-logic-diagnostics.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { Factory, Diagnostics, Result, Transform, Database, StringShape } from '@servicenow/sdk-build-core';
2
- import type { FlowLogicInstanceShape, ConditionalLogicInstanceShape, ForEachInstanceShape, GoBackToInstanceShape, TryCatchInstanceShape, DoInParallelInstanceShape, SetFlowVariablesInstanceShape, AssignSubflowOutputsInstanceShape } from './flow-logic-shapes';
2
+ import type { FlowLogicInstanceShape, ConditionalLogicInstanceShape, ForEachInstanceShape, GoBackToInstanceShape, TryCatchInstanceShape, DoInParallelInstanceShape, SetFlowVariablesInstanceShape, AppendToFlowVariablesInstanceShape, AssignSubflowOutputsInstanceShape } from './flow-logic-shapes';
3
3
  import { ObjectShape, Shape, Record } from '@servicenow/sdk-build-core';
4
4
  import { FLOW_LOGIC } from './flow-logic-constants';
5
5
  interface FlowLogicValueInput {
@@ -125,6 +125,7 @@ export declare function isGoBackToShape(expr: FlowLogicInstanceShape): expr is G
125
125
  export declare function isTryCatchShape(expr: FlowLogicInstanceShape): expr is TryCatchInstanceShape;
126
126
  export declare function isDoInParallelShape(expr: FlowLogicInstanceShape): expr is DoInParallelInstanceShape;
127
127
  export declare function isSetFlowVariablesShape(expr: FlowLogicInstanceShape): expr is SetFlowVariablesInstanceShape;
128
+ export declare function isAppendToFlowVariablesShape(expr: FlowLogicInstanceShape): expr is AppendToFlowVariablesInstanceShape;
128
129
  export declare function isAssignSubflowOutputsShape(expr: FlowLogicInstanceShape): expr is AssignSubflowOutputsInstanceShape;
129
130
  /**
130
131
  * Checks if a shape is a datapill shape (PropertyAccessShape, TemplateExpressionShape, IdentifierShape, PillShape, or PillTemplateShape)
@@ -9,6 +9,7 @@ exports.isGoBackToShape = isGoBackToShape;
9
9
  exports.isTryCatchShape = isTryCatchShape;
10
10
  exports.isDoInParallelShape = isDoInParallelShape;
11
11
  exports.isSetFlowVariablesShape = isSetFlowVariablesShape;
12
+ exports.isAppendToFlowVariablesShape = isAppendToFlowVariablesShape;
12
13
  exports.isAssignSubflowOutputsShape = isAssignSubflowOutputsShape;
13
14
  exports.isDataPillShape = isDataPillShape;
14
15
  exports.getFlowLogicInstanceRecord = getFlowLogicInstanceRecord;
@@ -151,6 +152,9 @@ var FlowLogicValueProcessor;
151
152
  [flow_logic_constants_1.FLOW_LOGIC.SET_FLOW_VARIABLES]: (data) => {
152
153
  return prepareSetFlowVariables(data.asObject(), '');
153
154
  },
155
+ [flow_logic_constants_1.FLOW_LOGIC.APPEND_TO_FLOW_VARIABLES]: (data) => {
156
+ return prepareSetFlowVariables(data.asObject(), '');
157
+ },
154
158
  [flow_logic_constants_1.FLOW_LOGIC.ASSIGN_SUBFLOW_OUTPUTS]: (data) => {
155
159
  return prepareAssignSubflowOutputs(data.asObject());
156
160
  },
@@ -187,7 +191,7 @@ var FlowLogicValueProcessor;
187
191
  const preparedData = preparer(data, args);
188
192
  return {
189
193
  outputsToAssign: logicType === flow_logic_constants_1.FLOW_LOGIC.ASSIGN_SUBFLOW_OUTPUTS ? preparedData : [],
190
- variables: logicType === flow_logic_constants_1.FLOW_LOGIC.SET_FLOW_VARIABLES
194
+ variables: logicType === flow_logic_constants_1.FLOW_LOGIC.SET_FLOW_VARIABLES || logicType === flow_logic_constants_1.FLOW_LOGIC.APPEND_TO_FLOW_VARIABLES
191
195
  ? prepareSetFlowVariables(data.asObject(), 'variables')
192
196
  : [],
193
197
  decisionTableInputs: [],
@@ -528,7 +532,12 @@ var FlowLogicValueProcessor;
528
532
  [flow_logic_constants_1.FLOW_LOGIC.FOR_EACH]: parseForEach,
529
533
  [flow_logic_constants_1.FLOW_LOGIC.DO_IN_PARALLEL]: () => ({}),
530
534
  [flow_logic_constants_1.FLOW_LOGIC.TRY_CATCH]: () => ({}),
535
+ // Unreachable: parse() short-circuits for SET_FLOW_VARIABLES, APPEND_TO_FLOW_VARIABLES, and
536
+ // ASSIGN_SUBFLOW_OUTPUTS before this lookup runs — their payloads live in `variables` / `outputsToAssign`, not
537
+ // `inputs`, so they take dedicated branches that delegate to `parseEntriesFromArray`. The entries below exist
538
+ // only to satisfy the `{ [K in FLOW_LOGIC]: ValueParser }` exhaustiveness constraint.
531
539
  [flow_logic_constants_1.FLOW_LOGIC.SET_FLOW_VARIABLES]: () => ({}),
540
+ [flow_logic_constants_1.FLOW_LOGIC.APPEND_TO_FLOW_VARIABLES]: () => ({}),
532
541
  [flow_logic_constants_1.FLOW_LOGIC.ASSIGN_SUBFLOW_OUTPUTS]: () => ({}),
533
542
  };
534
543
  /**
@@ -554,8 +563,9 @@ var FlowLogicValueProcessor;
554
563
  */
555
564
  function parse(logicType, gZippedString, typeMap, labelCacheMap) {
556
565
  const valuesJson = parseGzippedJson(gZippedString);
557
- // Special handling for SET_FLOW_VARIABLES - data is in variables array
558
- if (logicType === flow_logic_constants_1.FLOW_LOGIC.SET_FLOW_VARIABLES) {
566
+ // Special handling for SET_FLOW_VARIABLES and APPEND_TO_FLOW_VARIABLES - data is in the variable array.
567
+ // Both flow logics share the same wire format; only the platform-side semantics differ (overwrite vs. append).
568
+ if (logicType === flow_logic_constants_1.FLOW_LOGIC.SET_FLOW_VARIABLES || logicType === flow_logic_constants_1.FLOW_LOGIC.APPEND_TO_FLOW_VARIABLES) {
559
569
  if (valuesJson?.variables?.length) {
560
570
  return parseEntriesFromArray(valuesJson.variables, typeMap, labelCacheMap);
561
571
  }
@@ -1381,6 +1391,9 @@ function isDoInParallelShape(expr) {
1381
1391
  function isSetFlowVariablesShape(expr) {
1382
1392
  return expr.getCallee() === flow_logic_constants_1.FLOW_LOGIC.SET_FLOW_VARIABLES;
1383
1393
  }
1394
+ function isAppendToFlowVariablesShape(expr) {
1395
+ return expr.getCallee() === flow_logic_constants_1.FLOW_LOGIC.APPEND_TO_FLOW_VARIABLES;
1396
+ }
1384
1397
  function isAssignSubflowOutputsShape(expr) {
1385
1398
  return expr.getCallee() === flow_logic_constants_1.FLOW_LOGIC.ASSIGN_SUBFLOW_OUTPUTS;
1386
1399
  }
@@ -1593,6 +1606,10 @@ async function extractDataFromShape(expr, transform, diagnostics) {
1593
1606
  const variablesToSet = expr.getVariablesToSet();
1594
1607
  return await resolveConfigDataPills(variablesToSet, transform, diagnostics);
1595
1608
  }
1609
+ if (isAppendToFlowVariablesShape(expr)) {
1610
+ const valuesToAppend = expr.getValuesToAppend();
1611
+ return await resolveConfigDataPills(valuesToAppend, transform, diagnostics);
1612
+ }
1596
1613
  if (isAssignSubflowOutputsShape(expr)) {
1597
1614
  const assignedSubflowOutputs = expr.getAssignedSubflowOutputs();
1598
1615
  return await resolveConfigDataPills(assignedSubflowOutputs, transform, diagnostics);
@@ -1645,6 +1662,11 @@ async function getFlowLogicInstanceRecord(expr, context) {
1645
1662
  flow_variables_assigned: expr.getVariablesToSetAsString(),
1646
1663
  });
1647
1664
  }
1665
+ if (isAppendToFlowVariablesShape(expr)) {
1666
+ instanceRecord = instanceRecord.merge({
1667
+ flow_variables_assigned: expr.getValuesToAppendAsString(),
1668
+ });
1669
+ }
1648
1670
  instanceRecord = instanceRecord.merge({
1649
1671
  values: values,
1650
1672
  });
@@ -1735,6 +1757,7 @@ const FLOW_LOGIC_ARGUMENT_BUILDERS = {
1735
1757
  [flow_logic_constants_1.FLOW_LOGIC.DO_IN_PARALLEL]: buildBasicArguments,
1736
1758
  [flow_logic_constants_1.FLOW_LOGIC.TRY_CATCH]: buildBasicArguments,
1737
1759
  [flow_logic_constants_1.FLOW_LOGIC.SET_FLOW_VARIABLES]: buildSetFlowVariablesArguments,
1760
+ [flow_logic_constants_1.FLOW_LOGIC.APPEND_TO_FLOW_VARIABLES]: buildAppendToFlowVariablesArguments,
1738
1761
  [flow_logic_constants_1.FLOW_LOGIC.ASSIGN_SUBFLOW_OUTPUTS]: buildAssignSubflowOutputsArguments,
1739
1762
  };
1740
1763
  /**
@@ -1848,6 +1871,20 @@ function buildVariableOrOutputArguments(record, database, tableName, flowLogicTy
1848
1871
  function buildSetFlowVariablesArguments(record, _logicBodyShapes, database) {
1849
1872
  return buildVariableOrOutputArguments(record, database, 'sys_hub_flow_variable', flow_logic_constants_1.FLOW_LOGIC.SET_FLOW_VARIABLES, '{{flowVariables}}');
1850
1873
  }
1874
+ /**
1875
+ * Builds arguments for AppendToFlowVariables when converting XML to Fluent.
1876
+ * Mirrors SetFlowVariables — both target the flow's `sys_hub_flow_variable` schema and use the `{{flowVariables}}`
1877
+ * schema reference. The platform-side semantics differ (append vs. overwrite), but the wire format and argument shape
1878
+ * are identical.
1879
+ *
1880
+ * @param record - ServiceNow sys_hub_flow_logic_instance_v2 record
1881
+ * @param _logicBodyShapes - Unused (required by FlowLogicArgumentBuilder interface)
1882
+ * @param database - Database to query for the flow variable schemas
1883
+ * @returns Array of three Shape arguments for AppendToFlowVariables call
1884
+ */
1885
+ function buildAppendToFlowVariablesArguments(record, _logicBodyShapes, database) {
1886
+ return buildVariableOrOutputArguments(record, database, 'sys_hub_flow_variable', flow_logic_constants_1.FLOW_LOGIC.APPEND_TO_FLOW_VARIABLES, '{{flowVariables}}');
1887
+ }
1851
1888
  /**
1852
1889
  * Builds arguments for AssignSubflowOutputs when converting XML to Fluent.
1853
1890
  * Creates the three arguments required by the AssignSubflowOutputs API:
@@ -2017,11 +2054,13 @@ function extractForEachParameterName(record) {
2017
2054
  }
2018
2055
  }
2019
2056
  /**
2020
- * Gets the fallback parameter name based on order or default.
2057
+ * Gets the fallback parameter name based on order or default. A ForEach inside
2058
+ * a DoInParallel branch carries a composite order like `19➛20`; strip the
2059
+ * separator so the generated identifier is valid JS.
2021
2060
  */
2022
2061
  function getFallbackParameterName(record) {
2023
2062
  const order = record.get('order')?.getValue();
2024
- return order ? `item_${order}` : 'item';
2063
+ return order ? `item_${(0, utils_1.getOrderSuffix)(order)}` : 'item';
2025
2064
  }
2026
2065
  function buildForEachArguments(record, logicBodyShapes) {
2027
2066
  // 1. Parse values field to extract items data pill string