@servicenow/sdk-build-plugins 4.4.1 → 4.6.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 +54 -4
- package/dist/acl-plugin.js.map +1 -1
- package/dist/applicability-plugin.js +2 -0
- package/dist/applicability-plugin.js.map +1 -1
- package/dist/application-menu-plugin.js +2 -0
- package/dist/application-menu-plugin.js.map +1 -1
- package/dist/arrow-function-plugin.d.ts +6 -1
- package/dist/arrow-function-plugin.js +105 -12
- package/dist/arrow-function-plugin.js.map +1 -1
- package/dist/atf/test-plugin.js +2 -0
- package/dist/atf/test-plugin.js.map +1 -1
- package/dist/basic-syntax-plugin.js +20 -0
- package/dist/basic-syntax-plugin.js.map +1 -1
- package/dist/call-expression-plugin.js +1 -0
- package/dist/call-expression-plugin.js.map +1 -1
- package/dist/claims-plugin.js +1 -0
- package/dist/claims-plugin.js.map +1 -1
- package/dist/client-script-plugin.js +1 -0
- package/dist/client-script-plugin.js.map +1 -1
- package/dist/column-plugin.js +4 -7
- package/dist/column-plugin.js.map +1 -1
- package/dist/cross-scope-privilege-plugin.js +1 -0
- package/dist/cross-scope-privilege-plugin.js.map +1 -1
- package/dist/dashboard/dashboard-plugin.js +2 -0
- package/dist/dashboard/dashboard-plugin.js.map +1 -1
- package/dist/data-plugin.js +1 -0
- package/dist/data-plugin.js.map +1 -1
- package/dist/email-notification-plugin.js +9 -13
- package/dist/email-notification-plugin.js.map +1 -1
- package/dist/flow/constants/flow-plugin-constants.d.ts +1 -1
- package/dist/flow/constants/flow-plugin-constants.js +1 -1
- package/dist/flow/constants/flow-plugin-constants.js.map +1 -1
- package/dist/flow/flow-logic/flow-logic-diagnostics.js +5 -5
- package/dist/flow/flow-logic/flow-logic-diagnostics.js.map +1 -1
- package/dist/flow/flow-logic/flow-logic-plugin-helpers.d.ts +82 -2
- package/dist/flow/flow-logic/flow-logic-plugin-helpers.js +48 -40
- package/dist/flow/flow-logic/flow-logic-plugin-helpers.js.map +1 -1
- package/dist/flow/flow-logic/flow-logic-plugin.js +1 -0
- package/dist/flow/flow-logic/flow-logic-plugin.js.map +1 -1
- package/dist/flow/plugins/approval-rules-plugin.js +1 -0
- package/dist/flow/plugins/approval-rules-plugin.js.map +1 -1
- package/dist/flow/plugins/flow-action-definition-plugin.js +1232 -55
- package/dist/flow/plugins/flow-action-definition-plugin.js.map +1 -1
- package/dist/flow/plugins/flow-data-pill-plugin.js +6 -2
- package/dist/flow/plugins/flow-data-pill-plugin.js.map +1 -1
- package/dist/flow/plugins/flow-definition-plugin.js +23 -44
- package/dist/flow/plugins/flow-definition-plugin.js.map +1 -1
- package/dist/flow/plugins/flow-diagnostics-plugin.d.ts +2 -2
- package/dist/flow/plugins/flow-diagnostics-plugin.js +3 -2
- package/dist/flow/plugins/flow-diagnostics-plugin.js.map +1 -1
- package/dist/flow/plugins/flow-instance-plugin.js +136 -34
- package/dist/flow/plugins/flow-instance-plugin.js.map +1 -1
- package/dist/flow/plugins/flow-trigger-instance-plugin.js +1 -0
- package/dist/flow/plugins/flow-trigger-instance-plugin.js.map +1 -1
- package/dist/flow/plugins/inline-script-plugin.js +1 -0
- package/dist/flow/plugins/inline-script-plugin.js.map +1 -1
- package/dist/flow/plugins/step-definition-plugin.js +4 -2
- package/dist/flow/plugins/step-definition-plugin.js.map +1 -1
- package/dist/flow/plugins/step-instance-plugin.d.ts +9 -1
- package/dist/flow/plugins/step-instance-plugin.js +649 -135
- package/dist/flow/plugins/step-instance-plugin.js.map +1 -1
- package/dist/flow/plugins/trigger-plugin.js +2 -0
- package/dist/flow/plugins/trigger-plugin.js.map +1 -1
- package/dist/flow/plugins/wfa-datapill-plugin.js +21 -5
- package/dist/flow/plugins/wfa-datapill-plugin.js.map +1 -1
- package/dist/flow/post-install.d.ts +2 -0
- package/dist/flow/post-install.js +59 -0
- package/dist/flow/post-install.js.map +1 -0
- package/dist/flow/utils/complex-object-resolver.js +4 -1
- package/dist/flow/utils/complex-object-resolver.js.map +1 -1
- package/dist/flow/utils/complex-objects.js +5 -3
- package/dist/flow/utils/complex-objects.js.map +1 -1
- package/dist/flow/utils/flow-constants.d.ts +90 -2
- package/dist/flow/utils/flow-constants.js +430 -7
- 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 +37 -16
- package/dist/flow/utils/flow-io-to-record.js.map +1 -1
- package/dist/flow/utils/flow-shapes.js +4 -0
- package/dist/flow/utils/flow-shapes.js.map +1 -1
- package/dist/flow/utils/flow-to-xml.d.ts +3 -2
- package/dist/flow/utils/flow-to-xml.js +3 -4
- package/dist/flow/utils/flow-to-xml.js.map +1 -1
- package/dist/flow/utils/label-cache-parser.d.ts +9 -2
- package/dist/flow/utils/label-cache-parser.js +32 -4
- package/dist/flow/utils/label-cache-parser.js.map +1 -1
- package/dist/flow/utils/label-cache-processor.d.ts +5 -0
- package/dist/flow/utils/label-cache-processor.js +14 -2
- package/dist/flow/utils/label-cache-processor.js.map +1 -1
- package/dist/flow/utils/pill-shape-helpers.d.ts +15 -0
- package/dist/flow/utils/pill-shape-helpers.js +35 -0
- package/dist/flow/utils/pill-shape-helpers.js.map +1 -0
- package/dist/flow/utils/pill-string-parser.js +1 -0
- package/dist/flow/utils/pill-string-parser.js.map +1 -1
- package/dist/flow/utils/schema-to-flow-object.d.ts +6 -1
- package/dist/flow/utils/schema-to-flow-object.js +131 -15
- package/dist/flow/utils/schema-to-flow-object.js.map +1 -1
- package/dist/flow/utils/service-catalog.js +5 -1
- package/dist/flow/utils/service-catalog.js.map +1 -1
- package/dist/flow/utils/utils.d.ts +1 -0
- package/dist/flow/utils/utils.js +6 -1
- package/dist/flow/utils/utils.js.map +1 -1
- package/dist/form-plugin.d.ts +2 -0
- package/dist/form-plugin.js +1132 -0
- package/dist/form-plugin.js.map +1 -0
- package/dist/html-import-plugin.js +1 -0
- package/dist/html-import-plugin.js.map +1 -1
- package/dist/import-sets-plugin.js +2 -0
- package/dist/import-sets-plugin.js.map +1 -1
- package/dist/inbound-email-action-plugin.d.ts +10 -0
- package/dist/inbound-email-action-plugin.js +128 -0
- package/dist/inbound-email-action-plugin.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.js +17 -1
- package/dist/index.js.map +1 -1
- package/dist/instance-scan-plugin.d.ts +2 -0
- package/dist/instance-scan-plugin.js +293 -0
- package/dist/instance-scan-plugin.js.map +1 -0
- package/dist/json-plugin.js +1 -0
- package/dist/json-plugin.js.map +1 -1
- package/dist/list-plugin.js +1 -0
- package/dist/list-plugin.js.map +1 -1
- package/dist/now-attach-plugin.js +1 -0
- package/dist/now-attach-plugin.js.map +1 -1
- package/dist/now-config-plugin.js +659 -51
- package/dist/now-config-plugin.js.map +1 -1
- package/dist/now-id-plugin.js +1 -0
- package/dist/now-id-plugin.js.map +1 -1
- package/dist/now-include-plugin.js +1 -0
- package/dist/now-include-plugin.js.map +1 -1
- package/dist/now-ref-plugin.js +1 -0
- package/dist/now-ref-plugin.js.map +1 -1
- package/dist/now-unresolved-plugin.js +1 -0
- package/dist/now-unresolved-plugin.js.map +1 -1
- package/dist/package-json-plugin.js +1 -0
- package/dist/package-json-plugin.js.map +1 -1
- package/dist/property-plugin.js +3 -1
- package/dist/property-plugin.js.map +1 -1
- package/dist/record-plugin.d.ts +37 -0
- package/dist/record-plugin.js +47 -3
- package/dist/record-plugin.js.map +1 -1
- package/dist/repack/lint/Rules.d.ts +11 -2
- package/dist/repack/lint/Rules.js +160 -16
- package/dist/repack/lint/Rules.js.map +1 -1
- package/dist/repack/lint/index.d.ts +10 -5
- package/dist/repack/lint/index.js +76 -50
- package/dist/repack/lint/index.js.map +1 -1
- package/dist/rest-api-plugin.js +22 -1
- package/dist/rest-api-plugin.js.map +1 -1
- package/dist/role-plugin.js +1 -0
- package/dist/role-plugin.js.map +1 -1
- package/dist/schedule-script/index.d.ts +1 -0
- package/dist/schedule-script/index.js +18 -0
- package/dist/schedule-script/index.js.map +1 -0
- package/dist/schedule-script/scheduled-script-plugin.d.ts +2 -0
- package/dist/schedule-script/scheduled-script-plugin.js +556 -0
- package/dist/schedule-script/scheduled-script-plugin.js.map +1 -0
- package/dist/schedule-script/timeZoneConverter.d.ts +61 -0
- package/dist/schedule-script/timeZoneConverter.js +170 -0
- package/dist/schedule-script/timeZoneConverter.js.map +1 -0
- package/dist/script-action-plugin.js +2 -0
- package/dist/script-action-plugin.js.map +1 -1
- package/dist/script-include-plugin.js +2 -0
- package/dist/script-include-plugin.js.map +1 -1
- package/dist/server-module-plugin/index.js +13 -2
- package/dist/server-module-plugin/index.js.map +1 -1
- package/dist/service-catalog/catalog-clientscript-plugin.js +2 -0
- package/dist/service-catalog/catalog-clientscript-plugin.js.map +1 -1
- package/dist/service-catalog/catalog-item-plugin.js +2 -0
- package/dist/service-catalog/catalog-item-plugin.js.map +1 -1
- package/dist/service-catalog/catalog-ui-policy-plugin.js +2 -0
- package/dist/service-catalog/catalog-ui-policy-plugin.js.map +1 -1
- package/dist/service-catalog/sc-record-producer-plugin.js +2 -0
- package/dist/service-catalog/sc-record-producer-plugin.js.map +1 -1
- package/dist/service-catalog/service-catalog-base.d.ts +18 -18
- package/dist/service-catalog/service-catalog-base.js +22 -22
- package/dist/service-catalog/service-catalog-base.js.map +1 -1
- package/dist/service-catalog/service-catalog-diagnostics.d.ts +6 -0
- package/dist/service-catalog/service-catalog-diagnostics.js +20 -0
- package/dist/service-catalog/service-catalog-diagnostics.js.map +1 -1
- package/dist/service-catalog/shape-to-record.js +7 -2
- package/dist/service-catalog/shape-to-record.js.map +1 -1
- package/dist/service-catalog/variable-set-plugin.js +2 -0
- package/dist/service-catalog/variable-set-plugin.js.map +1 -1
- package/dist/service-portal/angular-provider-plugin.js +2 -0
- package/dist/service-portal/angular-provider-plugin.js.map +1 -1
- package/dist/service-portal/dependency-plugin.js +5 -31
- package/dist/service-portal/dependency-plugin.js.map +1 -1
- package/dist/service-portal/header-footer-plugin.d.ts +2 -0
- package/dist/service-portal/header-footer-plugin.js +50 -0
- package/dist/service-portal/header-footer-plugin.js.map +1 -0
- package/dist/service-portal/menu-plugin.d.ts +2 -0
- package/dist/service-portal/menu-plugin.js +334 -0
- package/dist/service-portal/menu-plugin.js.map +1 -0
- package/dist/service-portal/page-plugin.d.ts +2 -0
- package/dist/service-portal/page-plugin.js +681 -0
- package/dist/service-portal/page-plugin.js.map +1 -0
- package/dist/service-portal/page-route-map-plugin.d.ts +2 -0
- package/dist/service-portal/page-route-map-plugin.js +114 -0
- package/dist/service-portal/page-route-map-plugin.js.map +1 -0
- package/dist/service-portal/portal-plugin.d.ts +2 -0
- package/dist/service-portal/portal-plugin.js +309 -0
- package/dist/service-portal/portal-plugin.js.map +1 -0
- package/dist/service-portal/theme-plugin.d.ts +2 -0
- package/dist/service-portal/theme-plugin.js +112 -0
- package/dist/service-portal/theme-plugin.js.map +1 -0
- package/dist/service-portal/utils.d.ts +46 -0
- package/dist/service-portal/utils.js +331 -0
- package/dist/service-portal/utils.js.map +1 -0
- package/dist/service-portal/widget-plugin.js +10 -182
- package/dist/service-portal/widget-plugin.js.map +1 -1
- package/dist/sla-plugin.js +2 -0
- package/dist/sla-plugin.js.map +1 -1
- package/dist/static-content-plugin.js +5 -0
- package/dist/static-content-plugin.js.map +1 -1
- package/dist/table-plugin.js +191 -26
- package/dist/table-plugin.js.map +1 -1
- package/dist/ui-action-plugin.js +3 -4
- package/dist/ui-action-plugin.js.map +1 -1
- package/dist/ui-page-plugin.js +101 -21
- package/dist/ui-page-plugin.js.map +1 -1
- package/dist/ui-policy-plugin.js +1 -0
- package/dist/ui-policy-plugin.js.map +1 -1
- package/dist/user-preference-plugin.js +2 -0
- package/dist/user-preference-plugin.js.map +1 -1
- package/dist/utils.d.ts +20 -2
- package/dist/utils.js +34 -3
- package/dist/utils.js.map +1 -1
- package/dist/ux-list-menu-config-plugin.js +2 -0
- package/dist/ux-list-menu-config-plugin.js.map +1 -1
- package/dist/view-plugin.js +9 -3
- package/dist/view-plugin.js.map +1 -1
- package/dist/workspace-plugin.js +41 -36
- package/dist/workspace-plugin.js.map +1 -1
- package/package.json +11 -11
- package/src/_types/eslint-community-eslint-utils.d.ts +15 -0
- package/src/acl-plugin.ts +97 -8
- package/src/applicability-plugin.ts +2 -0
- package/src/application-menu-plugin.ts +2 -0
- package/src/arrow-function-plugin.ts +128 -13
- package/src/atf/test-plugin.ts +2 -0
- package/src/basic-syntax-plugin.ts +21 -0
- package/src/call-expression-plugin.ts +1 -0
- package/src/claims-plugin.ts +1 -0
- package/src/client-script-plugin.ts +2 -1
- package/src/column-plugin.ts +4 -8
- package/src/cross-scope-privilege-plugin.ts +2 -1
- package/src/dashboard/dashboard-plugin.ts +2 -0
- package/src/data-plugin.ts +1 -0
- package/src/email-notification-plugin.ts +3 -23
- package/src/flow/constants/flow-plugin-constants.ts +1 -1
- package/src/flow/flow-logic/flow-logic-diagnostics.ts +5 -6
- package/src/flow/flow-logic/flow-logic-plugin-helpers.ts +47 -45
- package/src/flow/flow-logic/flow-logic-plugin.ts +1 -0
- package/src/flow/plugins/approval-rules-plugin.ts +1 -0
- package/src/flow/plugins/flow-action-definition-plugin.ts +1584 -62
- package/src/flow/plugins/flow-data-pill-plugin.ts +6 -2
- package/src/flow/plugins/flow-definition-plugin.ts +22 -51
- package/src/flow/plugins/flow-diagnostics-plugin.ts +3 -2
- package/src/flow/plugins/flow-instance-plugin.ts +201 -36
- package/src/flow/plugins/flow-trigger-instance-plugin.ts +1 -0
- package/src/flow/plugins/inline-script-plugin.ts +1 -0
- package/src/flow/plugins/step-definition-plugin.ts +4 -2
- package/src/flow/plugins/step-instance-plugin.ts +772 -155
- package/src/flow/plugins/trigger-plugin.ts +2 -0
- package/src/flow/plugins/wfa-datapill-plugin.ts +26 -5
- package/src/flow/post-install.ts +93 -0
- package/src/flow/utils/complex-object-resolver.ts +4 -1
- package/src/flow/utils/complex-objects.ts +11 -3
- package/src/flow/utils/flow-constants.ts +451 -6
- package/src/flow/utils/flow-io-to-record.ts +43 -17
- package/src/flow/utils/flow-shapes.ts +4 -0
- package/src/flow/utils/flow-to-xml.ts +4 -4
- package/src/flow/utils/label-cache-parser.ts +33 -4
- package/src/flow/utils/label-cache-processor.ts +14 -2
- package/src/flow/utils/pill-shape-helpers.ts +42 -0
- package/src/flow/utils/pill-string-parser.ts +1 -0
- package/src/flow/utils/schema-to-flow-object.ts +183 -15
- package/src/flow/utils/service-catalog.ts +5 -2
- package/src/flow/utils/utils.ts +12 -1
- package/src/form-plugin.ts +1409 -0
- package/src/html-import-plugin.ts +1 -0
- package/src/import-sets-plugin.ts +2 -0
- package/src/inbound-email-action-plugin.ts +145 -0
- package/src/index.ts +13 -0
- package/src/instance-scan-plugin.ts +313 -0
- package/src/json-plugin.ts +1 -0
- package/src/list-plugin.ts +2 -1
- package/src/now-attach-plugin.ts +1 -0
- package/src/now-config-plugin.ts +833 -53
- package/src/now-id-plugin.ts +1 -0
- package/src/now-include-plugin.ts +1 -0
- package/src/now-ref-plugin.ts +1 -0
- package/src/now-unresolved-plugin.ts +1 -0
- package/src/package-json-plugin.ts +1 -0
- package/src/property-plugin.ts +6 -1
- package/src/record-plugin.ts +56 -6
- package/src/repack/lint/Rules.ts +171 -22
- package/src/repack/lint/index.ts +80 -56
- package/src/rest-api-plugin.ts +28 -2
- package/src/role-plugin.ts +2 -1
- package/src/schedule-script/index.ts +1 -0
- package/src/schedule-script/scheduled-script-plugin.ts +690 -0
- package/src/schedule-script/timeZoneConverter.ts +188 -0
- package/src/script-action-plugin.ts +2 -0
- package/src/script-include-plugin.ts +2 -0
- package/src/server-module-plugin/index.ts +14 -2
- package/src/service-catalog/catalog-clientscript-plugin.ts +2 -0
- package/src/service-catalog/catalog-item-plugin.ts +2 -0
- package/src/service-catalog/catalog-ui-policy-plugin.ts +2 -0
- package/src/service-catalog/sc-record-producer-plugin.ts +2 -0
- package/src/service-catalog/service-catalog-base.ts +22 -22
- package/src/service-catalog/service-catalog-diagnostics.ts +30 -0
- package/src/service-catalog/shape-to-record.ts +8 -2
- package/src/service-catalog/variable-set-plugin.ts +2 -0
- package/src/service-portal/angular-provider-plugin.ts +2 -0
- package/src/service-portal/dependency-plugin.ts +6 -53
- package/src/service-portal/header-footer-plugin.ts +57 -0
- package/src/service-portal/menu-plugin.ts +413 -0
- package/src/service-portal/page-plugin.ts +805 -0
- package/src/service-portal/page-route-map-plugin.ts +124 -0
- package/src/service-portal/portal-plugin.ts +342 -0
- package/src/service-portal/theme-plugin.ts +135 -0
- package/src/service-portal/utils.ts +470 -0
- package/src/service-portal/widget-plugin.ts +18 -224
- package/src/sla-plugin.ts +2 -0
- package/src/static-content-plugin.ts +4 -0
- package/src/table-plugin.ts +228 -37
- package/src/ui-action-plugin.ts +3 -8
- package/src/ui-page-plugin.ts +110 -21
- package/src/ui-policy-plugin.ts +2 -1
- package/src/user-preference-plugin.ts +2 -0
- package/src/utils.ts +42 -2
- package/src/ux-list-menu-config-plugin.ts +2 -0
- package/src/view-plugin.ts +11 -4
- package/src/workspace-plugin.ts +45 -43
- package/src/_types/eslint-plugin-es-x.d.ts +0 -17
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { CallExpressionShape, Plugin } from '@servicenow/sdk-build-core'
|
|
2
2
|
import { buildVariableShapes, complexObjectMatchesIoRecord } from '../utils/flow-io-to-record'
|
|
3
3
|
import { NowIdShape } from '../../now-id-plugin'
|
|
4
|
+
import { createSdkDocEntry } from '../../utils'
|
|
4
5
|
|
|
5
6
|
export const TriggerPlugin = Plugin.create({
|
|
6
7
|
name: 'TriggerPlugin',
|
|
8
|
+
docs: [createSdkDocEntry('TriggerDefinition', ['sys_hub_trigger_definition'])],
|
|
7
9
|
records: {
|
|
8
10
|
sys_hub_trigger_definition: {
|
|
9
11
|
relationships: {
|
|
@@ -117,6 +117,7 @@ function extractMetadataFromType(node: ts.Node): {
|
|
|
117
117
|
*/
|
|
118
118
|
export const WfaDataPillPlugin = Plugin.create({
|
|
119
119
|
name: 'WfaDataPillPlugin',
|
|
120
|
+
docs: [],
|
|
120
121
|
nodes: [
|
|
121
122
|
{
|
|
122
123
|
node: 'CallExpression',
|
|
@@ -129,10 +130,13 @@ export const WfaDataPillPlugin = Plugin.create({
|
|
|
129
130
|
return { success: false }
|
|
130
131
|
}
|
|
131
132
|
|
|
132
|
-
// Validate wfa.dataPill is inside a Flow or Subflow call expression
|
|
133
|
-
const
|
|
134
|
-
if (!
|
|
135
|
-
diagnostics.error(
|
|
133
|
+
// Validate wfa.dataPill is inside a Flow or Subflow or action call expression
|
|
134
|
+
const isDataPillAncestorValid = findAncestorByCalleeName(node, 'Flow', 'Subflow', 'Action')
|
|
135
|
+
if (!isDataPillAncestorValid) {
|
|
136
|
+
diagnostics.error(
|
|
137
|
+
node,
|
|
138
|
+
'wfa.dataPill() cannot be used outside of a Flow, Subflow, or Action context.'
|
|
139
|
+
)
|
|
136
140
|
return { success: false }
|
|
137
141
|
}
|
|
138
142
|
|
|
@@ -204,7 +208,24 @@ export const WfaDataPillPlugin = Plugin.create({
|
|
|
204
208
|
return { success: true, value: shapeResult.value }
|
|
205
209
|
}
|
|
206
210
|
}
|
|
207
|
-
|
|
211
|
+
// Inside Action() bodies, step output datapills (e.g., create_record_step.record)
|
|
212
|
+
// reference local const variables that can't be resolved during the shape phase.
|
|
213
|
+
// These are handled by the ActionDefinitionPlugin's toRecord handler for Action() instead.
|
|
214
|
+
// Action input pills (params.inputs.xxx) DO resolve here — only step variable
|
|
215
|
+
// references fail, so an unresolved pill in an Action body is expected for step refs
|
|
216
|
+
// but could indicate a typo for other cases. Emit a hint (not error) to surface
|
|
217
|
+
// potential issues without blocking the build.
|
|
218
|
+
const actionAncestor = findAncestorByCalleeName(node, 'Action')
|
|
219
|
+
if (actionAncestor) {
|
|
220
|
+
diagnostics.hint(
|
|
221
|
+
expressionArg,
|
|
222
|
+
'wfa.dataPill: expression could not be resolved at compile time. ' +
|
|
223
|
+
'If this references a step output variable, it will be resolved during build. ' +
|
|
224
|
+
'Otherwise, check for typos in the property path.'
|
|
225
|
+
)
|
|
226
|
+
} else {
|
|
227
|
+
diagnostics.error(expressionArg, 'wfa.dataPill: failed to resolve expression or type')
|
|
228
|
+
}
|
|
208
229
|
return { success: false }
|
|
209
230
|
},
|
|
210
231
|
},
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import type { PostInstallTask, PostInstallContext } from '@servicenow/sdk-build-core'
|
|
2
|
+
|
|
3
|
+
type ActivateFlowsResult = {
|
|
4
|
+
status: string
|
|
5
|
+
summary: {
|
|
6
|
+
total: number
|
|
7
|
+
succeeded: number
|
|
8
|
+
failed: number
|
|
9
|
+
}
|
|
10
|
+
results: Array<{
|
|
11
|
+
sys_id: string
|
|
12
|
+
flow_name?: string
|
|
13
|
+
status: string
|
|
14
|
+
message?: string
|
|
15
|
+
errorMessage?: string
|
|
16
|
+
}>
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
async function activateFlows(context: PostInstallContext): Promise<void> {
|
|
20
|
+
const { instanceClient, logger, config } = context
|
|
21
|
+
const { scopeId } = config
|
|
22
|
+
|
|
23
|
+
if (!instanceClient) {
|
|
24
|
+
logger.debug('No instance connection available, skipping flow activation')
|
|
25
|
+
return
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
logger.debug('Activating flows...')
|
|
29
|
+
|
|
30
|
+
const response = await instanceClient.fetch(
|
|
31
|
+
'api/now/wfa_fluent/activate_flows',
|
|
32
|
+
{
|
|
33
|
+
method: 'POST',
|
|
34
|
+
headers: { Accept: 'application/json' },
|
|
35
|
+
},
|
|
36
|
+
new URLSearchParams({ sysparm_transaction_scope: scopeId })
|
|
37
|
+
)
|
|
38
|
+
|
|
39
|
+
// 422 = all flows failed — still returns a valid result body
|
|
40
|
+
// Any other non-OK status (400, 401, 403, 500, etc.) is an error
|
|
41
|
+
if (!response.ok && response.status !== 422) {
|
|
42
|
+
const body = await response.json().catch(() => null)
|
|
43
|
+
const msg = body?.error?.message ?? body?.message ?? response.statusText
|
|
44
|
+
|
|
45
|
+
// Instances without the endpoint return 400 with "does not represent any resource"
|
|
46
|
+
if (msg.includes('does not represent any resource')) {
|
|
47
|
+
logger.debug(
|
|
48
|
+
'Flow activation endpoint not found. Make sure you have the latest ServiceNow IDE installed on your instance.'
|
|
49
|
+
)
|
|
50
|
+
return
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
throw new Error(`Failed to activate flows: ${msg}`)
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
const body = (await response.json()) as { result: ActivateFlowsResult }
|
|
57
|
+
const { summary, results } = body.result
|
|
58
|
+
|
|
59
|
+
if (summary.total === 0) {
|
|
60
|
+
logger.debug('No flows to activate')
|
|
61
|
+
return
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
if (summary.failed === 0) {
|
|
65
|
+
logger.info(`Flow activation complete: ${summary.succeeded}/${summary.total} succeeded`)
|
|
66
|
+
return
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
const failures = results.filter((r) => r.status !== 'success')
|
|
70
|
+
const MAX_LOGGED_FAILURES = 5
|
|
71
|
+
for (const r of failures.slice(0, MAX_LOGGED_FAILURES)) {
|
|
72
|
+
logger.warn(
|
|
73
|
+
` Failed: ${r.flow_name ?? r.sys_id} — ${r.message ?? ''}${r.errorMessage ? `: ${r.errorMessage}` : ''}`
|
|
74
|
+
)
|
|
75
|
+
}
|
|
76
|
+
if (failures.length > MAX_LOGGED_FAILURES) {
|
|
77
|
+
logger.warn(` ... and ${failures.length - MAX_LOGGED_FAILURES} more`)
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
const msg = `Flow activation complete: ${summary.succeeded}/${summary.total} succeeded, ${summary.failed} failed`
|
|
81
|
+
if (summary.succeeded === 0) {
|
|
82
|
+
throw new Error(msg)
|
|
83
|
+
}
|
|
84
|
+
logger.warn(msg)
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
export const FlowActivationTask: PostInstallTask = {
|
|
88
|
+
name: 'flow-activation',
|
|
89
|
+
skipFlag: 'skipFlowActivation',
|
|
90
|
+
skipFlagDescription: 'Skip activating (publishing) flows after install',
|
|
91
|
+
runFor: 'both',
|
|
92
|
+
run: activateFlows,
|
|
93
|
+
}
|
|
@@ -824,7 +824,10 @@ function buildChildrenArray(
|
|
|
824
824
|
} else if (typeof fieldType === 'string') {
|
|
825
825
|
// Primitive field with value
|
|
826
826
|
if (shouldIncludeField(fieldValue)) {
|
|
827
|
-
|
|
827
|
+
// DEF0792627: Preserve the |type annotation so extractDataPillsFromChildren()
|
|
828
|
+
// uses the developer-specified type instead of injecting parameter.type.
|
|
829
|
+
// The annotation is stripped later by STRIP_DATATYPE_FROM_PILL_REGEX after extraction.
|
|
830
|
+
const value = isDataPill(fieldValue) ? String(fieldValue) : ''
|
|
828
831
|
const parameter = createChildParameter(
|
|
829
832
|
key,
|
|
830
833
|
fieldType.toLowerCase(),
|
|
@@ -25,6 +25,8 @@ const COLUMN_TYPE_TO_SCHEMA_TYPE = {
|
|
|
25
25
|
'array.boolean': 'Boolean',
|
|
26
26
|
'array.datetime': 'Date',
|
|
27
27
|
reference: 'Reference',
|
|
28
|
+
float: 'Float',
|
|
29
|
+
json: 'Json',
|
|
28
30
|
}
|
|
29
31
|
|
|
30
32
|
/**
|
|
@@ -84,7 +86,7 @@ const buildFieldFacet = ({
|
|
|
84
86
|
const additionalProperties: globalThis.Record<string, unknown> = {}
|
|
85
87
|
|
|
86
88
|
// Handle reference columns - extract reference table
|
|
87
|
-
if (uiType === 'reference') {
|
|
89
|
+
if (uiType === 'reference' || uiType === 'records') {
|
|
88
90
|
const referenceTable = config.get('referenceTable')?.ifString()?.getValue()
|
|
89
91
|
if (referenceTable) {
|
|
90
92
|
additionalProperties['reference'] = referenceTable
|
|
@@ -641,7 +643,10 @@ function validateArrayElementType(
|
|
|
641
643
|
diagnostics: Diagnostics
|
|
642
644
|
) {
|
|
643
645
|
if (!ALLOWED_ARRAY_TYPES.includes(elementTypeString)) {
|
|
644
|
-
diagnostics.error(
|
|
646
|
+
diagnostics.error(
|
|
647
|
+
elementType,
|
|
648
|
+
`'${elementTypeString}' type fields are not allowed inside FlowArray structures. Allowed types are: ${ALLOWED_ARRAY_TYPES.join(', ')}.`
|
|
649
|
+
)
|
|
645
650
|
}
|
|
646
651
|
}
|
|
647
652
|
|
|
@@ -651,6 +656,9 @@ function validateObjectElementType(
|
|
|
651
656
|
diagnostics: Diagnostics
|
|
652
657
|
) {
|
|
653
658
|
if (!ALLOWED_OBJECT_TYPES.includes(elementTypeString)) {
|
|
654
|
-
diagnostics.error(
|
|
659
|
+
diagnostics.error(
|
|
660
|
+
elementType,
|
|
661
|
+
`'${elementTypeString}' type fields are not allowed inside FlowObject or FlowArray structures. Allowed types are: ${ALLOWED_OBJECT_TYPES.join(', ')}.`
|
|
662
|
+
)
|
|
655
663
|
}
|
|
656
664
|
}
|