@servicenow/sdk-build-plugins 4.2.0 → 4.4.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 +11 -0
- package/dist/acl-plugin.js.map +1 -1
- package/dist/applicability-plugin.d.ts +2 -0
- package/dist/applicability-plugin.js +72 -0
- package/dist/applicability-plugin.js.map +1 -0
- package/dist/atf/test-plugin.js +5 -2
- package/dist/atf/test-plugin.js.map +1 -1
- package/dist/basic-syntax-plugin.js +7 -1
- package/dist/basic-syntax-plugin.js.map +1 -1
- package/dist/business-rule-plugin.js +1 -0
- package/dist/business-rule-plugin.js.map +1 -1
- package/dist/call-expression-plugin.js +1 -107
- package/dist/call-expression-plugin.js.map +1 -1
- package/dist/column/column-to-record.d.ts +10 -3
- package/dist/column/column-to-record.js +44 -7
- package/dist/column/column-to-record.js.map +1 -1
- package/dist/column-plugin.d.ts +3 -1
- package/dist/column-plugin.js +12 -12
- package/dist/column-plugin.js.map +1 -1
- package/dist/dashboard/dashboard-component-property-defaults.d.ts +152 -0
- package/dist/dashboard/dashboard-component-property-defaults.js +264 -0
- package/dist/dashboard/dashboard-component-property-defaults.js.map +1 -0
- package/dist/dashboard/dashboard-component-resolver.d.ts +13 -0
- package/dist/dashboard/dashboard-component-resolver.js +69 -0
- package/dist/dashboard/dashboard-component-resolver.js.map +1 -0
- package/dist/dashboard/dashboard-plugin.d.ts +12 -0
- package/dist/dashboard/dashboard-plugin.js +397 -0
- package/dist/dashboard/dashboard-plugin.js.map +1 -0
- package/dist/data-plugin.d.ts +3 -0
- package/dist/data-plugin.js +61 -113
- package/dist/data-plugin.js.map +1 -1
- package/dist/email-notification-plugin.d.ts +2 -0
- package/dist/email-notification-plugin.js +541 -0
- package/dist/email-notification-plugin.js.map +1 -0
- package/dist/flow/constants/flow-plugin-constants.d.ts +58 -0
- package/dist/flow/constants/flow-plugin-constants.js +70 -0
- package/dist/flow/constants/flow-plugin-constants.js.map +1 -0
- package/dist/flow/flow-logic/flow-logic-constants.d.ts +38 -0
- package/dist/flow/flow-logic/flow-logic-constants.js +118 -0
- package/dist/flow/flow-logic/flow-logic-constants.js.map +1 -0
- package/dist/flow/flow-logic/flow-logic-diagnostics.d.ts +19 -0
- package/dist/flow/flow-logic/flow-logic-diagnostics.js +503 -0
- package/dist/flow/flow-logic/flow-logic-diagnostics.js.map +1 -0
- package/dist/flow/flow-logic/flow-logic-plugin-helpers.d.ts +62 -0
- package/dist/flow/flow-logic/flow-logic-plugin-helpers.js +2092 -0
- package/dist/flow/flow-logic/flow-logic-plugin-helpers.js.map +1 -0
- package/dist/flow/flow-logic/flow-logic-plugin.d.ts +52 -0
- package/dist/flow/flow-logic/flow-logic-plugin.js +283 -0
- package/dist/flow/flow-logic/flow-logic-plugin.js.map +1 -0
- package/dist/flow/flow-logic/flow-logic-shapes.d.ts +104 -0
- package/dist/flow/flow-logic/flow-logic-shapes.js +201 -0
- package/dist/flow/flow-logic/flow-logic-shapes.js.map +1 -0
- package/dist/flow/plugins/approval-rules-plugin.d.ts +2 -0
- package/dist/flow/plugins/approval-rules-plugin.js +49 -0
- package/dist/flow/plugins/approval-rules-plugin.js.map +1 -0
- package/dist/flow/plugins/flow-action-definition-plugin.d.ts +2 -0
- package/dist/flow/plugins/flow-action-definition-plugin.js +286 -0
- package/dist/flow/plugins/flow-action-definition-plugin.js.map +1 -0
- package/dist/flow/plugins/flow-data-pill-plugin.d.ts +9 -0
- package/dist/flow/plugins/flow-data-pill-plugin.js +212 -0
- package/dist/flow/plugins/flow-data-pill-plugin.js.map +1 -0
- package/dist/flow/plugins/flow-definition-plugin.d.ts +2 -0
- package/dist/flow/plugins/flow-definition-plugin.js +1668 -0
- package/dist/flow/plugins/flow-definition-plugin.js.map +1 -0
- package/dist/flow/plugins/flow-diagnostics-plugin.d.ts +26 -0
- package/dist/flow/plugins/flow-diagnostics-plugin.js +217 -0
- package/dist/flow/plugins/flow-diagnostics-plugin.js.map +1 -0
- package/dist/flow/plugins/flow-instance-plugin.d.ts +12 -0
- package/dist/flow/plugins/flow-instance-plugin.js +1205 -0
- package/dist/flow/plugins/flow-instance-plugin.js.map +1 -0
- package/dist/flow/plugins/flow-trigger-instance-plugin.d.ts +2 -0
- package/dist/flow/plugins/flow-trigger-instance-plugin.js +338 -0
- package/dist/flow/plugins/flow-trigger-instance-plugin.js.map +1 -0
- package/dist/flow/plugins/inline-script-plugin.d.ts +39 -0
- package/dist/flow/plugins/inline-script-plugin.js +80 -0
- package/dist/flow/plugins/inline-script-plugin.js.map +1 -0
- package/dist/flow/plugins/step-definition-plugin.d.ts +5 -0
- package/dist/flow/plugins/step-definition-plugin.js +71 -0
- package/dist/flow/plugins/step-definition-plugin.js.map +1 -0
- package/dist/flow/plugins/step-instance-plugin.d.ts +31 -0
- package/dist/flow/plugins/step-instance-plugin.js +339 -0
- package/dist/flow/plugins/step-instance-plugin.js.map +1 -0
- package/dist/flow/plugins/trigger-plugin.d.ts +2 -0
- package/dist/flow/plugins/trigger-plugin.js +96 -0
- package/dist/flow/plugins/trigger-plugin.js.map +1 -0
- package/dist/flow/plugins/wfa-datapill-plugin.d.ts +15 -0
- package/dist/flow/plugins/wfa-datapill-plugin.js +178 -0
- package/dist/flow/plugins/wfa-datapill-plugin.js.map +1 -0
- package/dist/flow/utils/approval-rules-processor.d.ts +13 -0
- package/dist/flow/utils/approval-rules-processor.js +267 -0
- package/dist/flow/utils/approval-rules-processor.js.map +1 -0
- package/dist/flow/utils/built-in-complex-objects.d.ts +19 -0
- package/dist/flow/utils/built-in-complex-objects.js +62 -0
- package/dist/flow/utils/built-in-complex-objects.js.map +1 -0
- package/dist/flow/utils/complex-object-resolver.d.ts +8 -0
- package/dist/flow/utils/complex-object-resolver.js +614 -0
- package/dist/flow/utils/complex-object-resolver.js.map +1 -0
- package/dist/flow/utils/complex-objects.d.ts +36 -0
- package/dist/flow/utils/complex-objects.js +481 -0
- package/dist/flow/utils/complex-objects.js.map +1 -0
- package/dist/flow/utils/data-pill-shapes.d.ts +58 -0
- package/dist/flow/utils/data-pill-shapes.js +135 -0
- package/dist/flow/utils/data-pill-shapes.js.map +1 -0
- package/dist/flow/utils/datapill-transformer.d.ts +110 -0
- package/dist/flow/utils/datapill-transformer.js +503 -0
- package/dist/flow/utils/datapill-transformer.js.map +1 -0
- package/dist/flow/utils/flow-constants.d.ts +72 -0
- package/dist/flow/utils/flow-constants.js +230 -0
- package/dist/flow/utils/flow-constants.js.map +1 -0
- package/dist/flow/utils/flow-io-to-record.d.ts +44 -0
- package/dist/flow/utils/flow-io-to-record.js +409 -0
- package/dist/flow/utils/flow-io-to-record.js.map +1 -0
- package/dist/flow/utils/flow-shapes.d.ts +161 -0
- package/dist/flow/utils/flow-shapes.js +255 -0
- package/dist/flow/utils/flow-shapes.js.map +1 -0
- package/dist/flow/utils/flow-to-xml.d.ts +16 -0
- package/dist/flow/utils/flow-to-xml.js +237 -0
- package/dist/flow/utils/flow-to-xml.js.map +1 -0
- package/dist/flow/utils/flow-variable-processor.d.ts +51 -0
- package/dist/flow/utils/flow-variable-processor.js +69 -0
- package/dist/flow/utils/flow-variable-processor.js.map +1 -0
- package/dist/flow/utils/label-cache-parser.d.ts +7 -0
- package/dist/flow/utils/label-cache-parser.js +24 -0
- package/dist/flow/utils/label-cache-parser.js.map +1 -0
- package/dist/flow/utils/label-cache-processor.d.ts +119 -0
- package/dist/flow/utils/label-cache-processor.js +719 -0
- package/dist/flow/utils/label-cache-processor.js.map +1 -0
- package/dist/flow/utils/pill-string-parser.d.ts +88 -0
- package/dist/flow/utils/pill-string-parser.js +306 -0
- package/dist/flow/utils/pill-string-parser.js.map +1 -0
- package/dist/flow/utils/schema-to-flow-object.d.ts +22 -0
- package/dist/flow/utils/schema-to-flow-object.js +318 -0
- package/dist/flow/utils/schema-to-flow-object.js.map +1 -0
- package/dist/flow/utils/service-catalog.d.ts +47 -0
- package/dist/flow/utils/service-catalog.js +137 -0
- package/dist/flow/utils/service-catalog.js.map +1 -0
- package/dist/flow/utils/utils.d.ts +117 -0
- package/dist/flow/utils/utils.js +345 -0
- package/dist/flow/utils/utils.js.map +1 -0
- package/dist/index.d.ts +20 -1
- package/dist/index.js +21 -1
- package/dist/index.js.map +1 -1
- package/dist/list-plugin.js +1 -1
- package/dist/list-plugin.js.map +1 -1
- package/dist/now-attach-plugin.d.ts +1 -0
- package/dist/now-attach-plugin.js +10 -10
- package/dist/now-attach-plugin.js.map +1 -1
- package/dist/now-ref-plugin.js +1 -1
- package/dist/now-ref-plugin.js.map +1 -1
- package/dist/record-plugin.d.ts +29 -0
- package/dist/record-plugin.js +66 -7
- package/dist/record-plugin.js.map +1 -1
- package/dist/repack/index.d.ts +2 -0
- package/dist/repack/index.js +8 -0
- package/dist/repack/index.js.map +1 -1
- package/dist/rest-api-plugin.js +54 -44
- package/dist/rest-api-plugin.js.map +1 -1
- package/dist/server-module-plugin/index.d.ts +10 -0
- package/dist/server-module-plugin/index.js +83 -59
- package/dist/server-module-plugin/index.js.map +1 -1
- package/dist/service-catalog/catalog-clientscript-plugin.d.ts +2 -0
- package/dist/service-catalog/catalog-clientscript-plugin.js +117 -0
- package/dist/service-catalog/catalog-clientscript-plugin.js.map +1 -0
- package/dist/service-catalog/catalog-item-plugin.d.ts +2 -0
- package/dist/service-catalog/catalog-item-plugin.js +115 -0
- package/dist/service-catalog/catalog-item-plugin.js.map +1 -0
- package/dist/service-catalog/catalog-ui-policy-plugin.d.ts +2 -0
- package/dist/service-catalog/catalog-ui-policy-plugin.js +266 -0
- package/dist/service-catalog/catalog-ui-policy-plugin.js.map +1 -0
- package/dist/service-catalog/index.d.ts +5 -0
- package/dist/service-catalog/index.js +22 -0
- package/dist/service-catalog/index.js.map +1 -0
- package/dist/service-catalog/record-to-shape.d.ts +6 -0
- package/dist/service-catalog/record-to-shape.js +93 -0
- package/dist/service-catalog/record-to-shape.js.map +1 -0
- package/dist/service-catalog/sc-record-producer-plugin.d.ts +2 -0
- package/dist/service-catalog/sc-record-producer-plugin.js +140 -0
- package/dist/service-catalog/sc-record-producer-plugin.js.map +1 -0
- package/dist/service-catalog/service-catalog-base.d.ts +311 -0
- package/dist/service-catalog/service-catalog-base.js +542 -0
- package/dist/service-catalog/service-catalog-base.js.map +1 -0
- package/dist/service-catalog/service-catalog-diagnostics.d.ts +45 -0
- package/dist/service-catalog/service-catalog-diagnostics.js +172 -0
- package/dist/service-catalog/service-catalog-diagnostics.js.map +1 -0
- package/dist/service-catalog/shape-to-record.d.ts +8 -0
- package/dist/service-catalog/shape-to-record.js +235 -0
- package/dist/service-catalog/shape-to-record.js.map +1 -0
- package/dist/service-catalog/utils.d.ts +323 -0
- package/dist/service-catalog/utils.js +1216 -0
- package/dist/service-catalog/utils.js.map +1 -0
- package/dist/service-catalog/variable-helper.d.ts +43 -0
- package/dist/service-catalog/variable-helper.js +92 -0
- package/dist/service-catalog/variable-helper.js.map +1 -0
- package/dist/service-catalog/variable-set-plugin.d.ts +2 -0
- package/dist/service-catalog/variable-set-plugin.js +175 -0
- package/dist/service-catalog/variable-set-plugin.js.map +1 -0
- package/dist/service-catalog/variables-transform.d.ts +139 -0
- package/dist/service-catalog/variables-transform.js +403 -0
- package/dist/service-catalog/variables-transform.js.map +1 -0
- package/dist/sla/sla-validators.d.ts +61 -0
- package/dist/sla/sla-validators.js +224 -0
- package/dist/sla/sla-validators.js.map +1 -0
- package/dist/sla-plugin.d.ts +5 -0
- package/dist/sla-plugin.js +280 -0
- package/dist/sla-plugin.js.map +1 -0
- package/dist/static-content-plugin.js +25 -2
- package/dist/static-content-plugin.js.map +1 -1
- package/dist/table-plugin.js +32 -15
- package/dist/table-plugin.js.map +1 -1
- package/dist/ui-page-plugin.js +832 -19
- package/dist/ui-page-plugin.js.map +1 -1
- package/dist/ui-policy-plugin.js +5 -7
- package/dist/ui-policy-plugin.js.map +1 -1
- package/dist/utils.d.ts +10 -1
- package/dist/utils.js +16 -0
- package/dist/utils.js.map +1 -1
- package/dist/ux-list-menu-config-plugin.d.ts +2 -0
- package/dist/ux-list-menu-config-plugin.js +292 -0
- package/dist/ux-list-menu-config-plugin.js.map +1 -0
- package/dist/workspace-plugin/chrome-tab.d.ts +2 -0
- package/dist/workspace-plugin/chrome-tab.js +46 -0
- package/dist/workspace-plugin/chrome-tab.js.map +1 -0
- package/dist/workspace-plugin/constants.d.ts +52 -0
- package/dist/workspace-plugin/constants.js +56 -0
- package/dist/workspace-plugin/constants.js.map +1 -0
- package/dist/workspace-plugin/fluent-utils.d.ts +9 -0
- package/dist/workspace-plugin/fluent-utils.js +60 -0
- package/dist/workspace-plugin/fluent-utils.js.map +1 -0
- package/dist/workspace-plugin/page.d.ts +8 -0
- package/dist/workspace-plugin/page.js +108 -0
- package/dist/workspace-plugin/page.js.map +1 -0
- package/dist/workspace-plugin/screen.d.ts +1 -0
- package/dist/workspace-plugin/screen.js +38 -0
- package/dist/workspace-plugin/screen.js.map +1 -0
- package/dist/workspace-plugin/templates/index.d.ts +10 -0
- package/dist/workspace-plugin/templates/index.js +20 -0
- package/dist/workspace-plugin/templates/index.js.map +1 -0
- package/dist/workspace-plugin/templates/record-page-composition.d.ts +1 -0
- package/dist/workspace-plugin/templates/record-page-composition.js +4043 -0
- package/dist/workspace-plugin/templates/record-page-composition.js.map +1 -0
- package/dist/workspace-plugin/templates/record-page-data.d.ts +1 -0
- package/dist/workspace-plugin/templates/record-page-data.js +527 -0
- package/dist/workspace-plugin/templates/record-page-data.js.map +1 -0
- package/dist/workspace-plugin/templates/record-page-interalEventMappings.d.ts +1 -0
- package/dist/workspace-plugin/templates/record-page-interalEventMappings.js +39 -0
- package/dist/workspace-plugin/templates/record-page-interalEventMappings.js.map +1 -0
- package/dist/workspace-plugin/templates/record-page-layoutModel.d.ts +1 -0
- package/dist/workspace-plugin/templates/record-page-layoutModel.js +55 -0
- package/dist/workspace-plugin/templates/record-page-layoutModel.js.map +1 -0
- package/dist/workspace-plugin/templates/record-page-properties.d.ts +1 -0
- package/dist/workspace-plugin/templates/record-page-properties.js +135 -0
- package/dist/workspace-plugin/templates/record-page-properties.js.map +1 -0
- package/dist/workspace-plugin/templates/record-page.d.ts +3 -0
- package/dist/workspace-plugin/templates/record-page.js +8 -0
- package/dist/workspace-plugin/templates/record-page.js.map +1 -0
- package/dist/workspace-plugin.d.ts +2 -0
- package/dist/workspace-plugin.js +453 -0
- package/dist/workspace-plugin.js.map +1 -0
- package/package.json +10 -12
- package/src/acl-plugin.ts +16 -1
- package/src/applicability-plugin.ts +82 -0
- package/src/atf/test-plugin.ts +6 -3
- package/src/basic-syntax-plugin.ts +10 -1
- package/src/business-rule-plugin.ts +2 -1
- package/src/call-expression-plugin.ts +2 -130
- package/src/column/column-to-record.ts +54 -8
- package/src/column-plugin.ts +29 -13
- package/src/dashboard/dashboard-component-property-defaults.ts +277 -0
- package/src/dashboard/dashboard-component-resolver.ts +69 -0
- package/src/dashboard/dashboard-plugin.ts +450 -0
- package/src/data-plugin.ts +67 -139
- package/src/email-notification-plugin.ts +850 -0
- package/src/flow/constants/flow-plugin-constants.ts +79 -0
- package/src/flow/flow-logic/flow-logic-constants.ts +120 -0
- package/src/flow/flow-logic/flow-logic-diagnostics.ts +591 -0
- package/src/flow/flow-logic/flow-logic-plugin-helpers.ts +2550 -0
- package/src/flow/flow-logic/flow-logic-plugin.ts +337 -0
- package/src/flow/flow-logic/flow-logic-shapes.ts +215 -0
- package/src/flow/plugins/approval-rules-plugin.ts +48 -0
- package/src/flow/plugins/flow-action-definition-plugin.ts +295 -0
- package/src/flow/plugins/flow-data-pill-plugin.ts +258 -0
- package/src/flow/plugins/flow-definition-plugin.ts +2173 -0
- package/src/flow/plugins/flow-diagnostics-plugin.ts +280 -0
- package/src/flow/plugins/flow-instance-plugin.ts +1499 -0
- package/src/flow/plugins/flow-trigger-instance-plugin.ts +444 -0
- package/src/flow/plugins/inline-script-plugin.ts +83 -0
- package/src/flow/plugins/step-definition-plugin.ts +67 -0
- package/src/flow/plugins/step-instance-plugin.ts +431 -0
- package/src/flow/plugins/trigger-plugin.ts +95 -0
- package/src/flow/plugins/wfa-datapill-plugin.ts +213 -0
- package/src/flow/utils/approval-rules-processor.ts +298 -0
- package/src/flow/utils/built-in-complex-objects.ts +81 -0
- package/src/flow/utils/complex-object-resolver.ts +875 -0
- package/src/flow/utils/complex-objects.ts +656 -0
- package/src/flow/utils/data-pill-shapes.ts +165 -0
- package/src/flow/utils/datapill-transformer.ts +632 -0
- package/src/flow/utils/flow-constants.ts +285 -0
- package/src/flow/utils/flow-io-to-record.ts +533 -0
- package/src/flow/utils/flow-shapes.ts +296 -0
- package/src/flow/utils/flow-to-xml.ts +318 -0
- package/src/flow/utils/flow-variable-processor.ts +100 -0
- package/src/flow/utils/label-cache-parser.ts +37 -0
- package/src/flow/utils/label-cache-processor.ts +870 -0
- package/src/flow/utils/pill-string-parser.ts +375 -0
- package/src/flow/utils/schema-to-flow-object.ts +385 -0
- package/src/flow/utils/service-catalog.ts +174 -0
- package/src/flow/utils/utils.ts +395 -0
- package/src/index.ts +20 -1
- package/src/list-plugin.ts +1 -1
- package/src/now-attach-plugin.ts +14 -11
- package/src/now-ref-plugin.ts +1 -1
- package/src/record-plugin.ts +76 -11
- package/src/repack/index.ts +14 -0
- package/src/rest-api-plugin.ts +62 -50
- package/src/server-module-plugin/index.ts +112 -86
- package/src/service-catalog/catalog-clientscript-plugin.ts +140 -0
- package/src/service-catalog/catalog-item-plugin.ts +162 -0
- package/src/service-catalog/catalog-ui-policy-plugin.ts +324 -0
- package/src/service-catalog/index.ts +5 -0
- package/src/service-catalog/record-to-shape.ts +109 -0
- package/src/service-catalog/sc-record-producer-plugin.ts +201 -0
- package/src/service-catalog/service-catalog-base.ts +600 -0
- package/src/service-catalog/service-catalog-diagnostics.ts +254 -0
- package/src/service-catalog/shape-to-record.ts +279 -0
- package/src/service-catalog/utils.ts +1455 -0
- package/src/service-catalog/variable-helper.ts +135 -0
- package/src/service-catalog/variable-set-plugin.ts +197 -0
- package/src/service-catalog/variables-transform.ts +438 -0
- package/src/sla/sla-validators.ts +331 -0
- package/src/sla-plugin.ts +358 -0
- package/src/static-content-plugin.ts +25 -2
- package/src/table-plugin.ts +49 -16
- package/src/ui-page-plugin.ts +1063 -20
- package/src/ui-policy-plugin.ts +5 -9
- package/src/utils.ts +24 -1
- package/src/ux-list-menu-config-plugin.ts +312 -0
- package/src/workspace-plugin/chrome-tab.ts +44 -0
- package/src/workspace-plugin/constants.ts +53 -0
- package/src/workspace-plugin/fluent-utils.ts +60 -0
- package/src/workspace-plugin/page.ts +139 -0
- package/src/workspace-plugin/screen.ts +34 -0
- package/src/workspace-plugin/templates/index.ts +17 -0
- package/src/workspace-plugin/templates/record-page-composition.ts +4051 -0
- package/src/workspace-plugin/templates/record-page-data.ts +523 -0
- package/src/workspace-plugin/templates/record-page-interalEventMappings.ts +35 -0
- package/src/workspace-plugin/templates/record-page-layoutModel.ts +51 -0
- package/src/workspace-plugin/templates/record-page-properties.ts +131 -0
- package/src/workspace-plugin/templates/record-page.ts +6 -0
- package/src/workspace-plugin.ts +574 -0
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ApprovalDueDateShape = exports.ApprovalRulesShape = exports.InlineScriptShape = exports.ActionSubflowInstanceShape = exports.FDInstanceShape = void 0;
|
|
4
|
+
const sdk_build_core_1 = require("@servicenow/sdk-build-core");
|
|
5
|
+
const now_id_plugin_1 = require("../../now-id-plugin");
|
|
6
|
+
const approval_rules_processor_1 = require("./approval-rules-processor");
|
|
7
|
+
const flow_constants_1 = require("./flow-constants");
|
|
8
|
+
/**
|
|
9
|
+
* Abstract base class for all flow definition instances.
|
|
10
|
+
* Extends CallExpressionShape to provide common functionality for flow constructs.
|
|
11
|
+
*/
|
|
12
|
+
class FDInstanceShape extends sdk_build_core_1.CallExpressionShape {
|
|
13
|
+
constructor(source, callee, args) {
|
|
14
|
+
super({ source, callee, args });
|
|
15
|
+
}
|
|
16
|
+
getInstanceType() {
|
|
17
|
+
return this.getCallee();
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.FDInstanceShape = FDInstanceShape;
|
|
21
|
+
/**
|
|
22
|
+
* Shape class for Action and Subflow instances.
|
|
23
|
+
* Handles the pattern: Action(definition, config, props)
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* Action(createIncident, { $id: Now.ID['incident_0'], annotation: 'Create incident' }, { shortDescription: 'Issue' })
|
|
27
|
+
* Subflow(mySubflow, { $id: Now.ID['subflow_0'], annotation: 'Process data' }, { input: 'value' })
|
|
28
|
+
*/
|
|
29
|
+
class ActionSubflowInstanceShape extends FDInstanceShape {
|
|
30
|
+
constructor({ source, instanceDefinition, instanceProps, instanceType, configObject, }) {
|
|
31
|
+
const configObj = configObject;
|
|
32
|
+
super(source, instanceType, [instanceDefinition, configObj, instanceProps]);
|
|
33
|
+
}
|
|
34
|
+
getInstanceDefinition() {
|
|
35
|
+
const arg0 = this.getArgument(0);
|
|
36
|
+
if (arg0.isString()) {
|
|
37
|
+
return arg0.as(sdk_build_core_1.StringShape);
|
|
38
|
+
}
|
|
39
|
+
return arg0.as(sdk_build_core_1.Record);
|
|
40
|
+
}
|
|
41
|
+
getInstanceProps() {
|
|
42
|
+
return this.getArgument(2).as(sdk_build_core_1.ObjectShape);
|
|
43
|
+
}
|
|
44
|
+
getSysId() {
|
|
45
|
+
const configObj = this.getArgument(1).as(sdk_build_core_1.ObjectShape);
|
|
46
|
+
return configObj.get('$id')?.as(now_id_plugin_1.NowIdShape);
|
|
47
|
+
}
|
|
48
|
+
getAnnotation() {
|
|
49
|
+
const configObj = this.getArgument(1).as(sdk_build_core_1.ObjectShape);
|
|
50
|
+
const annotation = configObj.get('annotation');
|
|
51
|
+
return annotation?.isString() ? annotation.asString() : undefined;
|
|
52
|
+
}
|
|
53
|
+
getInstanceUUID() {
|
|
54
|
+
const configObj = this.getArgument(1).as(sdk_build_core_1.ObjectShape);
|
|
55
|
+
const uuid = configObj.get('uuid');
|
|
56
|
+
return uuid?.isString() ? uuid.asString() : undefined;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
exports.ActionSubflowInstanceShape = ActionSubflowInstanceShape;
|
|
60
|
+
/**
|
|
61
|
+
* Represents an inline script for ServiceNow Flow Designer actions and subflows.
|
|
62
|
+
*
|
|
63
|
+
* Inline scripts allow users to write JavaScript code directly in Flow action/subflow inputs
|
|
64
|
+
* without creating separate Script Includes or Business Rules. This shape wraps the script
|
|
65
|
+
* content and provides serialization to Flow Designer's JSON format.
|
|
66
|
+
*
|
|
67
|
+
* **Supported Formats:**
|
|
68
|
+
* - Template literals without substitutions: \`code\`
|
|
69
|
+
* - External files via Now.include: Now.include('./script.js')
|
|
70
|
+
*
|
|
71
|
+
* **Usage Example:**
|
|
72
|
+
* ```typescript
|
|
73
|
+
* Action(myAction, Now.ID['action_id'], {
|
|
74
|
+
* workNotes: `
|
|
75
|
+
* var number = fd_data.trigger.current.number;
|
|
76
|
+
* return 'Incident ' + number + ' created';
|
|
77
|
+
* `
|
|
78
|
+
* })
|
|
79
|
+
* ```
|
|
80
|
+
*
|
|
81
|
+
* **Architecture:**
|
|
82
|
+
* This shape is NOT created via a global plugin. Instead, detection happens contextually
|
|
83
|
+
* in FlowInstancePlugin.checkAndResolveInlineScripts() to ensure only template literals
|
|
84
|
+
* used as Action/Subflow inputs are converted to inline scripts. This prevents incorrectly
|
|
85
|
+
* converting template literals used elsewhere (logging, formatting, etc.).
|
|
86
|
+
*
|
|
87
|
+
* @extends TemplateExpressionShape
|
|
88
|
+
*/
|
|
89
|
+
class InlineScriptShape extends sdk_build_core_1.TemplateExpressionShape {
|
|
90
|
+
scriptContent;
|
|
91
|
+
/**
|
|
92
|
+
* Creates an InlineScriptShape instance.
|
|
93
|
+
*
|
|
94
|
+
* @param source - The original TemplateExpressionShape from the AST
|
|
95
|
+
* @param scriptContent - The JavaScript code to execute (without backticks)
|
|
96
|
+
*/
|
|
97
|
+
constructor({ source, scriptContent }) {
|
|
98
|
+
super({ source, literalText: scriptContent });
|
|
99
|
+
this.scriptContent = scriptContent;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Returns the raw script content without template literal backticks.
|
|
103
|
+
*
|
|
104
|
+
* @returns The JavaScript code as a string
|
|
105
|
+
*/
|
|
106
|
+
getScriptContent() {
|
|
107
|
+
return this.scriptContent;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Serializes this inline script to ServiceNow Flow Designer JSON format.
|
|
111
|
+
*
|
|
112
|
+
* The output structure includes:
|
|
113
|
+
* - `scriptActive: true` - Indicates this field contains a script
|
|
114
|
+
* - `script` object - Contains the actual script content keyed by field name
|
|
115
|
+
* - Empty `value` and `displayValue` - Required by Flow Designer schema
|
|
116
|
+
*
|
|
117
|
+
* @param fieldName - The name of the action/subflow input field
|
|
118
|
+
* @returns Flow Designer JSON structure for inline scripts
|
|
119
|
+
*
|
|
120
|
+
* @example
|
|
121
|
+
* ```typescript
|
|
122
|
+
* inlineScript.toFlowDesignerJson('workNotes')
|
|
123
|
+
* // Returns:
|
|
124
|
+
* // {
|
|
125
|
+
* // name: 'workNotes',
|
|
126
|
+
* // scriptActive: true,
|
|
127
|
+
* // script: { workNotes: { scriptActive: true, script: '...' } },
|
|
128
|
+
* // value: '', displayValue: '', children: []
|
|
129
|
+
* // }
|
|
130
|
+
* ```
|
|
131
|
+
*/
|
|
132
|
+
toFlowDesignerJson(fieldName) {
|
|
133
|
+
return {
|
|
134
|
+
name: fieldName,
|
|
135
|
+
value: '',
|
|
136
|
+
displayValue: '',
|
|
137
|
+
children: [],
|
|
138
|
+
scriptActive: true,
|
|
139
|
+
script: {
|
|
140
|
+
[fieldName]: {
|
|
141
|
+
scriptActive: true,
|
|
142
|
+
script: this.scriptContent,
|
|
143
|
+
},
|
|
144
|
+
},
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
exports.InlineScriptShape = InlineScriptShape;
|
|
149
|
+
/**
|
|
150
|
+
* Shape representing ApprovalRules
|
|
151
|
+
* Used with ApprovalRules() helper - Stores approval rules for Flow Designer
|
|
152
|
+
*/
|
|
153
|
+
class ApprovalRulesShape extends sdk_build_core_1.ObjectShape {
|
|
154
|
+
constructor({ source, value }) {
|
|
155
|
+
super({ source, properties: value });
|
|
156
|
+
}
|
|
157
|
+
getApprovalRules() {
|
|
158
|
+
return super.getValue();
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Returns code representation as ApprovalRules() helper call.
|
|
162
|
+
* @example 'wfa.approvalRules({"conditionType":"OR","ruleSets":[{"action":"Approves","conditionType":"AND","rules":[[{"rule_type":"Any","users":["_params.trigger.current.assigned_to"],"groups":[],"manual":false}]]},{"action":"Rejects","conditionType":"AND","rules":[[{"rule_type":"Any","users":[],"groups":[],"manual":true}]]}]})'
|
|
163
|
+
*/
|
|
164
|
+
getCode() {
|
|
165
|
+
return `${flow_constants_1.APPROVAL_RULES_API_NAME}(${super.getCode()})`;
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Returns a StringShape of the Approval Rules JSON
|
|
169
|
+
*/
|
|
170
|
+
toString() {
|
|
171
|
+
const approvalRulesString = (0, approval_rules_processor_1.approvalRulesJsonToString)(this.getApprovalRules());
|
|
172
|
+
return sdk_build_core_1.Shape.from(this.getSource(), approvalRulesString).toString();
|
|
173
|
+
}
|
|
174
|
+
static from(source, text) {
|
|
175
|
+
return new ApprovalRulesShape({
|
|
176
|
+
source,
|
|
177
|
+
value: (0, approval_rules_processor_1.approvalRulesStringToJson)(text.getValue()),
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
exports.ApprovalRulesShape = ApprovalRulesShape;
|
|
182
|
+
/**
|
|
183
|
+
* Shape representing ApprovalDueDate
|
|
184
|
+
* Used with ApprovalDueDate() helper - Stores approval due date configuration for Flow Designer
|
|
185
|
+
*/
|
|
186
|
+
class ApprovalDueDateShape extends sdk_build_core_1.ObjectShape {
|
|
187
|
+
constructor({ source, value }) {
|
|
188
|
+
super({ source, properties: value });
|
|
189
|
+
}
|
|
190
|
+
getApprovalDueDate() {
|
|
191
|
+
return super.getValue();
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Returns code representation as ApprovalDueDate() helper call.
|
|
195
|
+
* @example 'wfa.approvalDueDate({"action":"none","date_type":"actual","date":"{}","duration":1,"duration_type":"days","schedule":""})'
|
|
196
|
+
*/
|
|
197
|
+
getCode() {
|
|
198
|
+
return `${flow_constants_1.APPROVAL_DUE_DATE_API_NAME}(${super.getCode()})`;
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Returns a StringShape of the Approval Due Date string
|
|
202
|
+
*/
|
|
203
|
+
toString() {
|
|
204
|
+
const approvalDueDateValue = this.getApprovalDueDate();
|
|
205
|
+
const formattedApprovalDueDate = {
|
|
206
|
+
action: 'none',
|
|
207
|
+
date_type: 'actual',
|
|
208
|
+
date: '{}',
|
|
209
|
+
duration: 1,
|
|
210
|
+
duration_type: 'days',
|
|
211
|
+
schedule: '',
|
|
212
|
+
};
|
|
213
|
+
//Convert the Due Date to the format expected by Flow Designer and populate with default values
|
|
214
|
+
if (approvalDueDateValue) {
|
|
215
|
+
formattedApprovalDueDate.action = approvalDueDateValue.action || 'none';
|
|
216
|
+
formattedApprovalDueDate.date_type = approvalDueDateValue.dateType || 'actual';
|
|
217
|
+
formattedApprovalDueDate.date = approvalDueDateValue.date || '{}';
|
|
218
|
+
formattedApprovalDueDate.duration = approvalDueDateValue.duration || 1;
|
|
219
|
+
formattedApprovalDueDate.duration_type = approvalDueDateValue.durationType || 'days';
|
|
220
|
+
formattedApprovalDueDate.schedule = approvalDueDateValue.daysSchedule || '';
|
|
221
|
+
}
|
|
222
|
+
return sdk_build_core_1.Shape.from(this.getSource(), JSON.stringify(formattedApprovalDueDate)).toString();
|
|
223
|
+
}
|
|
224
|
+
static from(source, text) {
|
|
225
|
+
const approvalDueDateValue = {
|
|
226
|
+
action: 'none',
|
|
227
|
+
dateType: 'actual',
|
|
228
|
+
date: '{}',
|
|
229
|
+
duration: 1,
|
|
230
|
+
durationType: 'days',
|
|
231
|
+
daysSchedule: '',
|
|
232
|
+
};
|
|
233
|
+
try {
|
|
234
|
+
const parsedValue = JSON.parse(text.getValue());
|
|
235
|
+
//Convert the Due Date to the format expected by Fluent and populate with default values
|
|
236
|
+
if (parsedValue) {
|
|
237
|
+
approvalDueDateValue.action = parsedValue.action || 'none';
|
|
238
|
+
approvalDueDateValue.dateType = parsedValue.date_type || 'actual';
|
|
239
|
+
approvalDueDateValue.date = parsedValue.date || '{}';
|
|
240
|
+
approvalDueDateValue.duration = Number(parsedValue.duration) || 1;
|
|
241
|
+
approvalDueDateValue.durationType = parsedValue.duration_type || 'days';
|
|
242
|
+
approvalDueDateValue.daysSchedule = parsedValue.schedule || '';
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
catch {
|
|
246
|
+
// Failed to parse - will use default values
|
|
247
|
+
}
|
|
248
|
+
return new ApprovalDueDateShape({
|
|
249
|
+
source,
|
|
250
|
+
value: approvalDueDateValue,
|
|
251
|
+
});
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
exports.ApprovalDueDateShape = ApprovalDueDateShape;
|
|
255
|
+
//# sourceMappingURL=flow-shapes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flow-shapes.js","sourceRoot":"","sources":["../../../src/flow/utils/flow-shapes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type Record, type Database } from '@servicenow/sdk-build-core';
|
|
2
|
+
export declare function generateXML(record: Record, { config, database }: {
|
|
3
|
+
config: {
|
|
4
|
+
scope: string;
|
|
5
|
+
scopeId: string;
|
|
6
|
+
};
|
|
7
|
+
database: Database;
|
|
8
|
+
}): {
|
|
9
|
+
success: boolean;
|
|
10
|
+
value: {
|
|
11
|
+
source: Record;
|
|
12
|
+
name: string;
|
|
13
|
+
category: import("@servicenow/sdk-build-core").InstallCategory;
|
|
14
|
+
content: string;
|
|
15
|
+
};
|
|
16
|
+
};
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.generateXML = generateXML;
|
|
4
|
+
const sdk_build_core_1 = require("@servicenow/sdk-build-core");
|
|
5
|
+
const flow_definition_plugin_1 = require("../plugins/flow-definition-plugin");
|
|
6
|
+
/**
|
|
7
|
+
* Tables to exclude from delete_multiple generation.
|
|
8
|
+
* These tables either don't need cleanup or have special handling.
|
|
9
|
+
*/
|
|
10
|
+
const EXCLUDED_TABLES = new Set([
|
|
11
|
+
'sys_flow_record_trigger',
|
|
12
|
+
'sys_flow_timer_trigger',
|
|
13
|
+
'sys_hub_flow_snapshot',
|
|
14
|
+
'sys_choice',
|
|
15
|
+
'sys_documentation',
|
|
16
|
+
'sys_complex_object',
|
|
17
|
+
'sys_element_mapping',
|
|
18
|
+
]);
|
|
19
|
+
/**
|
|
20
|
+
* Tables that need cascading delete_multiple entries per instance.
|
|
21
|
+
* For example, sys_hub_alias_mapping needs a delete_multiple for each action/subflow instance.
|
|
22
|
+
*/
|
|
23
|
+
const CASCADING_DELETE_CONFIG = {
|
|
24
|
+
sys_hub_action_instance_v2: [{ table: 'sys_hub_alias_mapping', field: 'source_id' }],
|
|
25
|
+
sys_hub_sub_flow_instance_v2: [{ table: 'sys_hub_alias_mapping', field: 'source_id' }],
|
|
26
|
+
};
|
|
27
|
+
function generateXML(record, { config, database }) {
|
|
28
|
+
const relationships = flow_definition_plugin_1.FlowDefinitionPlugin.getRelationships()[record.getTable()] ?? {};
|
|
29
|
+
const updateName = `${record.getTable()}_${record.getId().getValue()}`;
|
|
30
|
+
const recordBuilder = (0, sdk_build_core_1.unloadBuilder)(config);
|
|
31
|
+
const table = record.getTable();
|
|
32
|
+
const flowId = record.getId().getValue();
|
|
33
|
+
const builder = recordBuilder.record(record, updateName);
|
|
34
|
+
record
|
|
35
|
+
.entries()
|
|
36
|
+
.sort(([a], [b]) => a.localeCompare(b)) // Sort keys to make outputs more deterministic
|
|
37
|
+
.forEach(([prop, shape]) => builder.field(prop, shape, {}));
|
|
38
|
+
// Get descendants using plugin's getDescendants method and group by table
|
|
39
|
+
const descendants = flow_definition_plugin_1.FlowDefinitionPlugin.getDescendants(record, database);
|
|
40
|
+
const recordMap = descendants.reduce((acc, rec) => {
|
|
41
|
+
const t = rec.getTable();
|
|
42
|
+
if (!acc[t]) {
|
|
43
|
+
acc[t] = [];
|
|
44
|
+
}
|
|
45
|
+
acc[t].push(rec);
|
|
46
|
+
return acc;
|
|
47
|
+
}, {});
|
|
48
|
+
// Build delete_multiple config dynamically from relationships
|
|
49
|
+
const deleteMultipleConfig = buildDeleteMultipleConfig(relationships);
|
|
50
|
+
// Generate delete_multiple and INSERT_OR_UPDATE entries for each descendant table
|
|
51
|
+
for (const [tableName, records] of Object.entries(recordMap)) {
|
|
52
|
+
// Skip sys_choice as it has special handling
|
|
53
|
+
if (tableName === 'sys_choice') {
|
|
54
|
+
generateNestedXML(records, recordBuilder.recordUpdateElements, config, true);
|
|
55
|
+
continue;
|
|
56
|
+
}
|
|
57
|
+
// Generate delete_multiple entry for this table
|
|
58
|
+
generateDeleteMultiple(tableName, flowId, records, recordMap, recordBuilder.recordUpdateElements, deleteMultipleConfig);
|
|
59
|
+
// Generate INSERT_OR_UPDATE entries for the records
|
|
60
|
+
generateNestedXML(records, recordBuilder.recordUpdateElements, config, false);
|
|
61
|
+
// Generate cascading delete_multiple entries (e.g., alias_mapping per action instance)
|
|
62
|
+
generateCascadingDeleteMultiple(tableName, records, recordBuilder.recordUpdateElements);
|
|
63
|
+
}
|
|
64
|
+
return {
|
|
65
|
+
success: true,
|
|
66
|
+
value: {
|
|
67
|
+
source: record,
|
|
68
|
+
name: `${table}_${flowId}.xml`,
|
|
69
|
+
category: record.getInstallCategory(),
|
|
70
|
+
content: recordBuilder.end(),
|
|
71
|
+
},
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
function generateNestedXML(records, rootElements, config, choiceRecords = false) {
|
|
75
|
+
if (choiceRecords) {
|
|
76
|
+
// group records by field/element and table/name
|
|
77
|
+
const groupedRecords = records.reduce((acc, record) => {
|
|
78
|
+
const field = record.get('element')?.asString()?.getValue();
|
|
79
|
+
const name = record.get('name')?.asString()?.getValue();
|
|
80
|
+
if (!field || !name) {
|
|
81
|
+
return acc;
|
|
82
|
+
}
|
|
83
|
+
const key = `${name}:${field}`;
|
|
84
|
+
if (!acc[key]) {
|
|
85
|
+
acc[key] = [];
|
|
86
|
+
}
|
|
87
|
+
acc[key].push(record);
|
|
88
|
+
return acc;
|
|
89
|
+
}, {});
|
|
90
|
+
for (const [key, records] of Object.entries(groupedRecords)) {
|
|
91
|
+
const [name, field] = key.split(':');
|
|
92
|
+
const choiceElements = [];
|
|
93
|
+
const choiceElement = {
|
|
94
|
+
type: 'element',
|
|
95
|
+
name: 'sys_choice',
|
|
96
|
+
attributes: { field, table: name },
|
|
97
|
+
elements: choiceElements,
|
|
98
|
+
};
|
|
99
|
+
rootElements.push(choiceElement);
|
|
100
|
+
generateNestedXML(records, choiceElements, config);
|
|
101
|
+
}
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
for (const record of records) {
|
|
105
|
+
const table = record.getTable();
|
|
106
|
+
const guid = record.getId().getValue();
|
|
107
|
+
generateRecordXML(record, rootElements, table, guid, record.getAction(), config);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
function generateRecordXML(record, rootElements, table, guid, action = 'INSERT_OR_UPDATE', config) {
|
|
111
|
+
const builder = (0, sdk_build_core_1.recordXml)(rootElements, table, guid, { attr: { action } });
|
|
112
|
+
builder.addSysScope(config.scope, config.scopeId);
|
|
113
|
+
record
|
|
114
|
+
.entries()
|
|
115
|
+
.sort(([a], [b]) => a.localeCompare(b)) // Sort keys to make outputs more deterministic
|
|
116
|
+
.forEach(([prop, shape]) => builder.field(prop, shape, {}));
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Build delete_multiple configuration dynamically from plugin relationships.
|
|
120
|
+
* Traverses the relationship tree and extracts parent fields for each descendant table.
|
|
121
|
+
*/
|
|
122
|
+
function buildDeleteMultipleConfig(relationships, parentTable) {
|
|
123
|
+
const config = {};
|
|
124
|
+
for (const [tableName, relationship] of Object.entries(relationships)) {
|
|
125
|
+
// Skip excluded tables
|
|
126
|
+
if (EXCLUDED_TABLES.has(tableName)) {
|
|
127
|
+
continue;
|
|
128
|
+
}
|
|
129
|
+
// Only process descendant relationships with string 'via' field
|
|
130
|
+
if (!relationship.descendant || typeof relationship.via !== 'string') {
|
|
131
|
+
continue;
|
|
132
|
+
}
|
|
133
|
+
// Skip inverse relationships (parent references child, not child references parent)
|
|
134
|
+
if (relationship.inverse) {
|
|
135
|
+
continue;
|
|
136
|
+
}
|
|
137
|
+
// Add config for this table
|
|
138
|
+
if (parentTable) {
|
|
139
|
+
// Nested relationship - references another descendant table
|
|
140
|
+
config[tableName] = {
|
|
141
|
+
parentField: relationship.via,
|
|
142
|
+
parentType: 'descendant',
|
|
143
|
+
parentTable,
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
else {
|
|
147
|
+
// Direct relationship - references the flow
|
|
148
|
+
config[tableName] = {
|
|
149
|
+
parentField: relationship.via,
|
|
150
|
+
parentType: 'flow',
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
// Recursively process nested relationships
|
|
154
|
+
if (relationship.relationships) {
|
|
155
|
+
const nestedConfig = buildDeleteMultipleConfig(relationship.relationships, tableName);
|
|
156
|
+
Object.assign(config, nestedConfig);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
return config;
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Generate a delete_multiple XML element for a descendant table.
|
|
163
|
+
* The query follows the pattern: parentField=parentId^sys_idNOT IN<comma_separated_ids>
|
|
164
|
+
*/
|
|
165
|
+
function generateDeleteMultiple(tableName, flowId, records, recordMap, rootElements, deleteMultipleConfig) {
|
|
166
|
+
const config = deleteMultipleConfig[tableName];
|
|
167
|
+
if (!config) {
|
|
168
|
+
return;
|
|
169
|
+
}
|
|
170
|
+
let query;
|
|
171
|
+
if (config.parentType === 'flow') {
|
|
172
|
+
// Direct reference to flow
|
|
173
|
+
const recordIds = records.map((r) => r.getId().getValue()).join(',');
|
|
174
|
+
if (recordIds) {
|
|
175
|
+
query = `${config.parentField}=${flowId}^sys_idNOT IN${recordIds}`;
|
|
176
|
+
}
|
|
177
|
+
else {
|
|
178
|
+
query = `${config.parentField}=${flowId}`;
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
else if (config.parentType === 'descendant' && config.parentTable) {
|
|
182
|
+
// Reference to another descendant table
|
|
183
|
+
const parentRecords = recordMap[config.parentTable] || [];
|
|
184
|
+
if (parentRecords.length === 0) {
|
|
185
|
+
return;
|
|
186
|
+
}
|
|
187
|
+
// Generate delete_multiple for each parent record
|
|
188
|
+
for (const parentRecord of parentRecords) {
|
|
189
|
+
const parentId = parentRecord.getId().getValue();
|
|
190
|
+
const childRecords = records.filter((r) => {
|
|
191
|
+
const refValue = r.get(config.parentField)?.getValue();
|
|
192
|
+
return refValue === parentId;
|
|
193
|
+
});
|
|
194
|
+
const childIds = childRecords.map((r) => r.getId().getValue()).join(',');
|
|
195
|
+
const childQuery = childIds
|
|
196
|
+
? `${config.parentField}=${parentId}^sys_idNOT IN${childIds}`
|
|
197
|
+
: `${config.parentField}=${parentId}`;
|
|
198
|
+
rootElements.push({
|
|
199
|
+
type: 'element',
|
|
200
|
+
name: tableName,
|
|
201
|
+
attributes: { action: 'delete_multiple', query: childQuery },
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
return;
|
|
205
|
+
}
|
|
206
|
+
else {
|
|
207
|
+
return;
|
|
208
|
+
}
|
|
209
|
+
rootElements.push({
|
|
210
|
+
type: 'element',
|
|
211
|
+
name: tableName,
|
|
212
|
+
attributes: { action: 'delete_multiple', query },
|
|
213
|
+
});
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Generate cascading delete_multiple entries for tables that need per-instance cleanup.
|
|
217
|
+
* For example, sys_hub_alias_mapping needs a delete_multiple for each action/subflow instance.
|
|
218
|
+
*/
|
|
219
|
+
function generateCascadingDeleteMultiple(tableName, records, rootElements) {
|
|
220
|
+
const cascadeEntries = CASCADING_DELETE_CONFIG[tableName];
|
|
221
|
+
if (!cascadeEntries) {
|
|
222
|
+
return;
|
|
223
|
+
}
|
|
224
|
+
for (const { table, field } of cascadeEntries) {
|
|
225
|
+
// Generate a delete_multiple for each instance record
|
|
226
|
+
for (const record of records) {
|
|
227
|
+
const instanceId = record.getId().getValue();
|
|
228
|
+
const query = `${field}=${instanceId}`;
|
|
229
|
+
rootElements.push({
|
|
230
|
+
type: 'element',
|
|
231
|
+
name: table,
|
|
232
|
+
attributes: { action: 'delete_multiple', query },
|
|
233
|
+
});
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
//# sourceMappingURL=flow-to-xml.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flow-to-xml.js","sourceRoot":"","sources":["../../../src/flow/utils/flow-to-xml.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { Diagnostics, Factory, ObjectShape, Record } from '@servicenow/sdk-build-core';
|
|
2
|
+
/**
|
|
3
|
+
* Type of variable table for flow I/O and variables
|
|
4
|
+
*/
|
|
5
|
+
export type VariableTableType = 'sys_hub_flow_input' | 'sys_hub_flow_output' | 'sys_hub_flow_variable';
|
|
6
|
+
/**
|
|
7
|
+
* Parent table type (always sys_hub_flow for flows)
|
|
8
|
+
*/
|
|
9
|
+
export type ParentTableType = 'sys_hub_flow';
|
|
10
|
+
/**
|
|
11
|
+
* Process a flow variable configuration (inputs, outputs, or flow variables)
|
|
12
|
+
* and generate the corresponding variable records
|
|
13
|
+
*
|
|
14
|
+
* @param config - The ObjectShape containing variable definitions
|
|
15
|
+
* @param varTable - The type of variable table (input, output, or variable)
|
|
16
|
+
* @param parentRecord - The parent flow record
|
|
17
|
+
* @param factory - Factory for creating records
|
|
18
|
+
* @param diagnostics - Diagnostics for error reporting
|
|
19
|
+
* @returns Array of records (both variable records and complex object records)
|
|
20
|
+
*/
|
|
21
|
+
export declare function processVariableConfig(config: ObjectShape | undefined, varTable: VariableTableType, parentRecord: Record, factory: Factory, diagnostics: Diagnostics): Promise<Record[]>;
|
|
22
|
+
/**
|
|
23
|
+
* Process flow inputs configuration
|
|
24
|
+
*
|
|
25
|
+
* @param inputsConfig - The ObjectShape containing input definitions
|
|
26
|
+
* @param parentRecord - The parent flow record
|
|
27
|
+
* @param factory - Factory for creating records
|
|
28
|
+
* @param diagnostics - Diagnostics for error reporting
|
|
29
|
+
* @returns Array of input records
|
|
30
|
+
*/
|
|
31
|
+
export declare function processFlowInputs(inputsConfig: ObjectShape | undefined, parentRecord: Record, factory: Factory, diagnostics: Diagnostics): Promise<Record[]>;
|
|
32
|
+
/**
|
|
33
|
+
* Process flow outputs configuration
|
|
34
|
+
*
|
|
35
|
+
* @param outputsConfig - The ObjectShape containing output definitions
|
|
36
|
+
* @param parentRecord - The parent flow record
|
|
37
|
+
* @param factory - Factory for creating records
|
|
38
|
+
* @param diagnostics - Diagnostics for error reporting
|
|
39
|
+
* @returns Array of output records
|
|
40
|
+
*/
|
|
41
|
+
export declare function processFlowOutputs(outputsConfig: ObjectShape | undefined, parentRecord: Record, factory: Factory, diagnostics: Diagnostics): Promise<Record[]>;
|
|
42
|
+
/**
|
|
43
|
+
* Process flow variables configuration
|
|
44
|
+
*
|
|
45
|
+
* @param flowVariablesConfig - The ObjectShape containing flow variable definitions
|
|
46
|
+
* @param parentRecord - The parent flow record
|
|
47
|
+
* @param factory - Factory for creating records
|
|
48
|
+
* @param diagnostics - Diagnostics for error reporting
|
|
49
|
+
* @returns Array of flow variable records
|
|
50
|
+
*/
|
|
51
|
+
export declare function processFlowVariables(flowVariablesConfig: ObjectShape | undefined, parentRecord: Record, factory: Factory, diagnostics: Diagnostics): Promise<Record[]>;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.processVariableConfig = processVariableConfig;
|
|
4
|
+
exports.processFlowInputs = processFlowInputs;
|
|
5
|
+
exports.processFlowOutputs = processFlowOutputs;
|
|
6
|
+
exports.processFlowVariables = processFlowVariables;
|
|
7
|
+
const flow_io_to_record_1 = require("./flow-io-to-record");
|
|
8
|
+
/**
|
|
9
|
+
* Process a flow variable configuration (inputs, outputs, or flow variables)
|
|
10
|
+
* and generate the corresponding variable records
|
|
11
|
+
*
|
|
12
|
+
* @param config - The ObjectShape containing variable definitions
|
|
13
|
+
* @param varTable - The type of variable table (input, output, or variable)
|
|
14
|
+
* @param parentRecord - The parent flow record
|
|
15
|
+
* @param factory - Factory for creating records
|
|
16
|
+
* @param diagnostics - Diagnostics for error reporting
|
|
17
|
+
* @returns Array of records (both variable records and complex object records)
|
|
18
|
+
*/
|
|
19
|
+
async function processVariableConfig(config, varTable, parentRecord, factory, diagnostics) {
|
|
20
|
+
if (!config) {
|
|
21
|
+
return [];
|
|
22
|
+
}
|
|
23
|
+
const { variableRecords, complexObjectRecords } = await (0, flow_io_to_record_1.buildVariableRecords)({
|
|
24
|
+
variablesConfig: config,
|
|
25
|
+
parentRecord,
|
|
26
|
+
factory,
|
|
27
|
+
diagnostics,
|
|
28
|
+
parentTable: 'sys_hub_flow',
|
|
29
|
+
varTable,
|
|
30
|
+
});
|
|
31
|
+
return [...complexObjectRecords, ...variableRecords];
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Process flow inputs configuration
|
|
35
|
+
*
|
|
36
|
+
* @param inputsConfig - The ObjectShape containing input definitions
|
|
37
|
+
* @param parentRecord - The parent flow record
|
|
38
|
+
* @param factory - Factory for creating records
|
|
39
|
+
* @param diagnostics - Diagnostics for error reporting
|
|
40
|
+
* @returns Array of input records
|
|
41
|
+
*/
|
|
42
|
+
async function processFlowInputs(inputsConfig, parentRecord, factory, diagnostics) {
|
|
43
|
+
return processVariableConfig(inputsConfig, 'sys_hub_flow_input', parentRecord, factory, diagnostics);
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Process flow outputs configuration
|
|
47
|
+
*
|
|
48
|
+
* @param outputsConfig - The ObjectShape containing output definitions
|
|
49
|
+
* @param parentRecord - The parent flow record
|
|
50
|
+
* @param factory - Factory for creating records
|
|
51
|
+
* @param diagnostics - Diagnostics for error reporting
|
|
52
|
+
* @returns Array of output records
|
|
53
|
+
*/
|
|
54
|
+
async function processFlowOutputs(outputsConfig, parentRecord, factory, diagnostics) {
|
|
55
|
+
return processVariableConfig(outputsConfig, 'sys_hub_flow_output', parentRecord, factory, diagnostics);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Process flow variables configuration
|
|
59
|
+
*
|
|
60
|
+
* @param flowVariablesConfig - The ObjectShape containing flow variable definitions
|
|
61
|
+
* @param parentRecord - The parent flow record
|
|
62
|
+
* @param factory - Factory for creating records
|
|
63
|
+
* @param diagnostics - Diagnostics for error reporting
|
|
64
|
+
* @returns Array of flow variable records
|
|
65
|
+
*/
|
|
66
|
+
async function processFlowVariables(flowVariablesConfig, parentRecord, factory, diagnostics) {
|
|
67
|
+
return processVariableConfig(flowVariablesConfig, 'sys_hub_flow_variable', parentRecord, factory, diagnostics);
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=flow-variable-processor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flow-variable-processor.js","sourceRoot":"","sources":["../../../src/flow/utils/flow-variable-processor.ts"],"names":[],"mappings":";;AAwBA,sDAqBC;AAWD,8CAOC;AAWD,gDAOC;AAWD,oDAOC;AAlGD,2DAA0D;AAY1D;;;;;;;;;;GAUG;AACI,KAAK,UAAU,qBAAqB,CACvC,MAA+B,EAC/B,QAA2B,EAC3B,YAAoB,EACpB,OAAgB,EAChB,WAAwB;IAExB,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,OAAO,EAAE,CAAA;IACb,CAAC;IAED,MAAM,EAAE,eAAe,EAAE,oBAAoB,EAAE,GAAG,MAAM,IAAA,wCAAoB,EAAC;QACzE,eAAe,EAAE,MAAM;QACvB,YAAY;QACZ,OAAO;QACP,WAAW;QACX,WAAW,EAAE,cAAiC;QAC9C,QAAQ;KACX,CAAC,CAAA;IAEF,OAAO,CAAC,GAAG,oBAAoB,EAAE,GAAG,eAAe,CAAC,CAAA;AACxD,CAAC;AAED;;;;;;;;GAQG;AACI,KAAK,UAAU,iBAAiB,CACnC,YAAqC,EACrC,YAAoB,EACpB,OAAgB,EAChB,WAAwB;IAExB,OAAO,qBAAqB,CAAC,YAAY,EAAE,oBAAoB,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,CAAC,CAAA;AACxG,CAAC;AAED;;;;;;;;GAQG;AACI,KAAK,UAAU,kBAAkB,CACpC,aAAsC,EACtC,YAAoB,EACpB,OAAgB,EAChB,WAAwB;IAExB,OAAO,qBAAqB,CAAC,aAAa,EAAE,qBAAqB,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,CAAC,CAAA;AAC1G,CAAC;AAED;;;;;;;;GAQG;AACI,KAAK,UAAU,oBAAoB,CACtC,mBAA4C,EAC5C,YAAoB,EACpB,OAAgB,EAChB,WAAwB;IAExB,OAAO,qBAAqB,CAAC,mBAAmB,EAAE,uBAAuB,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,CAAC,CAAA;AAClH,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Logger } from '@servicenow/sdk-build-core';
|
|
2
|
+
/**
|
|
3
|
+
* Creates a map of name to type from a label_cache string
|
|
4
|
+
* @param labelCacheString - The stringified JSON array from label_cache
|
|
5
|
+
* @returns Map where key is the name field and value is the type field
|
|
6
|
+
*/
|
|
7
|
+
export declare function createLableCacheNameToTypeMap(labelCacheString: string, logger: Logger): Map<string, string>;
|