@servicenow/sdk-build-core 3.0.3 → 4.0.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/app.d.ts +25 -0
- package/dist/app.js +8 -0
- package/dist/app.js.map +1 -0
- package/dist/compiler.d.ts +60 -0
- package/dist/compiler.js +320 -0
- package/dist/compiler.js.map +1 -0
- package/dist/compression.d.ts +7 -0
- package/dist/compression.js +79 -0
- package/dist/compression.js.map +1 -0
- package/dist/crypto.d.ts +1 -0
- package/dist/crypto.js +9 -0
- package/dist/crypto.js.map +1 -0
- package/dist/diagnostic.d.ts +41 -0
- package/dist/diagnostic.js +130 -0
- package/dist/diagnostic.js.map +1 -0
- package/dist/{plugins/Diagnostic.d.ts → fluent-diagnostic.d.ts} +3 -2
- package/dist/fluent-diagnostic.js +23 -0
- package/dist/fluent-diagnostic.js.map +1 -0
- package/dist/fluent-directive.d.ts +8 -0
- package/dist/fluent-directive.js +54 -0
- package/dist/fluent-directive.js.map +1 -0
- package/dist/fluent-file.d.ts +5 -0
- package/dist/fluent-file.js +15 -0
- package/dist/fluent-file.js.map +1 -0
- package/dist/formatter.d.ts +11 -0
- package/dist/formatter.js +77 -0
- package/dist/formatter.js.map +1 -0
- package/dist/fs.d.ts +174 -0
- package/dist/fs.js +313 -0
- package/dist/fs.js.map +1 -0
- package/dist/guid.d.ts +2 -0
- package/dist/{GUID.js → guid.js} +3 -6
- package/dist/guid.js.map +1 -0
- package/dist/index.d.ts +19 -5
- package/dist/index.js +19 -5
- package/dist/index.js.map +1 -1
- package/dist/json.d.ts +5 -0
- package/dist/json.js +43 -0
- package/dist/json.js.map +1 -0
- package/dist/keys-registry.d.ts +64 -0
- package/dist/keys-registry.js +339 -0
- package/dist/keys-registry.js.map +1 -0
- package/dist/logger.d.ts +8 -0
- package/dist/logger.js +17 -0
- package/dist/logger.js.map +1 -0
- package/dist/now-config.d.ts +348 -0
- package/dist/now-config.js +283 -0
- package/dist/now-config.js.map +1 -0
- package/dist/path.d.ts +3 -0
- package/dist/path.js +12 -0
- package/dist/path.js.map +1 -0
- package/dist/plugins/cache.d.ts +20 -0
- package/dist/plugins/cache.js +46 -0
- package/dist/plugins/cache.js.map +1 -0
- package/dist/plugins/context.d.ts +85 -0
- package/dist/plugins/{Context.js → context.js} +1 -1
- package/dist/plugins/context.js.map +1 -0
- package/dist/plugins/database.d.ts +27 -0
- package/dist/plugins/database.js +102 -0
- package/dist/plugins/database.js.map +1 -0
- package/dist/plugins/file.d.ts +10 -0
- package/dist/plugins/{behaviors/Arranger.js → file.js} +1 -1
- package/dist/plugins/file.js.map +1 -0
- package/dist/plugins/index.d.ts +9 -5
- package/dist/plugins/index.js +9 -6
- package/dist/plugins/index.js.map +1 -1
- package/dist/plugins/plugin.d.ts +478 -0
- package/dist/plugins/plugin.js +533 -0
- package/dist/plugins/plugin.js.map +1 -0
- package/dist/plugins/product.d.ts +15 -0
- package/dist/plugins/product.js +38 -0
- package/dist/plugins/product.js.map +1 -0
- package/dist/plugins/project.d.ts +25 -0
- package/dist/plugins/{behaviors/Generator.js → project.js} +1 -1
- package/dist/plugins/project.js.map +1 -0
- package/dist/plugins/shape.d.ts +424 -0
- package/dist/plugins/shape.js +1181 -0
- package/dist/plugins/shape.js.map +1 -0
- package/dist/plugins/time.d.ts +12 -0
- package/dist/plugins/time.js +84 -0
- package/dist/plugins/time.js.map +1 -0
- package/dist/plugins/usage.d.ts +11 -0
- package/dist/plugins/usage.js +26 -0
- package/dist/plugins/usage.js.map +1 -0
- package/dist/prettier/config-loader.d.ts +13 -0
- package/dist/prettier/config-loader.js +105 -0
- package/dist/prettier/config-loader.js.map +1 -0
- package/dist/telemetry/index.d.ts +25 -0
- package/dist/telemetry/index.js +18 -0
- package/dist/telemetry/index.js.map +1 -0
- package/dist/typescript.d.ts +293 -0
- package/dist/typescript.js +454 -0
- package/dist/typescript.js.map +1 -0
- package/dist/util/get-file-type.d.ts +2 -0
- package/dist/util/get-file-type.js +13 -0
- package/dist/util/get-file-type.js.map +1 -0
- package/dist/util/index.d.ts +2 -6
- package/dist/util/index.js +2 -6
- package/dist/util/index.js.map +1 -1
- package/dist/util/{Scope.js → is-sn-scope.js} +1 -1
- package/dist/util/is-sn-scope.js.map +1 -0
- package/dist/xml.d.ts +24 -0
- package/dist/xml.js +71 -0
- package/dist/xml.js.map +1 -0
- package/now.config.schema.json +336 -0
- package/package.json +22 -12
- package/src/app.ts +33 -0
- package/src/compiler.ts +384 -0
- package/src/compression.ts +93 -0
- package/src/crypto.ts +5 -0
- package/src/diagnostic.ts +108 -0
- package/src/{plugins/Diagnostic.ts → fluent-diagnostic.ts} +3 -10
- package/src/fluent-directive.ts +63 -0
- package/src/fluent-file.ts +13 -0
- package/src/formatter.ts +58 -0
- package/src/fs.ts +438 -0
- package/src/{GUID.ts → guid.ts} +2 -6
- package/src/index.ts +19 -5
- package/src/json.ts +20 -0
- package/src/keys-registry.ts +384 -0
- package/src/logger.ts +20 -0
- package/src/now-config.ts +337 -0
- package/src/path.ts +9 -0
- package/src/plugins/cache.ts +45 -0
- package/src/plugins/context.ts +93 -0
- package/src/plugins/database.ts +121 -0
- package/src/plugins/file.ts +19 -0
- package/src/plugins/index.ts +9 -5
- package/src/plugins/plugin.ts +995 -0
- package/src/plugins/product.ts +44 -0
- package/src/plugins/project.ts +39 -0
- package/src/plugins/shape.ts +1532 -0
- package/src/plugins/time.ts +108 -0
- package/src/plugins/usage.ts +26 -0
- package/src/prettier/config-loader.ts +130 -0
- package/src/telemetry/index.ts +27 -0
- package/src/typescript.ts +502 -0
- package/src/util/get-file-type.ts +11 -0
- package/src/util/index.ts +2 -6
- package/src/xml.ts +86 -0
- package/dist/GUID.d.ts +0 -2
- package/dist/GUID.js.map +0 -1
- package/dist/IncludePaths.d.ts +0 -25
- package/dist/IncludePaths.js +0 -97
- package/dist/IncludePaths.js.map +0 -1
- package/dist/Keys.d.ts +0 -32
- package/dist/Keys.js +0 -245
- package/dist/Keys.js.map +0 -1
- package/dist/TypeScript.d.ts +0 -5
- package/dist/TypeScript.js +0 -58
- package/dist/TypeScript.js.map +0 -1
- package/dist/XML.d.ts +0 -32
- package/dist/XML.js +0 -83
- package/dist/XML.js.map +0 -1
- package/dist/plugins/Context.d.ts +0 -190
- package/dist/plugins/Context.js.map +0 -1
- package/dist/plugins/Diagnostic.js +0 -28
- package/dist/plugins/Diagnostic.js.map +0 -1
- package/dist/plugins/Plugin.d.ts +0 -175
- package/dist/plugins/Plugin.js +0 -15
- package/dist/plugins/Plugin.js.map +0 -1
- package/dist/plugins/behaviors/Arranger.d.ts +0 -26
- package/dist/plugins/behaviors/Arranger.js.map +0 -1
- package/dist/plugins/behaviors/Composer.d.ts +0 -102
- package/dist/plugins/behaviors/Composer.js +0 -15
- package/dist/plugins/behaviors/Composer.js.map +0 -1
- package/dist/plugins/behaviors/Diagnostics.d.ts +0 -7
- package/dist/plugins/behaviors/Diagnostics.js +0 -3
- package/dist/plugins/behaviors/Diagnostics.js.map +0 -1
- package/dist/plugins/behaviors/Generator.d.ts +0 -21
- package/dist/plugins/behaviors/Generator.js.map +0 -1
- package/dist/plugins/behaviors/OwnedTables.d.ts +0 -6
- package/dist/plugins/behaviors/OwnedTables.js +0 -3
- package/dist/plugins/behaviors/OwnedTables.js.map +0 -1
- package/dist/plugins/behaviors/PostProcessor.d.ts +0 -5
- package/dist/plugins/behaviors/PostProcessor.js +0 -3
- package/dist/plugins/behaviors/PostProcessor.js.map +0 -1
- package/dist/plugins/behaviors/Serializer.d.ts +0 -30
- package/dist/plugins/behaviors/Serializer.js +0 -3
- package/dist/plugins/behaviors/Serializer.js.map +0 -1
- package/dist/plugins/behaviors/Transformer.d.ts +0 -23
- package/dist/plugins/behaviors/Transformer.js +0 -3
- package/dist/plugins/behaviors/Transformer.js.map +0 -1
- package/dist/plugins/behaviors/extractors/Data.d.ts +0 -119
- package/dist/plugins/behaviors/extractors/Data.js +0 -244
- package/dist/plugins/behaviors/extractors/Data.js.map +0 -1
- package/dist/plugins/behaviors/extractors/Extractors.d.ts +0 -63
- package/dist/plugins/behaviors/extractors/Extractors.js +0 -3
- package/dist/plugins/behaviors/extractors/Extractors.js.map +0 -1
- package/dist/plugins/behaviors/extractors/index.d.ts +0 -2
- package/dist/plugins/behaviors/extractors/index.js +0 -19
- package/dist/plugins/behaviors/extractors/index.js.map +0 -1
- package/dist/plugins/behaviors/index.d.ts +0 -9
- package/dist/plugins/behaviors/index.js +0 -26
- package/dist/plugins/behaviors/index.js.map +0 -1
- package/dist/plugins/util/CallExpression.d.ts +0 -5
- package/dist/plugins/util/CallExpression.js +0 -88
- package/dist/plugins/util/CallExpression.js.map +0 -1
- package/dist/plugins/util/CodeTransformation.d.ts +0 -95
- package/dist/plugins/util/CodeTransformation.js +0 -624
- package/dist/plugins/util/CodeTransformation.js.map +0 -1
- package/dist/plugins/util/ObjectLiteral.d.ts +0 -9
- package/dist/plugins/util/ObjectLiteral.js +0 -37
- package/dist/plugins/util/ObjectLiteral.js.map +0 -1
- package/dist/plugins/util/index.d.ts +0 -3
- package/dist/plugins/util/index.js +0 -20
- package/dist/plugins/util/index.js.map +0 -1
- package/dist/util/Debug.d.ts +0 -4
- package/dist/util/Debug.js +0 -20
- package/dist/util/Debug.js.map +0 -1
- package/dist/util/Directive.d.ts +0 -16
- package/dist/util/Directive.js +0 -107
- package/dist/util/Directive.js.map +0 -1
- package/dist/util/RuntimeTableSchema.d.ts +0 -5
- package/dist/util/RuntimeTableSchema.js +0 -58
- package/dist/util/RuntimeTableSchema.js.map +0 -1
- package/dist/util/Scope.js.map +0 -1
- package/dist/util/Util.d.ts +0 -1
- package/dist/util/Util.js +0 -12
- package/dist/util/Util.js.map +0 -1
- package/dist/util/XMLUploadParser.d.ts +0 -22
- package/dist/util/XMLUploadParser.js +0 -67
- package/dist/util/XMLUploadParser.js.map +0 -1
- package/src/IncludePaths.ts +0 -122
- package/src/Keys.ts +0 -274
- package/src/TypeScript.ts +0 -65
- package/src/XML.ts +0 -98
- package/src/plugins/Context.ts +0 -239
- package/src/plugins/Plugin.ts +0 -278
- package/src/plugins/behaviors/Arranger.ts +0 -42
- package/src/plugins/behaviors/Composer.ts +0 -125
- package/src/plugins/behaviors/Diagnostics.ts +0 -12
- package/src/plugins/behaviors/Generator.ts +0 -31
- package/src/plugins/behaviors/OwnedTables.ts +0 -5
- package/src/plugins/behaviors/PostProcessor.ts +0 -6
- package/src/plugins/behaviors/Serializer.ts +0 -40
- package/src/plugins/behaviors/Transformer.ts +0 -32
- package/src/plugins/behaviors/extractors/Data.ts +0 -332
- package/src/plugins/behaviors/extractors/Extractors.ts +0 -73
- package/src/plugins/behaviors/extractors/index.ts +0 -2
- package/src/plugins/behaviors/index.ts +0 -9
- package/src/plugins/util/CallExpression.ts +0 -110
- package/src/plugins/util/CodeTransformation.ts +0 -731
- package/src/plugins/util/ObjectLiteral.ts +0 -37
- package/src/plugins/util/index.ts +0 -3
- package/src/util/Debug.ts +0 -24
- package/src/util/Directive.ts +0 -123
- package/src/util/RuntimeTableSchema.ts +0 -44
- package/src/util/Util.ts +0 -7
- package/src/util/XMLUploadParser.ts +0 -90
- /package/dist/util/{Scope.d.ts → is-sn-scope.d.ts} +0 -0
- /package/src/util/{Scope.ts → is-sn-scope.ts} +0 -0
package/dist/IncludePaths.js
DELETED
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.calculateCustomPathsFromDocs = exports.getIncludePaths = exports.DefaultIncludePaths = void 0;
|
|
4
|
-
exports.replaceTemplate = replaceTemplate;
|
|
5
|
-
const sdk_project_1 = require("@servicenow/sdk-project");
|
|
6
|
-
exports.DefaultIncludePaths = {
|
|
7
|
-
// Example of how to define include paths:
|
|
8
|
-
// sys_script_include: {
|
|
9
|
-
// fields: [{ script: '{{name}}.server.js' }],
|
|
10
|
-
// },
|
|
11
|
-
};
|
|
12
|
-
const getIncludePaths = (context) => {
|
|
13
|
-
const mappingFileName = sdk_project_1.path.join(context.app.rootDir, 'now.includes-mapping.json');
|
|
14
|
-
const compilerSourceFile = context.compiler.getSourceFile(mappingFileName);
|
|
15
|
-
let fileText = '';
|
|
16
|
-
if (compilerSourceFile) {
|
|
17
|
-
fileText = compilerSourceFile.getFullText();
|
|
18
|
-
}
|
|
19
|
-
else {
|
|
20
|
-
// now-sdk fetch doesn't load the file into the compiler, so
|
|
21
|
-
// for now we'll just read the file from the filesystem
|
|
22
|
-
fileText = sdk_project_1.FileSystem.existsSync(context.fs, mappingFileName)
|
|
23
|
-
? context.fs.readFileSync(mappingFileName).toString()
|
|
24
|
-
: '';
|
|
25
|
-
}
|
|
26
|
-
return fileText ? JSON.parse(fileText) : exports.DefaultIncludePaths;
|
|
27
|
-
};
|
|
28
|
-
exports.getIncludePaths = getIncludePaths;
|
|
29
|
-
const calculateCustomPathsFromDocs = (context) => {
|
|
30
|
-
const includePaths = (0, exports.getIncludePaths)(context);
|
|
31
|
-
const customizedIncludePaths = context
|
|
32
|
-
.getAllDocuments()
|
|
33
|
-
.filter((doc) => doc.kind === 'record')
|
|
34
|
-
.map((doc) => ({ table: doc.data?.['table'], guid: doc.guid, data: doc.data?.['data'] }))
|
|
35
|
-
.filter((record) => includePaths[record.table])
|
|
36
|
-
.map((record) => ({
|
|
37
|
-
table: record.table,
|
|
38
|
-
guid: record.guid,
|
|
39
|
-
fields: (includePaths[record.table]?.fields || []).flatMap(Object.entries).map(([field, path]) => ({
|
|
40
|
-
field,
|
|
41
|
-
path: replaceTemplate(path, { sys_id: record.guid, ...record.data }),
|
|
42
|
-
})) || [],
|
|
43
|
-
}))
|
|
44
|
-
.reduce((acc, record) => {
|
|
45
|
-
acc[record.table] = acc[record.table] || [];
|
|
46
|
-
acc[record.table].push(record);
|
|
47
|
-
return acc;
|
|
48
|
-
}, {});
|
|
49
|
-
return dedupeFilenames(customizedIncludePaths);
|
|
50
|
-
};
|
|
51
|
-
exports.calculateCustomPathsFromDocs = calculateCustomPathsFromDocs;
|
|
52
|
-
function replaceTemplate(template, properties) {
|
|
53
|
-
let replacedString = template;
|
|
54
|
-
const matches = template.matchAll(/{{([a-z_]+)}}/g);
|
|
55
|
-
for (const m of matches) {
|
|
56
|
-
const [, field] = m;
|
|
57
|
-
if (field) {
|
|
58
|
-
const sanitizedValue = sanitizeForFilesystem(properties[field]);
|
|
59
|
-
replacedString = replacedString.replaceAll(`{{${field}}}`, sanitizedValue);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
return replacedString;
|
|
63
|
-
}
|
|
64
|
-
const IllegalCharacters = /[/<>?\\:|*"]/g;
|
|
65
|
-
const Reserved = /^\.+$/;
|
|
66
|
-
const WindowsTrailing = /[. ]+$/;
|
|
67
|
-
function sanitizeForFilesystem(filename) {
|
|
68
|
-
return filename.replace(IllegalCharacters, '_').replace(Reserved, '').replace(WindowsTrailing, '');
|
|
69
|
-
}
|
|
70
|
-
function dedupeFilename(filePath, fixedCount) {
|
|
71
|
-
const parsedPath = sdk_project_1.path.parse(filePath);
|
|
72
|
-
fixedCount[filePath] = (fixedCount[filePath] || 0) + 1;
|
|
73
|
-
const pathParts = parsedPath.base.split('.');
|
|
74
|
-
pathParts[0] = `${pathParts[0]}-${fixedCount[filePath]}`;
|
|
75
|
-
return sdk_project_1.path.join(parsedPath.dir, pathParts.join('.'));
|
|
76
|
-
}
|
|
77
|
-
function dedupeFilenames(customizedFieldPaths) {
|
|
78
|
-
const pathCount = {};
|
|
79
|
-
for (const table in customizedFieldPaths) {
|
|
80
|
-
const paths = customizedFieldPaths[table].flatMap((record) => record.fields.map((f) => f.path));
|
|
81
|
-
paths.forEach((p) => (pathCount[p] = (pathCount[p] || 0) + 1));
|
|
82
|
-
}
|
|
83
|
-
const fixedCount = {};
|
|
84
|
-
for (const table in customizedFieldPaths) {
|
|
85
|
-
const pathForTable = customizedFieldPaths[table] || [];
|
|
86
|
-
for (const includePathForTable of pathForTable) {
|
|
87
|
-
for (let i = 0; i < includePathForTable.fields.length; i++) {
|
|
88
|
-
const p = includePathForTable.fields[i]?.path;
|
|
89
|
-
if (p && pathCount[p] > 1) {
|
|
90
|
-
includePathForTable.fields[i].path = dedupeFilename(p, fixedCount);
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
return customizedFieldPaths;
|
|
96
|
-
}
|
|
97
|
-
//# sourceMappingURL=IncludePaths.js.map
|
package/dist/IncludePaths.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"IncludePaths.js","sourceRoot":"","sources":["../src/IncludePaths.ts"],"names":[],"mappings":"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"}
|
package/dist/Keys.d.ts
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { ts } from '@servicenow/sdk-project';
|
|
2
|
-
import { Context } from './plugins';
|
|
3
|
-
export declare const KEYS_MODULE = "@servicenow/sdk/global";
|
|
4
|
-
export declare const KEYS_FILE_NAME = "keys.ts";
|
|
5
|
-
export declare class Keys implements Now.Internal.KeysRegistry {
|
|
6
|
-
private readonly file;
|
|
7
|
-
private readonly keys;
|
|
8
|
-
private readonly usedIds;
|
|
9
|
-
constructor(context: Context);
|
|
10
|
-
private static parseKeysFile;
|
|
11
|
-
private static getKeysFile;
|
|
12
|
-
static getKeysFilePath(context: Context): string;
|
|
13
|
-
private static getOrCreateKeysInterface;
|
|
14
|
-
private use;
|
|
15
|
-
get explicit(): Record<string | number, Now.Internal.ExplicitKey<string>>;
|
|
16
|
-
get composite(): Now.Internal.CompositeKey[];
|
|
17
|
-
get deleted(): Record<string, string[]>;
|
|
18
|
-
getSourceFile(): ts.SourceFile;
|
|
19
|
-
getNextAvailableExplicitKey(): string;
|
|
20
|
-
explicitKeyExists(key: string | number): boolean;
|
|
21
|
-
getIdUsingExplicitKey(key: string | number): string | undefined;
|
|
22
|
-
findExplicitKeyById(id: string): string | undefined;
|
|
23
|
-
registerExplicitId(table: string, key: string | number, sysIdOverride?: string): string;
|
|
24
|
-
registerCompositeId(table: string, key: Record<string, string | number>, sysIdOverride?: string): string;
|
|
25
|
-
getUsedExplicitIds(): {
|
|
26
|
-
[k: string]: Now.Internal.ExplicitKey<string>;
|
|
27
|
-
};
|
|
28
|
-
getUsedCompositeIds(): Now.Internal.CompositeKey[];
|
|
29
|
-
getDeletedAndUnusedIds(): Record<string, string[]>;
|
|
30
|
-
format(formatter?: (file: ts.SourceFile) => Promise<any>): Promise<void>;
|
|
31
|
-
updateSourceFile(): void;
|
|
32
|
-
}
|
package/dist/Keys.js
DELETED
|
@@ -1,245 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.Keys = exports.KEYS_FILE_NAME = exports.KEYS_MODULE = void 0;
|
|
27
|
-
const sdk_project_1 = require("@servicenow/sdk-project");
|
|
28
|
-
const TypeScript_1 = require("./TypeScript");
|
|
29
|
-
const GUID_1 = require("./GUID");
|
|
30
|
-
const z = __importStar(require("zod"));
|
|
31
|
-
const _ = __importStar(require("lodash"));
|
|
32
|
-
exports.KEYS_MODULE = '@servicenow/sdk/global';
|
|
33
|
-
exports.KEYS_FILE_NAME = 'keys.ts';
|
|
34
|
-
const KeysSchema = z.object({
|
|
35
|
-
explicit: z
|
|
36
|
-
.record(z.string().or(z.number()), z.object({
|
|
37
|
-
table: z.string(),
|
|
38
|
-
id: z.string(),
|
|
39
|
-
}))
|
|
40
|
-
.default({}),
|
|
41
|
-
composite: z
|
|
42
|
-
.array(z.object({
|
|
43
|
-
table: z.string(),
|
|
44
|
-
id: z.string(),
|
|
45
|
-
key: z.record(z.string(), z.string().or(z.number())),
|
|
46
|
-
}))
|
|
47
|
-
.default([]),
|
|
48
|
-
deleted: z.record(z.array(z.string())).default({}),
|
|
49
|
-
});
|
|
50
|
-
class Keys {
|
|
51
|
-
file;
|
|
52
|
-
keys;
|
|
53
|
-
usedIds = new Set();
|
|
54
|
-
constructor(context) {
|
|
55
|
-
this.file = Keys.getKeysFile(context);
|
|
56
|
-
this.keys = Keys.parseKeysFile(this.file);
|
|
57
|
-
}
|
|
58
|
-
static parseKeysFile(keysFile) {
|
|
59
|
-
const keysInterface = Keys.getOrCreateKeysInterface(keysFile);
|
|
60
|
-
return KeysSchema.parse((0, TypeScript_1.parseType)(keysInterface.getType(), keysInterface, (unparsableType) => {
|
|
61
|
-
if (unparsableType.isArray()) {
|
|
62
|
-
return []; // If the keys file doesn't have composite keys, it will be an unparsable array so just return an empty one
|
|
63
|
-
}
|
|
64
|
-
else {
|
|
65
|
-
throw `Unparsable type in keys.ts: ${unparsableType.getText()}`;
|
|
66
|
-
}
|
|
67
|
-
}));
|
|
68
|
-
}
|
|
69
|
-
static getKeysFile(context) {
|
|
70
|
-
const keysFilePath = Keys.getKeysFilePath(context);
|
|
71
|
-
const keysFile = context.compiler.addSourceFileAtPathIfExists(keysFilePath) ??
|
|
72
|
-
context.compiler.createSourceFile(keysFilePath, '', {
|
|
73
|
-
overwrite: true,
|
|
74
|
-
scriptKind: sdk_project_1.ts.ScriptKind.TS,
|
|
75
|
-
});
|
|
76
|
-
// Add global import if not already present
|
|
77
|
-
if (!keysFile.getImportDeclaration((i) => i.getModuleSpecifierValue() === exports.KEYS_MODULE)) {
|
|
78
|
-
keysFile.addImportDeclaration({ moduleSpecifier: exports.KEYS_MODULE });
|
|
79
|
-
}
|
|
80
|
-
return keysFile;
|
|
81
|
-
}
|
|
82
|
-
static getKeysFilePath(context) {
|
|
83
|
-
return sdk_project_1.path.resolve(context.app.rootDir, context.app.config.generatedDir, exports.KEYS_FILE_NAME);
|
|
84
|
-
}
|
|
85
|
-
static getOrCreateKeysInterface(keysFile) {
|
|
86
|
-
const declareGlobal = keysFile.getModule('global') ??
|
|
87
|
-
keysFile.addModule({
|
|
88
|
-
name: 'global',
|
|
89
|
-
declarationKind: sdk_project_1.ts.ModuleDeclarationKind.Global,
|
|
90
|
-
hasDeclareKeyword: true,
|
|
91
|
-
});
|
|
92
|
-
const nowNamespace = declareGlobal.getModule('Now') ??
|
|
93
|
-
declareGlobal.addModule({
|
|
94
|
-
name: 'Now',
|
|
95
|
-
declarationKind: sdk_project_1.ts.ModuleDeclarationKind.Namespace,
|
|
96
|
-
});
|
|
97
|
-
const internalNamespace = nowNamespace.getModule('Internal') ??
|
|
98
|
-
nowNamespace.addModule({
|
|
99
|
-
name: 'Internal',
|
|
100
|
-
});
|
|
101
|
-
return (internalNamespace.getInterface('Keys') ??
|
|
102
|
-
internalNamespace.addInterface({
|
|
103
|
-
name: 'Keys',
|
|
104
|
-
extends: (writer) => {
|
|
105
|
-
writer.write('KeysRegistry');
|
|
106
|
-
},
|
|
107
|
-
}));
|
|
108
|
-
}
|
|
109
|
-
use(id) {
|
|
110
|
-
this.usedIds.add(id);
|
|
111
|
-
return id;
|
|
112
|
-
}
|
|
113
|
-
get explicit() {
|
|
114
|
-
return this.keys.explicit;
|
|
115
|
-
}
|
|
116
|
-
get composite() {
|
|
117
|
-
return this.keys.composite;
|
|
118
|
-
}
|
|
119
|
-
get deleted() {
|
|
120
|
-
return this.keys.deleted;
|
|
121
|
-
}
|
|
122
|
-
getSourceFile() {
|
|
123
|
-
return this.file;
|
|
124
|
-
}
|
|
125
|
-
getNextAvailableExplicitKey() {
|
|
126
|
-
for (let i = 0;; i++) {
|
|
127
|
-
const key = `generated${i}`;
|
|
128
|
-
if (!this.explicit[key]) {
|
|
129
|
-
return key;
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
explicitKeyExists(key) {
|
|
134
|
-
return !!this.explicit[key];
|
|
135
|
-
}
|
|
136
|
-
getIdUsingExplicitKey(key) {
|
|
137
|
-
return this.explicit[key]?.id;
|
|
138
|
-
}
|
|
139
|
-
findExplicitKeyById(id) {
|
|
140
|
-
return Object.entries(this.explicit).find(([, v]) => v.id === id)?.[0];
|
|
141
|
-
}
|
|
142
|
-
registerExplicitId(table, key, sysIdOverride) {
|
|
143
|
-
if ((0, GUID_1.isGUID)(key)) {
|
|
144
|
-
// WARNING:
|
|
145
|
-
//
|
|
146
|
-
// IT IS CRITICAL THAT KEYS ARE NOT REGISTERED FOR THINGS OUTSIDE OF THE APP. IF KEYS ARE
|
|
147
|
-
// REGISTERED FOR THINGS THAT COME FROM THE CORE PLATFORM OR SOME OTHER APP, THERE IS RISK
|
|
148
|
-
// THAT THEY WILL BE DELETED ACCIDENTALLY BY THE CUSTOMER.
|
|
149
|
-
//
|
|
150
|
-
// THIS CHECK IS HERE AS AN EXTRA DEFENSIVE MEASURE TO MAKE SURE EXTERNAL SYS IDS ARE NOT
|
|
151
|
-
// ACCIDENTALLY REGISTERED AS LOCAL KEYS.
|
|
152
|
-
//
|
|
153
|
-
// TODO: We need to come up with a different system for key registration where external
|
|
154
|
-
// keys can be resolved to sys IDs without registering them as local keys.
|
|
155
|
-
return this.use(this.explicit[key]?.id ?? key);
|
|
156
|
-
}
|
|
157
|
-
const existing = this.explicit[key];
|
|
158
|
-
if (existing) {
|
|
159
|
-
return this.use(existing.id);
|
|
160
|
-
}
|
|
161
|
-
if (sysIdOverride) {
|
|
162
|
-
const existingKey = this.findExplicitKeyById(sysIdOverride);
|
|
163
|
-
if (existingKey) {
|
|
164
|
-
const existingWithSysId = this.explicit[existingKey];
|
|
165
|
-
if (existingKey !== key) {
|
|
166
|
-
throw `ID '${sysIdOverride}' is already registered for key '${existingKey}', cannot register for key '${key}'`;
|
|
167
|
-
}
|
|
168
|
-
return this.use(existingWithSysId.id);
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
const newKey = {
|
|
172
|
-
table,
|
|
173
|
-
id: (0, GUID_1.isGUID)(key) ? key : sysIdOverride ?? (0, GUID_1.GUID)(),
|
|
174
|
-
};
|
|
175
|
-
this.explicit[key] = newKey;
|
|
176
|
-
return this.use(newKey.id);
|
|
177
|
-
}
|
|
178
|
-
registerCompositeId(table, key, sysIdOverride) {
|
|
179
|
-
const existing = this.composite.find((k) => k.table === table && _.isEqual(k.key, key));
|
|
180
|
-
if (existing) {
|
|
181
|
-
if (existing.table !== table) {
|
|
182
|
-
throw `Composite key ${key} is already registered for table '${existing.table}', cannot register for table '${table}'`;
|
|
183
|
-
}
|
|
184
|
-
return this.use(existing.id);
|
|
185
|
-
}
|
|
186
|
-
const newKey = {
|
|
187
|
-
table,
|
|
188
|
-
id: sysIdOverride ?? (0, GUID_1.GUID)(),
|
|
189
|
-
key,
|
|
190
|
-
};
|
|
191
|
-
this.composite.push(newKey);
|
|
192
|
-
return this.use(newKey.id);
|
|
193
|
-
}
|
|
194
|
-
getUsedExplicitIds() {
|
|
195
|
-
return Object.fromEntries(Object.entries(this.explicit).filter(([, v]) => this.usedIds.has(v.id)));
|
|
196
|
-
}
|
|
197
|
-
getUsedCompositeIds() {
|
|
198
|
-
return this.composite.filter((v) => this.usedIds.has(v.id));
|
|
199
|
-
}
|
|
200
|
-
// TODO: This is called in multiple places and is not very cheap. We should consider optimization options.
|
|
201
|
-
getDeletedAndUnusedIds() {
|
|
202
|
-
return [
|
|
203
|
-
...Object.values(this.explicit),
|
|
204
|
-
...this.composite,
|
|
205
|
-
...Object.entries(this.deleted).flatMap(([k, v]) => v.map((id) => ({ table: k, id }))),
|
|
206
|
-
]
|
|
207
|
-
.filter((v) => !this.usedIds.has(v.id))
|
|
208
|
-
.reduce((deletedIds, v) => {
|
|
209
|
-
deletedIds[v.table] = [...(deletedIds[v.table] ?? []), v.id];
|
|
210
|
-
return deletedIds;
|
|
211
|
-
}, {});
|
|
212
|
-
}
|
|
213
|
-
async format(formatter) {
|
|
214
|
-
await formatter?.(this.file);
|
|
215
|
-
}
|
|
216
|
-
updateSourceFile() {
|
|
217
|
-
const newProperties = [];
|
|
218
|
-
const usedExplicitIds = this.getUsedExplicitIds();
|
|
219
|
-
const usedCompositeIds = this.getUsedCompositeIds();
|
|
220
|
-
const deletedOrUnusedIds = this.getDeletedAndUnusedIds();
|
|
221
|
-
if (Object.keys(usedExplicitIds).length > 0) {
|
|
222
|
-
newProperties.push({
|
|
223
|
-
name: 'explicit',
|
|
224
|
-
type: JSON.stringify(usedExplicitIds, undefined, 4),
|
|
225
|
-
});
|
|
226
|
-
}
|
|
227
|
-
if (usedCompositeIds.length > 0) {
|
|
228
|
-
newProperties.push({
|
|
229
|
-
name: 'composite',
|
|
230
|
-
type: JSON.stringify(usedCompositeIds, undefined, 4),
|
|
231
|
-
});
|
|
232
|
-
}
|
|
233
|
-
if (Object.keys(deletedOrUnusedIds).length > 0) {
|
|
234
|
-
newProperties.push({
|
|
235
|
-
name: 'deleted',
|
|
236
|
-
type: JSON.stringify(deletedOrUnusedIds, undefined, 4),
|
|
237
|
-
});
|
|
238
|
-
}
|
|
239
|
-
const keysInterface = Keys.getOrCreateKeysInterface(this.file);
|
|
240
|
-
keysInterface.getProperties().forEach((p) => p.remove());
|
|
241
|
-
keysInterface.addProperties(newProperties);
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
exports.Keys = Keys;
|
|
245
|
-
//# sourceMappingURL=Keys.js.map
|
package/dist/Keys.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Keys.js","sourceRoot":"","sources":["../src/Keys.ts"],"names":[],"mappings":"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"}
|
package/dist/TypeScript.d.ts
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { ts } from '@servicenow/sdk-project';
|
|
2
|
-
export declare function getValueDeclaration(node: ts.Node): ts.Node<ts.ts.Node>;
|
|
3
|
-
export declare function parseType(type: ts.Type, location: ts.Node, unparsableTypeHandler?: (unparsableType: ts.Type) => unknown): unknown;
|
|
4
|
-
export declare function traverseNode(node: ts.Node, visitor: (node: ts.Node) => void): void;
|
|
5
|
-
export declare function createPropertyIdentifier(name: string): ts.ts.Identifier | ts.ts.StringLiteral;
|
package/dist/TypeScript.js
DELETED
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getValueDeclaration = getValueDeclaration;
|
|
4
|
-
exports.parseType = parseType;
|
|
5
|
-
exports.traverseNode = traverseNode;
|
|
6
|
-
exports.createPropertyIdentifier = createPropertyIdentifier;
|
|
7
|
-
const sdk_project_1 = require("@servicenow/sdk-project");
|
|
8
|
-
function getValueDeclaration(node) {
|
|
9
|
-
const symbol = node.getSymbolOrThrow(`Expected identifier to have symbol: ${node.getText()}`);
|
|
10
|
-
const valueDeclaration = getValueDeclarationFromSymbolOrAlias(symbol);
|
|
11
|
-
if (!sdk_project_1.ts.Node.isShorthandPropertyAssignment(valueDeclaration)) {
|
|
12
|
-
return valueDeclaration;
|
|
13
|
-
}
|
|
14
|
-
const valueSymbol = valueDeclaration.getValueSymbol();
|
|
15
|
-
if (!valueSymbol) {
|
|
16
|
-
throw `Expected value declaration for shorthand property assignment to have value symbol: ${valueDeclaration.getText()}`;
|
|
17
|
-
}
|
|
18
|
-
return getValueDeclarationFromSymbolOrAlias(valueSymbol);
|
|
19
|
-
}
|
|
20
|
-
function getValueDeclarationFromSymbolOrAlias(symbol) {
|
|
21
|
-
const valueDeclaration = symbol.getValueDeclaration() ?? symbol.getAliasedSymbol()?.getValueDeclaration();
|
|
22
|
-
if (!valueDeclaration) {
|
|
23
|
-
throw Error(`No value declaration found for symbol: ${symbol.getName()}`);
|
|
24
|
-
}
|
|
25
|
-
return valueDeclaration;
|
|
26
|
-
}
|
|
27
|
-
function parseType(type, location, unparsableTypeHandler = (unparsableType) => {
|
|
28
|
-
throw `Unparsable type: ${unparsableType.getText()}`;
|
|
29
|
-
}) {
|
|
30
|
-
if (type.isLiteral()) {
|
|
31
|
-
return type.getLiteralValueOrThrow();
|
|
32
|
-
}
|
|
33
|
-
else if (type.isTuple()) {
|
|
34
|
-
return type.getTupleElements().map((e) => parseType(e, location, unparsableTypeHandler));
|
|
35
|
-
}
|
|
36
|
-
else if (type.isObject() && !type.isArray()) {
|
|
37
|
-
return type.getProperties().reduce((result, property) => ({
|
|
38
|
-
...result,
|
|
39
|
-
[property.getName()]: parseType(property.getTypeAtLocation(location), location, unparsableTypeHandler),
|
|
40
|
-
}), {});
|
|
41
|
-
}
|
|
42
|
-
else {
|
|
43
|
-
return unparsableTypeHandler(type);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
function traverseNode(node, visitor) {
|
|
47
|
-
node.forEachChild((child) => {
|
|
48
|
-
traverseNode(child, visitor);
|
|
49
|
-
});
|
|
50
|
-
visitor(node);
|
|
51
|
-
}
|
|
52
|
-
function createPropertyIdentifier(name) {
|
|
53
|
-
//Test that this is going to be a valid javascript property name (aaa, _aaa, 1, aaa1). If so use as identifier (aaa: ...) or as a string literal property ('1aaa': ...)
|
|
54
|
-
return /^((?!\d)[\w$]+|\d+)$/i.test(name)
|
|
55
|
-
? sdk_project_1.tsc.factory.createIdentifier(name)
|
|
56
|
-
: sdk_project_1.tsc.factory.createStringLiteral(name);
|
|
57
|
-
}
|
|
58
|
-
//# sourceMappingURL=TypeScript.js.map
|
package/dist/TypeScript.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TypeScript.js","sourceRoot":"","sources":["../src/TypeScript.ts"],"names":[],"mappings":";;AAEA,kDAcC;AAWD,8BAsBC;AAED,oCAMC;AAED,4DAKC;AAhED,yDAAiD;AAEjD,SAAgB,mBAAmB,CAAC,IAAa;IAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,uCAAuC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;IAC7F,MAAM,gBAAgB,GAAG,oCAAoC,CAAC,MAAM,CAAC,CAAA;IAErE,IAAI,CAAC,gBAAE,CAAC,IAAI,CAAC,6BAA6B,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC3D,OAAO,gBAAgB,CAAA;IAC3B,CAAC;IAED,MAAM,WAAW,GAAG,gBAAgB,CAAC,cAAc,EAAE,CAAA;IACrD,IAAI,CAAC,WAAW,EAAE,CAAC;QACf,MAAM,sFAAsF,gBAAgB,CAAC,OAAO,EAAE,EAAE,CAAA;IAC5H,CAAC;IAED,OAAO,oCAAoC,CAAC,WAAW,CAAC,CAAA;AAC5D,CAAC;AAED,SAAS,oCAAoC,CAAC,MAAiB;IAC3D,MAAM,gBAAgB,GAAG,MAAM,CAAC,mBAAmB,EAAE,IAAI,MAAM,CAAC,gBAAgB,EAAE,EAAE,mBAAmB,EAAE,CAAA;IACzG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACpB,MAAM,KAAK,CAAC,0CAA0C,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;IAC7E,CAAC;IAED,OAAO,gBAAgB,CAAA;AAC3B,CAAC;AAED,SAAgB,SAAS,CACrB,IAAa,EACb,QAAiB,EACjB,wBAA8D,CAAC,cAAc,EAAE,EAAE;IAC7E,MAAM,oBAAoB,cAAc,CAAC,OAAO,EAAE,EAAE,CAAA;AACxD,CAAC;IAED,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC,sBAAsB,EAAE,CAAA;IACxC,CAAC;SAAM,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,EAAE,qBAAqB,CAAC,CAAC,CAAA;IAC5F,CAAC;SAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;QAC5C,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC,MAAM,CAC9B,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;YACnB,GAAG,MAAM;YACT,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,qBAAqB,CAAC;SACzG,CAAC,EACF,EAAE,CACL,CAAA;IACL,CAAC;SAAM,CAAC;QACJ,OAAO,qBAAqB,CAAC,IAAI,CAAC,CAAA;IACtC,CAAC;AACL,CAAC;AAED,SAAgB,YAAY,CAAC,IAAa,EAAE,OAAgC;IACxE,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,EAAE,EAAE;QACxB,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IAChC,CAAC,CAAC,CAAA;IAEF,OAAO,CAAC,IAAI,CAAC,CAAA;AACjB,CAAC;AAED,SAAgB,wBAAwB,CAAC,IAAY;IACjD,wKAAwK;IACxK,OAAO,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC;QACrC,CAAC,CAAC,iBAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC;QACpC,CAAC,CAAC,iBAAG,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAA;AAC/C,CAAC"}
|
package/dist/XML.d.ts
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { Action, type Context } from './plugins';
|
|
2
|
-
import type { XMLBuilder } from 'xmlbuilder2/lib/interfaces';
|
|
3
|
-
export type XmlValue = string | number | boolean;
|
|
4
|
-
export declare function isValidXmlValue(value: unknown): value is XmlValue;
|
|
5
|
-
export declare function unloadBuilder(context: Context): {
|
|
6
|
-
xml: XMLBuilder;
|
|
7
|
-
end: () => string;
|
|
8
|
-
record: (tableName: string, id: string | number, action?: Action) => {
|
|
9
|
-
fields(fields: Record<string, XmlValue>): void;
|
|
10
|
-
field(columnName: string, value: unknown, attributes?: Record<string, string>, needsCDATA?: boolean): {
|
|
11
|
-
choices(_choices: unknown): void;
|
|
12
|
-
};
|
|
13
|
-
addSysScope(context: Context): XMLBuilder;
|
|
14
|
-
};
|
|
15
|
-
};
|
|
16
|
-
/**
|
|
17
|
-
* If the code contains the character sequence ']]>' it will be parsed as the end of
|
|
18
|
-
* the CDATA section. To avoid this, we need to split the sequence by dividing the
|
|
19
|
-
* content into two CDATA sections at that point.
|
|
20
|
-
*/
|
|
21
|
-
export declare function sanitizeNestedCdataTags(content: string): string;
|
|
22
|
-
export declare function recordXml(xml: XMLBuilder, tableName: string, id: string | number, options?: {
|
|
23
|
-
attr?: Record<string, string>;
|
|
24
|
-
excludeScopeElement?: boolean;
|
|
25
|
-
context?: Context;
|
|
26
|
-
}): {
|
|
27
|
-
fields(fields: Record<string, XmlValue>): void;
|
|
28
|
-
field(columnName: string, value: unknown, attributes?: Record<string, string>, needsCDATA?: boolean): {
|
|
29
|
-
choices(_choices: unknown): void;
|
|
30
|
-
};
|
|
31
|
-
addSysScope(context: Context): XMLBuilder;
|
|
32
|
-
};
|
package/dist/XML.js
DELETED
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isValidXmlValue = isValidXmlValue;
|
|
4
|
-
exports.unloadBuilder = unloadBuilder;
|
|
5
|
-
exports.sanitizeNestedCdataTags = sanitizeNestedCdataTags;
|
|
6
|
-
exports.recordXml = recordXml;
|
|
7
|
-
const xmlbuilder2_1 = require("xmlbuilder2");
|
|
8
|
-
const RuntimeTableSchema_1 = require("./util/RuntimeTableSchema");
|
|
9
|
-
function isValidXmlValue(value) {
|
|
10
|
-
return typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean';
|
|
11
|
-
}
|
|
12
|
-
function unloadBuilder(context) {
|
|
13
|
-
const xml = (0, xmlbuilder2_1.create)({ version: '1.0' }).ele('record_update');
|
|
14
|
-
const end = () => xml.end({ prettyPrint: true }).replaceAll(' ', '&nbsp;');
|
|
15
|
-
// Root Builder
|
|
16
|
-
return {
|
|
17
|
-
xml,
|
|
18
|
-
end,
|
|
19
|
-
record: (tableName, id, action = 'INSERT_OR_UPDATE') => {
|
|
20
|
-
const rec = recordXml(xml, tableName, id, { attr: { action }, context });
|
|
21
|
-
rec.addSysScope(context);
|
|
22
|
-
return rec;
|
|
23
|
-
},
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* If the code contains the character sequence ']]>' it will be parsed as the end of
|
|
28
|
-
* the CDATA section. To avoid this, we need to split the sequence by dividing the
|
|
29
|
-
* content into two CDATA sections at that point.
|
|
30
|
-
*/
|
|
31
|
-
function sanitizeNestedCdataTags(content) {
|
|
32
|
-
return content.replace(/]]>/g, ']]]]><![CDATA[>');
|
|
33
|
-
}
|
|
34
|
-
function recordXml(xml, tableName, id, options = {}) {
|
|
35
|
-
const recordXml = xml.ele(tableName, options.attr || { action: 'INSERT_OR_UPDATE' });
|
|
36
|
-
recordXml.ele('sys_id', undefined).txt(`${id}`);
|
|
37
|
-
const fieldToTagMap = (0, RuntimeTableSchema_1.maybeGetFieldToTagMap)(tableName, options.context?.getAllDocuments() || []);
|
|
38
|
-
// Record Builder
|
|
39
|
-
return {
|
|
40
|
-
fields(fields) {
|
|
41
|
-
for (const [columnName, value] of Object.entries(fields)) {
|
|
42
|
-
this.field(columnName, value);
|
|
43
|
-
}
|
|
44
|
-
},
|
|
45
|
-
field(columnName, value, attributes = {}, needsCDATA = false) {
|
|
46
|
-
if (!isValidXmlValue(value)) {
|
|
47
|
-
throw new Error(`Invalid XML value for "${columnName}" column: ${value}`);
|
|
48
|
-
}
|
|
49
|
-
let fieldXml;
|
|
50
|
-
const tag = fieldToTagMap[columnName];
|
|
51
|
-
if (columnName === 'script' ||
|
|
52
|
-
columnName === 'operation_script' ||
|
|
53
|
-
tag === 'script' ||
|
|
54
|
-
tag === 'html' ||
|
|
55
|
-
tag === 'xml' ||
|
|
56
|
-
needsCDATA) {
|
|
57
|
-
value = tag === 'xml' ? sanitizeNestedCdataTags(value) : value;
|
|
58
|
-
fieldXml = recordXml.ele(columnName, attributes).dat(value);
|
|
59
|
-
}
|
|
60
|
-
else {
|
|
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;'));
|
|
68
|
-
}
|
|
69
|
-
// Field Builder
|
|
70
|
-
return {
|
|
71
|
-
choices(_choices) {
|
|
72
|
-
fieldXml; // TODO: Implement
|
|
73
|
-
},
|
|
74
|
-
};
|
|
75
|
-
},
|
|
76
|
-
addSysScope(context) {
|
|
77
|
-
return recordXml
|
|
78
|
-
.ele('sys_scope', { display_value: context.app.config.scope })
|
|
79
|
-
.txt(context.app.config.scopeId);
|
|
80
|
-
},
|
|
81
|
-
};
|
|
82
|
-
}
|
|
83
|
-
//# sourceMappingURL=XML.js.map
|
package/dist/XML.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"XML.js","sourceRoot":"","sources":["../src/XML.ts"],"names":[],"mappings":"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"}
|