@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.
- package/dist/acl-plugin.js +3 -4
- package/dist/acl-plugin.js.map +1 -1
- package/dist/applicability-plugin.js +0 -2
- package/dist/applicability-plugin.js.map +1 -1
- package/dist/application-menu-plugin.js +0 -2
- package/dist/application-menu-plugin.js.map +1 -1
- package/dist/arrow-function-plugin.js +0 -1
- package/dist/arrow-function-plugin.js.map +1 -1
- package/dist/atf/test-plugin.js +6 -10
- package/dist/atf/test-plugin.js.map +1 -1
- package/dist/basic-syntax-plugin.js +10 -4
- package/dist/basic-syntax-plugin.js.map +1 -1
- package/dist/business-rule-plugin.js +0 -1
- package/dist/business-rule-plugin.js.map +1 -1
- package/dist/call-expression-plugin.js +0 -1
- package/dist/call-expression-plugin.js.map +1 -1
- package/dist/claims-plugin.js +0 -1
- package/dist/claims-plugin.js.map +1 -1
- package/dist/client-script-plugin.js +0 -1
- package/dist/client-script-plugin.js.map +1 -1
- package/dist/column-plugin.js +120 -49
- package/dist/column-plugin.js.map +1 -1
- package/dist/cross-scope-privilege-plugin.js +0 -1
- package/dist/cross-scope-privilege-plugin.js.map +1 -1
- package/dist/dashboard/dashboard-plugin.js +0 -2
- package/dist/dashboard/dashboard-plugin.js.map +1 -1
- package/dist/data-plugin.js +0 -1
- package/dist/data-plugin.js.map +1 -1
- package/dist/data-policy-plugin.d.ts +2 -0
- package/dist/data-policy-plugin.js +276 -0
- package/dist/data-policy-plugin.js.map +1 -0
- package/dist/email-notification-plugin.js +2 -3
- package/dist/email-notification-plugin.js.map +1 -1
- package/dist/flow/flow-logic/flow-logic-constants.d.ts +2 -0
- package/dist/flow/flow-logic/flow-logic-constants.js +6 -1
- package/dist/flow/flow-logic/flow-logic-constants.js.map +1 -1
- package/dist/flow/flow-logic/flow-logic-diagnostics.js +192 -56
- package/dist/flow/flow-logic/flow-logic-diagnostics.js.map +1 -1
- package/dist/flow/flow-logic/flow-logic-plugin-helpers.d.ts +2 -1
- package/dist/flow/flow-logic/flow-logic-plugin-helpers.js +44 -5
- package/dist/flow/flow-logic/flow-logic-plugin-helpers.js.map +1 -1
- package/dist/flow/flow-logic/flow-logic-plugin.js +279 -29
- package/dist/flow/flow-logic/flow-logic-plugin.js.map +1 -1
- package/dist/flow/flow-logic/flow-logic-shapes.d.ts +15 -0
- package/dist/flow/flow-logic/flow-logic-shapes.js +25 -1
- package/dist/flow/flow-logic/flow-logic-shapes.js.map +1 -1
- package/dist/flow/plugins/approval-rules-plugin.js +0 -1
- package/dist/flow/plugins/approval-rules-plugin.js.map +1 -1
- package/dist/flow/plugins/flow-action-definition-plugin.js +804 -205
- package/dist/flow/plugins/flow-action-definition-plugin.js.map +1 -1
- package/dist/flow/plugins/flow-data-pill-plugin.js +3 -5
- package/dist/flow/plugins/flow-data-pill-plugin.js.map +1 -1
- package/dist/flow/plugins/flow-definition-plugin.js +84 -17
- package/dist/flow/plugins/flow-definition-plugin.js.map +1 -1
- package/dist/flow/plugins/flow-diagnostics-plugin.js +65 -3
- package/dist/flow/plugins/flow-diagnostics-plugin.js.map +1 -1
- package/dist/flow/plugins/flow-instance-plugin.js +13 -5
- package/dist/flow/plugins/flow-instance-plugin.js.map +1 -1
- package/dist/flow/plugins/flow-trigger-instance-plugin.js +0 -1
- package/dist/flow/plugins/flow-trigger-instance-plugin.js.map +1 -1
- package/dist/flow/plugins/inline-script-plugin.js +0 -1
- package/dist/flow/plugins/inline-script-plugin.js.map +1 -1
- package/dist/flow/plugins/step-definition-plugin.js +0 -2
- package/dist/flow/plugins/step-definition-plugin.js.map +1 -1
- package/dist/flow/plugins/step-instance-plugin.js +216 -77
- package/dist/flow/plugins/step-instance-plugin.js.map +1 -1
- package/dist/flow/plugins/trigger-plugin.js +0 -2
- package/dist/flow/plugins/trigger-plugin.js.map +1 -1
- package/dist/flow/plugins/wfa-datapill-plugin.js +0 -1
- package/dist/flow/plugins/wfa-datapill-plugin.js.map +1 -1
- package/dist/flow/utils/datapill-transformer.js +9 -5
- package/dist/flow/utils/datapill-transformer.js.map +1 -1
- package/dist/flow/utils/flow-constants.d.ts +12 -0
- package/dist/flow/utils/flow-constants.js +17 -3
- package/dist/flow/utils/flow-constants.js.map +1 -1
- package/dist/flow/utils/flow-io-to-record.d.ts +1 -1
- package/dist/flow/utils/flow-io-to-record.js +21 -13
- package/dist/flow/utils/flow-io-to-record.js.map +1 -1
- package/dist/flow/utils/flow-pill-utils.d.ts +26 -0
- package/dist/flow/utils/flow-pill-utils.js +50 -0
- package/dist/flow/utils/flow-pill-utils.js.map +1 -0
- package/dist/flow/utils/flow-stage-processor.d.ts +138 -0
- package/dist/flow/utils/flow-stage-processor.js +665 -0
- package/dist/flow/utils/flow-stage-processor.js.map +1 -0
- package/dist/flow/utils/pill-string-parser.js +28 -43
- package/dist/flow/utils/pill-string-parser.js.map +1 -1
- package/dist/flow/utils/utils.d.ts +11 -6
- package/dist/flow/utils/utils.js +37 -28
- package/dist/flow/utils/utils.js.map +1 -1
- package/dist/form-plugin.js +4 -14
- package/dist/form-plugin.js.map +1 -1
- package/dist/html-import-plugin.js +0 -1
- package/dist/html-import-plugin.js.map +1 -1
- package/dist/import-sets-plugin.js +0 -2
- package/dist/import-sets-plugin.js.map +1 -1
- package/dist/inbound-email-action-plugin.js +0 -1
- package/dist/inbound-email-action-plugin.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/instance-scan-plugin.js +0 -7
- package/dist/instance-scan-plugin.js.map +1 -1
- package/dist/json-plugin.js +0 -1
- package/dist/json-plugin.js.map +1 -1
- package/dist/list-plugin.js +4 -1
- package/dist/list-plugin.js.map +1 -1
- package/dist/now-attach-plugin.js +0 -1
- package/dist/now-attach-plugin.js.map +1 -1
- package/dist/now-config-plugin.js +1 -1
- package/dist/now-config-plugin.js.map +1 -1
- package/dist/now-id-plugin.js +0 -1
- package/dist/now-id-plugin.js.map +1 -1
- package/dist/now-include-plugin.js +0 -1
- package/dist/now-include-plugin.js.map +1 -1
- package/dist/now-ref-plugin.js +0 -1
- package/dist/now-ref-plugin.js.map +1 -1
- package/dist/now-unresolved-plugin.js +0 -1
- package/dist/now-unresolved-plugin.js.map +1 -1
- package/dist/package-json-plugin.js +3 -2
- package/dist/package-json-plugin.js.map +1 -1
- package/dist/property-plugin.js +0 -2
- package/dist/property-plugin.js.map +1 -1
- package/dist/record-plugin.d.ts +2 -0
- package/dist/record-plugin.js +5 -4
- package/dist/record-plugin.js.map +1 -1
- package/dist/repack/lint/Rules.d.ts +1 -2
- package/dist/rest-api-plugin.js +6 -5
- package/dist/rest-api-plugin.js.map +1 -1
- package/dist/role-plugin.js +0 -1
- package/dist/role-plugin.js.map +1 -1
- package/dist/schedule-script/scheduled-script-plugin.js +5 -4
- package/dist/schedule-script/scheduled-script-plugin.js.map +1 -1
- package/dist/script-action-plugin.js +0 -2
- package/dist/script-action-plugin.js.map +1 -1
- package/dist/script-include-plugin.js +4 -4
- package/dist/script-include-plugin.js.map +1 -1
- package/dist/server-module-plugin/index.js +2 -3
- package/dist/server-module-plugin/index.js.map +1 -1
- package/dist/service-catalog/catalog-clientscript-plugin.js +2 -4
- package/dist/service-catalog/catalog-clientscript-plugin.js.map +1 -1
- package/dist/service-catalog/catalog-item-plugin.js +0 -2
- package/dist/service-catalog/catalog-item-plugin.js.map +1 -1
- package/dist/service-catalog/catalog-ui-policy-plugin.js +2 -4
- package/dist/service-catalog/catalog-ui-policy-plugin.js.map +1 -1
- package/dist/service-catalog/sc-record-producer-plugin.js +0 -2
- package/dist/service-catalog/sc-record-producer-plugin.js.map +1 -1
- package/dist/service-catalog/service-catalog-base.d.ts +2 -2
- package/dist/service-catalog/service-catalog-base.js +2 -2
- package/dist/service-catalog/service-catalog-base.js.map +1 -1
- package/dist/service-catalog/utils.js +1 -1
- package/dist/service-catalog/utils.js.map +1 -1
- package/dist/service-catalog/variable-set-plugin.js +0 -2
- package/dist/service-catalog/variable-set-plugin.js.map +1 -1
- package/dist/service-portal/angular-provider-plugin.js +0 -2
- package/dist/service-portal/angular-provider-plugin.js.map +1 -1
- package/dist/service-portal/dependency-plugin.js +3 -5
- package/dist/service-portal/dependency-plugin.js.map +1 -1
- package/dist/service-portal/header-footer-plugin.js +3 -5
- package/dist/service-portal/header-footer-plugin.js.map +1 -1
- package/dist/service-portal/menu-plugin.js +0 -1
- package/dist/service-portal/menu-plugin.js.map +1 -1
- package/dist/service-portal/page-plugin.js +0 -1
- package/dist/service-portal/page-plugin.js.map +1 -1
- package/dist/service-portal/page-route-map-plugin.js +0 -1
- package/dist/service-portal/page-route-map-plugin.js.map +1 -1
- package/dist/service-portal/portal-plugin.js +0 -2
- package/dist/service-portal/portal-plugin.js.map +1 -1
- package/dist/service-portal/theme-plugin.js +0 -2
- package/dist/service-portal/theme-plugin.js.map +1 -1
- package/dist/service-portal/widget-plugin.js +3 -5
- package/dist/service-portal/widget-plugin.js.map +1 -1
- package/dist/sla-plugin.js +0 -2
- package/dist/sla-plugin.js.map +1 -1
- package/dist/static-content-plugin.js +32 -3
- package/dist/static-content-plugin.js.map +1 -1
- package/dist/table-plugin.js +303 -66
- package/dist/table-plugin.js.map +1 -1
- package/dist/ui-action-plugin.js +26 -17
- package/dist/ui-action-plugin.js.map +1 -1
- package/dist/ui-page-plugin.js +159 -17
- package/dist/ui-page-plugin.js.map +1 -1
- package/dist/ui-policy-plugin.js +28 -97
- package/dist/ui-policy-plugin.js.map +1 -1
- package/dist/user-preference-plugin.js +0 -2
- package/dist/user-preference-plugin.js.map +1 -1
- package/dist/utils.d.ts +5 -9
- package/dist/utils.js +38 -11
- package/dist/utils.js.map +1 -1
- package/dist/ux-list-menu-config-plugin.js +0 -2
- package/dist/ux-list-menu-config-plugin.js.map +1 -1
- package/dist/view-plugin.js +0 -1
- package/dist/view-plugin.js.map +1 -1
- package/dist/workspace-plugin.js +0 -2
- package/dist/workspace-plugin.js.map +1 -1
- package/package.json +6 -6
- package/src/acl-plugin.ts +4 -5
- package/src/applicability-plugin.ts +0 -2
- package/src/application-menu-plugin.ts +0 -2
- package/src/arrow-function-plugin.ts +0 -1
- package/src/atf/test-plugin.ts +6 -11
- package/src/basic-syntax-plugin.ts +11 -4
- package/src/business-rule-plugin.ts +1 -2
- package/src/call-expression-plugin.ts +0 -1
- package/src/claims-plugin.ts +0 -1
- package/src/client-script-plugin.ts +1 -2
- package/src/column-plugin.ts +163 -76
- package/src/cross-scope-privilege-plugin.ts +1 -2
- package/src/dashboard/dashboard-plugin.ts +0 -2
- package/src/data-plugin.ts +0 -1
- package/src/data-policy-plugin.ts +333 -0
- package/src/email-notification-plugin.ts +8 -4
- package/src/flow/flow-logic/flow-logic-constants.ts +6 -0
- package/src/flow/flow-logic/flow-logic-diagnostics.ts +236 -58
- package/src/flow/flow-logic/flow-logic-plugin-helpers.ts +59 -6
- package/src/flow/flow-logic/flow-logic-plugin.ts +368 -38
- package/src/flow/flow-logic/flow-logic-shapes.ts +25 -0
- package/src/flow/plugins/approval-rules-plugin.ts +0 -1
- package/src/flow/plugins/flow-action-definition-plugin.ts +940 -208
- package/src/flow/plugins/flow-data-pill-plugin.ts +3 -5
- package/src/flow/plugins/flow-definition-plugin.ts +159 -26
- package/src/flow/plugins/flow-diagnostics-plugin.ts +89 -3
- package/src/flow/plugins/flow-instance-plugin.ts +26 -12
- package/src/flow/plugins/flow-trigger-instance-plugin.ts +0 -1
- package/src/flow/plugins/inline-script-plugin.ts +0 -1
- package/src/flow/plugins/step-definition-plugin.ts +0 -2
- package/src/flow/plugins/step-instance-plugin.ts +259 -65
- package/src/flow/plugins/trigger-plugin.ts +0 -2
- package/src/flow/plugins/wfa-datapill-plugin.ts +0 -1
- package/src/flow/utils/datapill-transformer.ts +13 -5
- package/src/flow/utils/flow-constants.ts +19 -1
- package/src/flow/utils/flow-io-to-record.ts +29 -19
- package/src/flow/utils/flow-pill-utils.ts +48 -0
- package/src/flow/utils/flow-stage-processor.ts +831 -0
- package/src/flow/utils/pill-string-parser.ts +29 -47
- package/src/flow/utils/utils.ts +39 -35
- package/src/form-plugin.ts +5 -15
- package/src/html-import-plugin.ts +0 -1
- package/src/import-sets-plugin.ts +0 -2
- package/src/inbound-email-action-plugin.ts +1 -2
- package/src/index.ts +7 -1
- package/src/instance-scan-plugin.ts +0 -7
- package/src/json-plugin.ts +0 -1
- package/src/list-plugin.ts +6 -2
- package/src/now-attach-plugin.ts +0 -1
- package/src/now-config-plugin.ts +1 -1
- package/src/now-id-plugin.ts +0 -1
- package/src/now-include-plugin.ts +0 -1
- package/src/now-ref-plugin.ts +0 -1
- package/src/now-unresolved-plugin.ts +0 -1
- package/src/package-json-plugin.ts +8 -3
- package/src/property-plugin.ts +0 -2
- package/src/record-plugin.ts +14 -6
- package/src/repack/lint/Rules.ts +1 -1
- package/src/rest-api-plugin.ts +7 -6
- package/src/role-plugin.ts +1 -2
- package/src/schedule-script/scheduled-script-plugin.ts +11 -5
- package/src/script-action-plugin.ts +0 -2
- package/src/script-include-plugin.ts +8 -4
- package/src/server-module-plugin/index.ts +2 -3
- package/src/service-catalog/catalog-clientscript-plugin.ts +2 -4
- package/src/service-catalog/catalog-item-plugin.ts +0 -2
- package/src/service-catalog/catalog-ui-policy-plugin.ts +2 -4
- package/src/service-catalog/sc-record-producer-plugin.ts +0 -2
- package/src/service-catalog/service-catalog-base.ts +2 -2
- package/src/service-catalog/utils.ts +1 -1
- package/src/service-catalog/variable-set-plugin.ts +0 -2
- package/src/service-portal/angular-provider-plugin.ts +0 -2
- package/src/service-portal/dependency-plugin.ts +0 -2
- package/src/service-portal/header-footer-plugin.ts +0 -2
- package/src/service-portal/menu-plugin.ts +1 -2
- package/src/service-portal/page-plugin.ts +1 -2
- package/src/service-portal/page-route-map-plugin.ts +1 -2
- package/src/service-portal/portal-plugin.ts +0 -2
- package/src/service-portal/theme-plugin.ts +0 -2
- package/src/service-portal/widget-plugin.ts +0 -2
- package/src/sla-plugin.ts +0 -2
- package/src/static-content-plugin.ts +37 -4
- package/src/table-plugin.ts +371 -92
- package/src/ui-action-plugin.ts +30 -17
- package/src/ui-page-plugin.ts +188 -20
- package/src/ui-policy-plugin.ts +33 -130
- package/src/user-preference-plugin.ts +0 -2
- package/src/utils.ts +48 -11
- package/src/ux-list-menu-config-plugin.ts +0 -2
- package/src/view-plugin.ts +0 -1
- 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]:
|
|
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,
|
|
114
|
-
if (callName ===
|
|
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
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
const parentDoInParallel = (0, utils_2.findAncestorByCalleeName)(
|
|
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
|
-
*
|
|
273
|
-
*
|
|
274
|
-
*
|
|
275
|
-
*
|
|
276
|
-
*
|
|
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
|
-
*
|
|
293
|
-
*
|
|
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
|
-
* @
|
|
296
|
-
*
|
|
297
|
-
*
|
|
298
|
-
*
|
|
299
|
-
*
|
|
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
|
|
304
|
-
if (!(
|
|
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
|
|
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
|
|
317
|
-
return
|
|
322
|
+
catch {
|
|
323
|
+
return `${name}: First argument (config) must be an object with valid $id property`;
|
|
318
324
|
}
|
|
319
|
-
|
|
320
|
-
const valuesArg = expr.getVariablesToSet();
|
|
325
|
+
const valuesArg = getValues(expr);
|
|
321
326
|
if (!valuesArg || valuesArg.isUndefined()) {
|
|
322
|
-
return
|
|
327
|
+
return `${name}: Third argument (values) is required`;
|
|
323
328
|
}
|
|
324
329
|
if (!valuesArg.isObject()) {
|
|
325
|
-
return
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
558
|
-
|
|
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
|