@servicenow/sdk-build-core 3.0.1 → 3.0.3
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/XML.d.ts +2 -2
- package/dist/XML.js +11 -4
- package/dist/XML.js.map +1 -1
- package/dist/plugins/behaviors/extractors/Data.d.ts +6 -1
- package/dist/plugins/behaviors/extractors/Data.js +9 -1
- package/dist/plugins/behaviors/extractors/Data.js.map +1 -1
- package/package.json +3 -3
- package/src/XML.ts +11 -4
- package/src/plugins/behaviors/extractors/Data.ts +12 -1
package/dist/XML.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ export declare function unloadBuilder(context: Context): {
|
|
|
7
7
|
end: () => string;
|
|
8
8
|
record: (tableName: string, id: string | number, action?: Action) => {
|
|
9
9
|
fields(fields: Record<string, XmlValue>): void;
|
|
10
|
-
field(columnName: string, value: unknown, attributes?: Record<string, string
|
|
10
|
+
field(columnName: string, value: unknown, attributes?: Record<string, string>, needsCDATA?: boolean): {
|
|
11
11
|
choices(_choices: unknown): void;
|
|
12
12
|
};
|
|
13
13
|
addSysScope(context: Context): XMLBuilder;
|
|
@@ -25,7 +25,7 @@ export declare function recordXml(xml: XMLBuilder, tableName: string, id: string
|
|
|
25
25
|
context?: Context;
|
|
26
26
|
}): {
|
|
27
27
|
fields(fields: Record<string, XmlValue>): void;
|
|
28
|
-
field(columnName: string, value: unknown, attributes?: Record<string, string
|
|
28
|
+
field(columnName: string, value: unknown, attributes?: Record<string, string>, needsCDATA?: boolean): {
|
|
29
29
|
choices(_choices: unknown): void;
|
|
30
30
|
};
|
|
31
31
|
addSysScope(context: Context): XMLBuilder;
|
package/dist/XML.js
CHANGED
|
@@ -11,7 +11,7 @@ function isValidXmlValue(value) {
|
|
|
11
11
|
}
|
|
12
12
|
function unloadBuilder(context) {
|
|
13
13
|
const xml = (0, xmlbuilder2_1.create)({ version: '1.0' }).ele('record_update');
|
|
14
|
-
const end = () => xml.end({ prettyPrint: true });
|
|
14
|
+
const end = () => xml.end({ prettyPrint: true }).replaceAll(' ', '&nbsp;');
|
|
15
15
|
// Root Builder
|
|
16
16
|
return {
|
|
17
17
|
xml,
|
|
@@ -42,7 +42,7 @@ function recordXml(xml, tableName, id, options = {}) {
|
|
|
42
42
|
this.field(columnName, value);
|
|
43
43
|
}
|
|
44
44
|
},
|
|
45
|
-
field(columnName, value, attributes = {}) {
|
|
45
|
+
field(columnName, value, attributes = {}, needsCDATA = false) {
|
|
46
46
|
if (!isValidXmlValue(value)) {
|
|
47
47
|
throw new Error(`Invalid XML value for "${columnName}" column: ${value}`);
|
|
48
48
|
}
|
|
@@ -52,12 +52,19 @@ function recordXml(xml, tableName, id, options = {}) {
|
|
|
52
52
|
columnName === 'operation_script' ||
|
|
53
53
|
tag === 'script' ||
|
|
54
54
|
tag === 'html' ||
|
|
55
|
-
tag === 'xml'
|
|
55
|
+
tag === 'xml' ||
|
|
56
|
+
needsCDATA) {
|
|
56
57
|
value = tag === 'xml' ? sanitizeNestedCdataTags(value) : value;
|
|
57
58
|
fieldXml = recordXml.ele(columnName, attributes).dat(value);
|
|
58
59
|
}
|
|
59
60
|
else {
|
|
60
|
-
|
|
61
|
+
/*
|
|
62
|
+
  is not a predefined entity for XML, to overcome that the platform uses &nbsp; in XMLs.
|
|
63
|
+
When we transform XML that contains &nbsp; that translates to ` `.
|
|
64
|
+
But when fluent generates the XML from source it creates XML with which makes the XML invalid since `nbsp` is not defined.
|
|
65
|
+
So we are replacing with &nbsp; to ensure the XML is valid.
|
|
66
|
+
*/
|
|
67
|
+
fieldXml = recordXml.ele(columnName, attributes).txt(`${value}`.replaceAll(' ', '&nbsp;'));
|
|
61
68
|
}
|
|
62
69
|
// Field Builder
|
|
63
70
|
return {
|
package/dist/XML.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XML.js","sourceRoot":"","sources":["../src/XML.ts"],"names":[],"mappings":";;AAOA,0CAEC;AAED,sCAcC;AAOD,0DAEC;AAED,
|
|
1
|
+
{"version":3,"file":"XML.js","sourceRoot":"","sources":["../src/XML.ts"],"names":[],"mappings":"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"}
|
|
@@ -53,6 +53,7 @@ export declare abstract class Data<D = unknown> {
|
|
|
53
53
|
static isEntity(data?: unknown): data is EntityData;
|
|
54
54
|
abstract getValue(resolveReferences?: boolean): D;
|
|
55
55
|
getNode(): SupportedNode;
|
|
56
|
+
needsCDATATag(): boolean;
|
|
56
57
|
}
|
|
57
58
|
export declare class UndefinedData extends Data<undefined> {
|
|
58
59
|
constructor(node: SupportedNode);
|
|
@@ -60,8 +61,12 @@ export declare class UndefinedData extends Data<undefined> {
|
|
|
60
61
|
}
|
|
61
62
|
export declare class StringData<const D extends string = string> extends Data<D> {
|
|
62
63
|
private readonly value;
|
|
63
|
-
|
|
64
|
+
private options;
|
|
65
|
+
constructor(value: D, node: SupportedNode, options?: {
|
|
66
|
+
needsCDATA: boolean;
|
|
67
|
+
});
|
|
64
68
|
getValue(): D;
|
|
69
|
+
needsCDATATag(): boolean;
|
|
65
70
|
}
|
|
66
71
|
export declare class NumberData<const D extends number = number> extends Data<D> {
|
|
67
72
|
private readonly value;
|
|
@@ -95,6 +95,9 @@ class Data {
|
|
|
95
95
|
getNode() {
|
|
96
96
|
return this.node;
|
|
97
97
|
}
|
|
98
|
+
needsCDATATag() {
|
|
99
|
+
return false;
|
|
100
|
+
}
|
|
98
101
|
}
|
|
99
102
|
exports.Data = Data;
|
|
100
103
|
class UndefinedData extends Data {
|
|
@@ -108,13 +111,18 @@ class UndefinedData extends Data {
|
|
|
108
111
|
exports.UndefinedData = UndefinedData;
|
|
109
112
|
class StringData extends Data {
|
|
110
113
|
value;
|
|
111
|
-
|
|
114
|
+
options;
|
|
115
|
+
constructor(value, node, options = { needsCDATA: false }) {
|
|
112
116
|
super(node);
|
|
113
117
|
this.value = value;
|
|
118
|
+
this.options = options;
|
|
114
119
|
}
|
|
115
120
|
getValue() {
|
|
116
121
|
return this.value;
|
|
117
122
|
}
|
|
123
|
+
needsCDATATag() {
|
|
124
|
+
return this.options.needsCDATA;
|
|
125
|
+
}
|
|
118
126
|
}
|
|
119
127
|
exports.StringData = StringData;
|
|
120
128
|
class NumberData extends Data {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Data.js","sourceRoot":"","sources":["../../../../src/plugins/behaviors/extractors/Data.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Data.js","sourceRoot":"","sources":["../../../../src/plugins/behaviors/extractors/Data.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@servicenow/sdk-build-core",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.3",
|
|
4
4
|
"description": "ServiceNow SDK Build System Core Libraries",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -13,8 +13,8 @@
|
|
|
13
13
|
"lodash": "4.17.21",
|
|
14
14
|
"xmlbuilder2": "3.1.1",
|
|
15
15
|
"zod": "3.22.4",
|
|
16
|
-
"@servicenow/sdk-
|
|
17
|
-
"@servicenow/sdk-
|
|
16
|
+
"@servicenow/sdk-project": "3.0.3",
|
|
17
|
+
"@servicenow/sdk-core": "3.0.3"
|
|
18
18
|
},
|
|
19
19
|
"overrides": {
|
|
20
20
|
"micromatch": "4.0.7"
|
package/src/XML.ts
CHANGED
|
@@ -11,7 +11,7 @@ export function isValidXmlValue(value: unknown): value is XmlValue {
|
|
|
11
11
|
|
|
12
12
|
export function unloadBuilder(context: Context) {
|
|
13
13
|
const xml = create({ version: '1.0' }).ele('record_update')
|
|
14
|
-
const end = () => xml.end({ prettyPrint: true })
|
|
14
|
+
const end = () => xml.end({ prettyPrint: true }).replaceAll(' ', '&nbsp;')
|
|
15
15
|
|
|
16
16
|
// Root Builder
|
|
17
17
|
return {
|
|
@@ -55,7 +55,7 @@ export function recordXml(
|
|
|
55
55
|
this.field(columnName, value)
|
|
56
56
|
}
|
|
57
57
|
},
|
|
58
|
-
field(columnName: string, value: unknown, attributes: Record<string, string> = {}) {
|
|
58
|
+
field(columnName: string, value: unknown, attributes: Record<string, string> = {}, needsCDATA = false) {
|
|
59
59
|
if (!isValidXmlValue(value)) {
|
|
60
60
|
throw new Error(`Invalid XML value for "${columnName}" column: ${value}`)
|
|
61
61
|
}
|
|
@@ -67,12 +67,19 @@ export function recordXml(
|
|
|
67
67
|
columnName === 'operation_script' ||
|
|
68
68
|
tag === 'script' ||
|
|
69
69
|
tag === 'html' ||
|
|
70
|
-
tag === 'xml'
|
|
70
|
+
tag === 'xml' ||
|
|
71
|
+
needsCDATA
|
|
71
72
|
) {
|
|
72
73
|
value = tag === 'xml' ? sanitizeNestedCdataTags(value as string) : value
|
|
73
74
|
fieldXml = recordXml.ele(columnName, attributes).dat(value as string)
|
|
74
75
|
} else {
|
|
75
|
-
|
|
76
|
+
/*
|
|
77
|
+
  is not a predefined entity for XML, to overcome that the platform uses &nbsp; in XMLs.
|
|
78
|
+
When we transform XML that contains &nbsp; that translates to ` `.
|
|
79
|
+
But when fluent generates the XML from source it creates XML with which makes the XML invalid since `nbsp` is not defined.
|
|
80
|
+
So we are replacing with &nbsp; to ensure the XML is valid.
|
|
81
|
+
*/
|
|
82
|
+
fieldXml = recordXml.ele(columnName, attributes).txt(`${value}`.replaceAll(' ', '&nbsp;'))
|
|
76
83
|
}
|
|
77
84
|
|
|
78
85
|
// Field Builder
|
|
@@ -146,6 +146,10 @@ export abstract class Data<D = unknown> {
|
|
|
146
146
|
getNode(): SupportedNode {
|
|
147
147
|
return this.node
|
|
148
148
|
}
|
|
149
|
+
|
|
150
|
+
needsCDATATag(): boolean {
|
|
151
|
+
return false
|
|
152
|
+
}
|
|
149
153
|
}
|
|
150
154
|
|
|
151
155
|
export class UndefinedData extends Data<undefined> {
|
|
@@ -161,7 +165,10 @@ export class UndefinedData extends Data<undefined> {
|
|
|
161
165
|
export class StringData<const D extends string = string> extends Data<D> {
|
|
162
166
|
constructor(
|
|
163
167
|
private readonly value: D,
|
|
164
|
-
node: SupportedNode
|
|
168
|
+
node: SupportedNode,
|
|
169
|
+
private options: {
|
|
170
|
+
needsCDATA: boolean
|
|
171
|
+
} = { needsCDATA: false }
|
|
165
172
|
) {
|
|
166
173
|
super(node)
|
|
167
174
|
}
|
|
@@ -169,6 +176,10 @@ export class StringData<const D extends string = string> extends Data<D> {
|
|
|
169
176
|
getValue() {
|
|
170
177
|
return this.value
|
|
171
178
|
}
|
|
179
|
+
|
|
180
|
+
override needsCDATATag() {
|
|
181
|
+
return this.options.needsCDATA
|
|
182
|
+
}
|
|
172
183
|
}
|
|
173
184
|
|
|
174
185
|
export class NumberData<const D extends number = number> extends Data<D> {
|