@servicenow/sdk-build-plugins 4.3.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 +2 -0
- package/dist/acl-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 +11 -11
- package/dist/column-plugin.js.map +1 -1
- package/dist/flow/plugins/flow-instance-plugin.js +285 -10
- package/dist/flow/plugins/flow-instance-plugin.js.map +1 -1
- package/dist/flow/plugins/flow-trigger-instance-plugin.js +21 -7
- package/dist/flow/plugins/flow-trigger-instance-plugin.js.map +1 -1
- package/dist/flow/utils/flow-constants.d.ts +7 -0
- package/dist/flow/utils/flow-constants.js +12 -5
- package/dist/flow/utils/flow-constants.js.map +1 -1
- 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/index.js.map +1 -1
- package/dist/now-attach-plugin.js +7 -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/server-module-plugin/index.d.ts +10 -0
- package/dist/server-module-plugin/index.js +45 -55
- package/dist/server-module-plugin/index.js.map +1 -1
- package/dist/service-catalog/sc-record-producer-plugin.js +1 -0
- package/dist/service-catalog/sc-record-producer-plugin.js.map +1 -1
- 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/service-catalog-diagnostics.js +4 -1
- package/dist/service-catalog/service-catalog-diagnostics.js.map +1 -1
- package/dist/service-catalog/shape-to-record.d.ts +1 -0
- package/dist/service-catalog/shape-to-record.js +4 -1
- package/dist/service-catalog/shape-to-record.js.map +1 -1
- package/dist/service-catalog/utils.d.ts +10 -0
- package/dist/service-catalog/utils.js +72 -0
- package/dist/service-catalog/utils.js.map +1 -1
- package/dist/static-content-plugin.js +25 -2
- package/dist/static-content-plugin.js.map +1 -1
- package/dist/table-plugin.js +16 -13
- 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/package.json +5 -5
- package/src/acl-plugin.ts +2 -0
- package/src/column/column-to-record.ts +54 -8
- package/src/column-plugin.ts +28 -12
- package/src/flow/plugins/flow-instance-plugin.ts +364 -13
- package/src/flow/plugins/flow-trigger-instance-plugin.ts +25 -7
- package/src/flow/utils/flow-constants.ts +13 -4
- package/src/flow/utils/service-catalog.ts +174 -0
- package/src/index.ts +0 -1
- package/src/now-attach-plugin.ts +10 -11
- package/src/now-ref-plugin.ts +1 -1
- package/src/server-module-plugin/index.ts +59 -69
- package/src/service-catalog/sc-record-producer-plugin.ts +1 -1
- package/src/service-catalog/service-catalog-base.ts +2 -2
- package/src/service-catalog/service-catalog-diagnostics.ts +4 -1
- package/src/service-catalog/shape-to-record.ts +6 -2
- package/src/service-catalog/utils.ts +93 -0
- package/src/static-content-plugin.ts +25 -2
- package/src/table-plugin.ts +30 -14
- package/src/ui-page-plugin.ts +1063 -20
package/src/table-plugin.ts
CHANGED
|
@@ -16,10 +16,16 @@ import {
|
|
|
16
16
|
} from '@servicenow/sdk-build-core'
|
|
17
17
|
import { XMLParser } from 'fast-xml-parser'
|
|
18
18
|
import { z } from 'zod'
|
|
19
|
-
import {
|
|
19
|
+
import {
|
|
20
|
+
BCP47_LANGUAGE_TAG_PATTERN,
|
|
21
|
+
columnToCallExpression,
|
|
22
|
+
generatePlural,
|
|
23
|
+
isDefaultDocumentation,
|
|
24
|
+
} from './column-plugin'
|
|
20
25
|
import { create } from 'xmlbuilder2'
|
|
21
26
|
import type { XMLBuilder } from 'xmlbuilder2/lib/interfaces'
|
|
22
27
|
import { addFieldsToColumn } from './column/column-helper'
|
|
28
|
+
import { getLabelForDefaultLanguage } from './column/column-to-record'
|
|
23
29
|
import { generateDeprecatedDiagnostics } from './utils'
|
|
24
30
|
import isEqual from 'lodash/isEqual'
|
|
25
31
|
|
|
@@ -367,7 +373,7 @@ export const TablePlugin = Plugin.create({
|
|
|
367
373
|
files: [
|
|
368
374
|
{
|
|
369
375
|
matcher: /\.xml$/,
|
|
370
|
-
async toRecord(file, { factory }) {
|
|
376
|
+
async toRecord(file, { factory, config }) {
|
|
371
377
|
const xml = new XMLParser({
|
|
372
378
|
ignoreAttributes: false,
|
|
373
379
|
alwaysCreateTextNode: true,
|
|
@@ -383,7 +389,7 @@ export const TablePlugin = Plugin.create({
|
|
|
383
389
|
return { success: false }
|
|
384
390
|
}
|
|
385
391
|
|
|
386
|
-
const recordDefs = tableDefToRecordProperties(tableDef)
|
|
392
|
+
const recordDefs = tableDefToRecordProperties(tableDef, config.tableDefaultLanguage)
|
|
387
393
|
const records: Record[] = []
|
|
388
394
|
for (const [key, table] of [
|
|
389
395
|
['sysDbObject', 'sys_db_object'],
|
|
@@ -463,7 +469,7 @@ export const TablePlugin = Plugin.create({
|
|
|
463
469
|
via: 'super_class',
|
|
464
470
|
},
|
|
465
471
|
},
|
|
466
|
-
toShape(record, { descendants }) {
|
|
472
|
+
toShape(record, { descendants, config }) {
|
|
467
473
|
const schema: { [key: string]: CallExpressionShape } = {}
|
|
468
474
|
let displayColumn: string | undefined
|
|
469
475
|
const columns = descendants.query('sys_dictionary')
|
|
@@ -482,6 +488,7 @@ export const TablePlugin = Plugin.create({
|
|
|
482
488
|
documentation: documentation.filter(
|
|
483
489
|
(d) => d.get('element').ifString()?.getValue() === columnName
|
|
484
490
|
),
|
|
491
|
+
tableDefaultLanguage: config.tableDefaultLanguage,
|
|
485
492
|
})
|
|
486
493
|
if (column.get('display').ifDefined()?.toBoolean().getValue()) {
|
|
487
494
|
displayColumn = columnName
|
|
@@ -620,14 +627,15 @@ export const TablePlugin = Plugin.create({
|
|
|
620
627
|
label: $.map(
|
|
621
628
|
(label) =>
|
|
622
629
|
label.ifString() ??
|
|
623
|
-
(tableDocumentation.length &&
|
|
630
|
+
(tableDocumentation.length &&
|
|
631
|
+
!isDefaultDocumentation('', tableDocumentation, config.tableDefaultLanguage)
|
|
624
632
|
? tableDocumentation.map((doc) =>
|
|
625
633
|
doc
|
|
626
634
|
.transform(({ $ }) => ({
|
|
627
635
|
label: $.def(''),
|
|
628
636
|
help: $.def(''),
|
|
629
637
|
hint: $.def(''),
|
|
630
|
-
language: $.def(
|
|
638
|
+
language: $.def(config.tableDefaultLanguage),
|
|
631
639
|
plural: $.def(''),
|
|
632
640
|
url: $.def(''),
|
|
633
641
|
urlTarget: $.from('url_target').def(''),
|
|
@@ -876,7 +884,12 @@ export const TablePlugin = Plugin.create({
|
|
|
876
884
|
|
|
877
885
|
const documentationFiles = await generateRecordXml(
|
|
878
886
|
documentation.filter(
|
|
879
|
-
(doc) =>
|
|
887
|
+
(doc) =>
|
|
888
|
+
!isDefaultDocumentation(
|
|
889
|
+
doc.get('element')?.toString().getValue(),
|
|
890
|
+
[doc],
|
|
891
|
+
config.tableDefaultLanguage
|
|
892
|
+
)
|
|
880
893
|
),
|
|
881
894
|
config,
|
|
882
895
|
transform
|
|
@@ -1142,10 +1155,10 @@ export const TablePlugin = Plugin.create({
|
|
|
1142
1155
|
generateDeprecatedDiagnostics(docObject, diagnostics)
|
|
1143
1156
|
const language = docObject.get('language').ifString()?.getValue()
|
|
1144
1157
|
if (language) {
|
|
1145
|
-
if (language
|
|
1158
|
+
if (!BCP47_LANGUAGE_TAG_PATTERN.test(language)) {
|
|
1146
1159
|
diagnostics.error(
|
|
1147
1160
|
doc.getOriginalNode(),
|
|
1148
|
-
`'language' must be a
|
|
1161
|
+
`'language' must be a valid BCP 47 language tag (e.g., 'en', 'es', 'en-US', 'zh-Hans')`
|
|
1149
1162
|
)
|
|
1150
1163
|
}
|
|
1151
1164
|
if (languages.has(language)) {
|
|
@@ -1179,7 +1192,7 @@ export const TablePlugin = Plugin.create({
|
|
|
1179
1192
|
properties: {
|
|
1180
1193
|
name: tableName,
|
|
1181
1194
|
element: undefined,
|
|
1182
|
-
language:
|
|
1195
|
+
language: config.tableDefaultLanguage,
|
|
1183
1196
|
label: table.get('label').ifString() ?? tableName,
|
|
1184
1197
|
plural: generatePlural(
|
|
1185
1198
|
table.get('label')?.ifString()?.getValue() ?? tableName.getValue()
|
|
@@ -1278,7 +1291,7 @@ export const TablePlugin = Plugin.create({
|
|
|
1278
1291
|
.map((actions) => hasAction('create', actions))
|
|
1279
1292
|
.def(false),
|
|
1280
1293
|
is_extendable: $.from('extensible').toBoolean().def(false),
|
|
1281
|
-
label: $.map((label) => (label
|
|
1294
|
+
label: $.map((label) => getLabelForDefaultLanguage(label, config.tableDefaultLanguage)),
|
|
1282
1295
|
live_feed_enabled: $.from('liveFeed').toBoolean().def(false),
|
|
1283
1296
|
name: $,
|
|
1284
1297
|
scriptable_table: $.from('scriptableTable').toBoolean().def(false),
|
|
@@ -1446,7 +1459,10 @@ function parseTableBootstrapXml(xml: unknown): TableDefinition | null {
|
|
|
1446
1459
|
}
|
|
1447
1460
|
}
|
|
1448
1461
|
|
|
1449
|
-
function tableDefToRecordProperties(
|
|
1462
|
+
function tableDefToRecordProperties(
|
|
1463
|
+
tableDef: TableDefinition,
|
|
1464
|
+
tableDefaultLanguage: string = 'en'
|
|
1465
|
+
): {
|
|
1450
1466
|
sysDbObject: SysDbObjectProperties
|
|
1451
1467
|
sysDictionary: SysDictionaryProperties[]
|
|
1452
1468
|
sysChoice: SysChoiceProperties[]
|
|
@@ -1481,7 +1497,7 @@ function tableDefToRecordProperties(tableDef: TableDefinition): {
|
|
|
1481
1497
|
element: undefined,
|
|
1482
1498
|
label: tableDef.label,
|
|
1483
1499
|
plural: tableDef.plural,
|
|
1484
|
-
language:
|
|
1500
|
+
language: tableDefaultLanguage,
|
|
1485
1501
|
hint: undefined,
|
|
1486
1502
|
help: undefined,
|
|
1487
1503
|
})
|
|
@@ -1558,7 +1574,7 @@ function tableDefToRecordProperties(tableDef: TableDefinition): {
|
|
|
1558
1574
|
element: column.name,
|
|
1559
1575
|
label: column.columnLabel || column.name,
|
|
1560
1576
|
plural: column.plural || generatePlural(column.columnLabel || column.name),
|
|
1561
|
-
language:
|
|
1577
|
+
language: tableDefaultLanguage,
|
|
1562
1578
|
hint: column.hint,
|
|
1563
1579
|
help: column.help,
|
|
1564
1580
|
})
|