@servicenow/sdk-build-plugins 2.0.1
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/AttachmentPlugin.d.ts +253 -0
- package/dist/AttachmentPlugin.js +216 -0
- package/dist/AttachmentPlugin.js.map +1 -0
- package/dist/BusinessRulePlugin.d.ts +56 -0
- package/dist/BusinessRulePlugin.js +171 -0
- package/dist/BusinessRulePlugin.js.map +1 -0
- package/dist/CrossScopePrivilegePlugin.d.ts +22 -0
- package/dist/CrossScopePrivilegePlugin.js +42 -0
- package/dist/CrossScopePrivilegePlugin.js.map +1 -0
- package/dist/DefaultPlugin.d.ts +71 -0
- package/dist/DefaultPlugin.js +238 -0
- package/dist/DefaultPlugin.js.map +1 -0
- package/dist/IdPlugin.d.ts +17 -0
- package/dist/IdPlugin.js +45 -0
- package/dist/IdPlugin.js.map +1 -0
- package/dist/ListPlugin.d.ts +91 -0
- package/dist/ListPlugin.js +398 -0
- package/dist/ListPlugin.js.map +1 -0
- package/dist/PropertyPlugin.d.ts +122 -0
- package/dist/PropertyPlugin.js +165 -0
- package/dist/PropertyPlugin.js.map +1 -0
- package/dist/ScriptTemplatePlugin.d.ts +31 -0
- package/dist/ScriptTemplatePlugin.js +208 -0
- package/dist/ScriptTemplatePlugin.js.map +1 -0
- package/dist/UserPreferencePlugin.d.ts +16 -0
- package/dist/UserPreferencePlugin.js +30 -0
- package/dist/UserPreferencePlugin.js.map +1 -0
- package/dist/aclAndRole/AclPlugin.d.ts +117 -0
- package/dist/aclAndRole/AclPlugin.js +285 -0
- package/dist/aclAndRole/AclPlugin.js.map +1 -0
- package/dist/aclAndRole/RolePlugin.d.ts +58 -0
- package/dist/aclAndRole/RolePlugin.js +152 -0
- package/dist/aclAndRole/RolePlugin.js.map +1 -0
- package/dist/aclAndRole/Util.d.ts +3 -0
- package/dist/aclAndRole/Util.js +106 -0
- package/dist/aclAndRole/Util.js.map +1 -0
- package/dist/app/ApplicationMenuPlugin.d.ts +32 -0
- package/dist/app/ApplicationMenuPlugin.js +106 -0
- package/dist/app/ApplicationMenuPlugin.js.map +1 -0
- package/dist/atf/ATFComposer.d.ts +492 -0
- package/dist/atf/ATFComposer.js +2717 -0
- package/dist/atf/ATFComposer.js.map +1 -0
- package/dist/atf/TestPlugin.d.ts +31 -0
- package/dist/atf/TestPlugin.js +95 -0
- package/dist/atf/TestPlugin.js.map +1 -0
- package/dist/atf/index.d.ts +1 -0
- package/dist/atf/index.js +9 -0
- package/dist/atf/index.js.map +1 -0
- package/dist/db/ColumnPlugins.d.ts +278 -0
- package/dist/db/ColumnPlugins.js +112 -0
- package/dist/db/ColumnPlugins.js.map +1 -0
- package/dist/db/RecordPlugin.d.ts +208 -0
- package/dist/db/RecordPlugin.js +287 -0
- package/dist/db/RecordPlugin.js.map +1 -0
- package/dist/db/TablePlugin.d.ts +742 -0
- package/dist/db/TablePlugin.js +1249 -0
- package/dist/db/TablePlugin.js.map +1 -0
- package/dist/db/index.d.ts +3 -0
- package/dist/db/index.js +27 -0
- package/dist/db/index.js.map +1 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.js +51 -0
- package/dist/index.js.map +1 -0
- package/dist/scriptedRESTAPI/RESTDeserializationUtils.d.ts +12 -0
- package/dist/scriptedRESTAPI/RESTDeserializationUtils.js +371 -0
- package/dist/scriptedRESTAPI/RESTDeserializationUtils.js.map +1 -0
- package/dist/scriptedRESTAPI/RESTSerializationUtils.d.ts +15 -0
- package/dist/scriptedRESTAPI/RESTSerializationUtils.js +177 -0
- package/dist/scriptedRESTAPI/RESTSerializationUtils.js.map +1 -0
- package/dist/scriptedRESTAPI/RestApiPlugin.d.ts +144 -0
- package/dist/scriptedRESTAPI/RestApiPlugin.js +318 -0
- package/dist/scriptedRESTAPI/RestApiPlugin.js.map +1 -0
- package/dist/scriptedRESTAPI/RestSchemaUtils.d.ts +190 -0
- package/dist/scriptedRESTAPI/RestSchemaUtils.js +53 -0
- package/dist/scriptedRESTAPI/RestSchemaUtils.js.map +1 -0
- package/dist/scriptedRESTAPI/RestUtils.d.ts +75 -0
- package/dist/scriptedRESTAPI/RestUtils.js +469 -0
- package/dist/scriptedRESTAPI/RestUtils.js.map +1 -0
- package/dist/scripts/ClientScriptPlugin.d.ts +43 -0
- package/dist/scripts/ClientScriptPlugin.js +190 -0
- package/dist/scripts/ClientScriptPlugin.js.map +1 -0
- package/dist/scripts/scriptUtils.d.ts +15 -0
- package/dist/scripts/scriptUtils.js +83 -0
- package/dist/scripts/scriptUtils.js.map +1 -0
- package/dist/uxf/ExperiencePlugin.d.ts +22 -0
- package/dist/uxf/ExperiencePlugin.js +55 -0
- package/dist/uxf/ExperiencePlugin.js.map +1 -0
- package/dist/uxf/RoutesPlugin.d.ts +22 -0
- package/dist/uxf/RoutesPlugin.js +176 -0
- package/dist/uxf/RoutesPlugin.js.map +1 -0
- package/dist/uxf/UxfFormulaParser/cleanUxValue.d.ts +4 -0
- package/dist/uxf/UxfFormulaParser/cleanUxValue.js +65 -0
- package/dist/uxf/UxfFormulaParser/cleanUxValue.js.map +1 -0
- package/dist/uxf/UxfFormulaParser/grammerParser/api.d.ts +189 -0
- package/dist/uxf/UxfFormulaParser/grammerParser/api.js +158 -0
- package/dist/uxf/UxfFormulaParser/grammerParser/api.js.map +1 -0
- package/dist/uxf/UxfFormulaParser/grammerParser/clientTransformMap.d.ts +13 -0
- package/dist/uxf/UxfFormulaParser/grammerParser/clientTransformMap.js +604 -0
- package/dist/uxf/UxfFormulaParser/grammerParser/clientTransformMap.js.map +1 -0
- package/dist/uxf/UxfFormulaParser/grammerParser/grammarParser.d.ts +12 -0
- package/dist/uxf/UxfFormulaParser/grammerParser/grammarParser.js +551 -0
- package/dist/uxf/UxfFormulaParser/grammerParser/grammarParser.js.map +1 -0
- package/dist/uxf/UxfFormulaParser/grammerParser/spanHelpers.d.ts +31 -0
- package/dist/uxf/UxfFormulaParser/grammerParser/spanHelpers.js +64 -0
- package/dist/uxf/UxfFormulaParser/grammerParser/spanHelpers.js.map +1 -0
- package/dist/uxf/UxfFormulaParser/index.d.ts +3 -0
- package/dist/uxf/UxfFormulaParser/index.js +11 -0
- package/dist/uxf/UxfFormulaParser/index.js.map +1 -0
- package/dist/uxf/UxfFormulaParser/parser.d.ts +8 -0
- package/dist/uxf/UxfFormulaParser/parser.js +87 -0
- package/dist/uxf/UxfFormulaParser/parser.js.map +1 -0
- package/dist/uxf/UxfFormulaParser/utils/getErrorMsg.d.ts +8 -0
- package/dist/uxf/UxfFormulaParser/utils/getErrorMsg.js +17 -0
- package/dist/uxf/UxfFormulaParser/utils/getErrorMsg.js.map +1 -0
- package/dist/uxf/constants.d.ts +2 -0
- package/dist/uxf/constants.js +8 -0
- package/dist/uxf/constants.js.map +1 -0
- package/dist/uxf/index.d.ts +2 -0
- package/dist/uxf/index.js +11 -0
- package/dist/uxf/index.js.map +1 -0
- package/dist/uxf/tectonicIdGenerator.d.ts +12 -0
- package/dist/uxf/tectonicIdGenerator.js +102 -0
- package/dist/uxf/tectonicIdGenerator.js.map +1 -0
- package/license +9 -0
- package/package.json +42 -0
- package/src/AttachmentPlugin.ts +262 -0
- package/src/BusinessRulePlugin.ts +251 -0
- package/src/CrossScopePrivilegePlugin.ts +54 -0
- package/src/DefaultPlugin.ts +272 -0
- package/src/IdPlugin.ts +47 -0
- package/src/ListPlugin.ts +497 -0
- package/src/PropertyPlugin.ts +218 -0
- package/src/ScriptTemplatePlugin.ts +223 -0
- package/src/UserPreferencePlugin.ts +36 -0
- package/src/aclAndRole/AclPlugin.ts +410 -0
- package/src/aclAndRole/RolePlugin.ts +225 -0
- package/src/aclAndRole/Util.ts +104 -0
- package/src/app/ApplicationMenuPlugin.ts +158 -0
- package/src/atf/ATFComposer.ts +3356 -0
- package/src/atf/TestPlugin.ts +119 -0
- package/src/atf/index.ts +1 -0
- package/src/db/ColumnPlugins.ts +117 -0
- package/src/db/RecordPlugin.ts +391 -0
- package/src/db/TablePlugin.ts +1581 -0
- package/src/db/index.ts +3 -0
- package/src/index.ts +16 -0
- package/src/scriptedRESTAPI/RESTDeserializationUtils.ts +410 -0
- package/src/scriptedRESTAPI/RESTSerializationUtils.ts +227 -0
- package/src/scriptedRESTAPI/RestApiPlugin.ts +438 -0
- package/src/scriptedRESTAPI/RestSchemaUtils.ts +72 -0
- package/src/scriptedRESTAPI/RestUtils.ts +507 -0
- package/src/scripts/ClientScriptPlugin.ts +251 -0
- package/src/scripts/scriptUtils.ts +81 -0
- package/src/uxf/ExperiencePlugin.ts +64 -0
- package/src/uxf/RoutesPlugin.ts +215 -0
- package/src/uxf/UxfFormulaParser/cleanUxValue.ts +73 -0
- package/src/uxf/UxfFormulaParser/grammerParser/api.js +166 -0
- package/src/uxf/UxfFormulaParser/grammerParser/clientTransformMap.js +606 -0
- package/src/uxf/UxfFormulaParser/grammerParser/grammarParser.js +551 -0
- package/src/uxf/UxfFormulaParser/grammerParser/spanHelpers.js +65 -0
- package/src/uxf/UxfFormulaParser/index.ts +4 -0
- package/src/uxf/UxfFormulaParser/parser.ts +64 -0
- package/src/uxf/UxfFormulaParser/utils/getErrorMsg.ts +13 -0
- package/src/uxf/constants.ts +4 -0
- package/src/uxf/index.ts +2 -0
- package/src/uxf/tectonicIdGenerator.ts +81 -0
|
@@ -0,0 +1,106 @@
|
|
|
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.addObjectToArrayById = addObjectToArrayById;
|
|
27
|
+
exports.removeObjectFromArrayById = removeObjectFromArrayById;
|
|
28
|
+
const lodash_1 = require("lodash");
|
|
29
|
+
const ts = __importStar(require("ts-morph"));
|
|
30
|
+
const sdk_build_core_1 = require("@servicenow/sdk-build-core");
|
|
31
|
+
const getElementKey = (element) => {
|
|
32
|
+
if (element.isKind(ts.SyntaxKind.StringLiteral)) {
|
|
33
|
+
return element.getLiteralValue();
|
|
34
|
+
}
|
|
35
|
+
const varDec = (element.getSymbol()?.getValueDeclaration() ??
|
|
36
|
+
element.getSymbol()?.getAliasedSymbol()?.getValueDeclaration());
|
|
37
|
+
return varDec
|
|
38
|
+
? (0, sdk_build_core_1.getNodeId)(varDec.getInitializerIfKind(ts.SyntaxKind.CallExpression)?.getArguments()[0])
|
|
39
|
+
: '';
|
|
40
|
+
};
|
|
41
|
+
function addObjectToArrayById(document, name, roleId, context) {
|
|
42
|
+
const arg = document.node?.asKind(ts.SyntaxKind.CallExpression)?.getArguments()[0];
|
|
43
|
+
const table = document.data['table'];
|
|
44
|
+
const argId = (0, sdk_build_core_1.getNodeId)(arg);
|
|
45
|
+
const propertyAssignment = (0, sdk_build_core_1.getOrCreatePropertyAssignment)(arg, name, '[]');
|
|
46
|
+
let handled = false;
|
|
47
|
+
const rolesIterator = new sdk_build_core_1.ArrayIterator(propertyAssignment);
|
|
48
|
+
const primaryKey = table === 'sys_security_acl_role' ? 'sys_security_acl' : 'role';
|
|
49
|
+
const secondKey = table === 'sys_security_acl_role' ? 'sys_user_role' : 'contains';
|
|
50
|
+
while (rolesIterator.hasNext()) {
|
|
51
|
+
const element = rolesIterator.next();
|
|
52
|
+
const secKey = getElementKey(element);
|
|
53
|
+
const foundIdx = context.keys.composite.findIndex((k) => (0, lodash_1.isEqual)(k.key, {
|
|
54
|
+
[primaryKey]: argId,
|
|
55
|
+
[secondKey]: secKey,
|
|
56
|
+
}));
|
|
57
|
+
if (foundIdx !== -1 && context.keys.composite[foundIdx]?.id === document.guid) {
|
|
58
|
+
if (context.keys.explicit[secKey]?.id === roleId || secKey === roleId) {
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
element?.replaceWithText((0, sdk_build_core_1.stringify)(roleId));
|
|
62
|
+
context.keys.composite.splice(foundIdx, 1);
|
|
63
|
+
handled = true;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
if (!handled) {
|
|
67
|
+
const stringValue = (0, sdk_build_core_1.stringify)(roleId);
|
|
68
|
+
rolesIterator.getExpression().addElement(stringValue);
|
|
69
|
+
}
|
|
70
|
+
context.keys.registerCompositeId(table, {
|
|
71
|
+
[primaryKey]: argId,
|
|
72
|
+
[secondKey]: roleId,
|
|
73
|
+
}, document.guid);
|
|
74
|
+
}
|
|
75
|
+
function removeObjectFromArrayById(document, name, context) {
|
|
76
|
+
const arg = document.node?.asKind(ts.SyntaxKind.CallExpression)?.getArguments()[0];
|
|
77
|
+
const table = document.data['table'];
|
|
78
|
+
const argId = (0, sdk_build_core_1.getNodeId)(arg);
|
|
79
|
+
const property = arg.getProperty(name);
|
|
80
|
+
if (!property) {
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
const propertyAssignment = property.asKind(ts.ts.SyntaxKind.PropertyAssignment);
|
|
84
|
+
if (!propertyAssignment) {
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
const rolesIterator = new sdk_build_core_1.ArrayIterator(propertyAssignment);
|
|
88
|
+
while (rolesIterator.hasNext()) {
|
|
89
|
+
const element = rolesIterator.next();
|
|
90
|
+
const secKey = getElementKey(element);
|
|
91
|
+
const primaryKey = table === 'sys_security_acl_role' ? 'sys_security_acl' : 'role';
|
|
92
|
+
const secondKey = table === 'sys_security_acl_role' ? 'sys_user_role' : 'contains';
|
|
93
|
+
const foundIdx = context.keys.composite.findIndex((k) => (0, lodash_1.isEqual)(k.key, {
|
|
94
|
+
[primaryKey]: argId,
|
|
95
|
+
[secondKey]: secKey,
|
|
96
|
+
}));
|
|
97
|
+
if (foundIdx !== -1 && context.keys.composite[foundIdx]?.id === document.guid) {
|
|
98
|
+
rolesIterator.getExpression().removeElement(element);
|
|
99
|
+
}
|
|
100
|
+
if (!element.wasForgotten() && element.asKind(ts.SyntaxKind.Identifier) && !element.getSymbol()) {
|
|
101
|
+
//remove if the identifier doesn't have symbol, happens when the identifier declaration is removed prior to this
|
|
102
|
+
rolesIterator.getExpression().removeElement(element);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=Util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Util.js","sourceRoot":"","sources":["../../src/aclAndRole/Util.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { EntityData } from '@servicenow/sdk-build-core';
|
|
2
|
+
import { Diagnostic } from '@servicenow/sdk-project';
|
|
3
|
+
declare const _default: {
|
|
4
|
+
readonly name: "ApplicationMenu";
|
|
5
|
+
readonly ownedTables: {
|
|
6
|
+
readonly sys_app_application: {
|
|
7
|
+
readonly diagnosticLevel: Diagnostic.Level.Warn;
|
|
8
|
+
};
|
|
9
|
+
};
|
|
10
|
+
readonly extractors: {
|
|
11
|
+
readonly entity: {
|
|
12
|
+
readonly CallExpression: (node: import("ts-morph").CallExpression<import("ts-morph").ts.CallExpression>, context: import("@servicenow/sdk-build-core").Context) => import("@servicenow/sdk-build-core").ExtractionResult<EntityData<import("@servicenow/sdk-core/runtime/app").ApplicationMenuConfig>>;
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
readonly composers: {
|
|
16
|
+
readonly entity: {
|
|
17
|
+
readonly appMenu: (entity: EntityData<globalThis.Record<string, unknown>>, context: import("@servicenow/sdk-build-core").Context) => import("@servicenow/sdk-build-core").LinkedDocument[] | undefined;
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
readonly generators: {
|
|
21
|
+
readonly record: (document: import("@servicenow/sdk-build-core").UnlinkedDocument<"record"> & import("@servicenow/sdk-build-core").Arranged, context: import("@servicenow/sdk-build-core").Context) => import("@servicenow/sdk-build-core").LinkedDocument<"record", import("ts-morph").CallExpression<import("ts-morph").ts.CallExpression>> | undefined;
|
|
22
|
+
};
|
|
23
|
+
readonly transformers: {
|
|
24
|
+
readonly record: {
|
|
25
|
+
readonly CallExpression: (document: import("@servicenow/sdk-build-core").Document<any, import("ts-morph").CallExpression<import("ts-morph").ts.CallExpression>> & {
|
|
26
|
+
entity?: EntityData;
|
|
27
|
+
node: import("ts-morph").CallExpression<import("ts-morph").ts.CallExpression>;
|
|
28
|
+
} & import("@servicenow/sdk-build-core").Arranged) => boolean;
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
export default _default;
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const zod_1 = require("zod");
|
|
4
|
+
const ts_morph_1 = require("ts-morph");
|
|
5
|
+
const app_1 = require("@servicenow/sdk-core/runtime/app");
|
|
6
|
+
const sdk_build_core_1 = require("@servicenow/sdk-build-core");
|
|
7
|
+
const RecordPlugin_1 = require("../db/RecordPlugin");
|
|
8
|
+
const db_1 = require("@servicenow/sdk-core/runtime/db");
|
|
9
|
+
const sdk_project_1 = require("@servicenow/sdk-project");
|
|
10
|
+
const AppMenuDocumentSchema = zod_1.z.object({
|
|
11
|
+
table: zod_1.z.literal('sys_app_application'),
|
|
12
|
+
data: app_1.ApplicationMenuSchema.omit({ roles: true, category: true, $id: true }).extend({
|
|
13
|
+
roles: zod_1.z.string().optional(),
|
|
14
|
+
category: zod_1.z.string().optional(),
|
|
15
|
+
device_type: zod_1.z.string().optional(),
|
|
16
|
+
view_name: zod_1.z.string().optional(),
|
|
17
|
+
}),
|
|
18
|
+
});
|
|
19
|
+
const AppMenuDocumentTransformer = AppMenuDocumentSchema.transform(({ data: data }) => {
|
|
20
|
+
const { roles, category, device_type, view_name, ...rest } = data;
|
|
21
|
+
return {
|
|
22
|
+
...rest,
|
|
23
|
+
};
|
|
24
|
+
});
|
|
25
|
+
exports.default = (0, sdk_build_core_1.Plugin)({
|
|
26
|
+
name: 'ApplicationMenu',
|
|
27
|
+
ownedTables: {
|
|
28
|
+
sys_app_application: { diagnosticLevel: sdk_project_1.Diagnostic.Level.Warn },
|
|
29
|
+
},
|
|
30
|
+
extractors: {
|
|
31
|
+
entity: {
|
|
32
|
+
CallExpression: (node, context) => (0, sdk_build_core_1.extractCallExpression)(app_1.ApplicationMenu, 'appMenu', node, context, (menu) => context.registerExplicitId('sys_app_application', menu.$id)),
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
composers: {
|
|
36
|
+
entity: {
|
|
37
|
+
appMenu(entity, context) {
|
|
38
|
+
const appMenuData = app_1.ApplicationMenuSchema.safeParse(entity.getValue());
|
|
39
|
+
if (!appMenuData.success) {
|
|
40
|
+
return undefined;
|
|
41
|
+
}
|
|
42
|
+
const { $id, roles, category, ...props } = appMenuData.data;
|
|
43
|
+
const rolesString = roles ? (0, app_1.getRolesString)(roles) : '';
|
|
44
|
+
const recordEntity = (0, db_1.Record)({
|
|
45
|
+
$id,
|
|
46
|
+
table: 'sys_app_application',
|
|
47
|
+
data: {
|
|
48
|
+
...props,
|
|
49
|
+
roles: rolesString,
|
|
50
|
+
category: category ?? '',
|
|
51
|
+
device_type: 'browser',
|
|
52
|
+
view_name: '',
|
|
53
|
+
},
|
|
54
|
+
});
|
|
55
|
+
return context.composeEntities([
|
|
56
|
+
new sdk_build_core_1.EntityData('record', entity.getGuid(), sdk_build_core_1.ObjectData.fromObjectValue(recordEntity, entity.getNode()), entity.getNode()),
|
|
57
|
+
], [RecordPlugin_1.RecordPlugin]);
|
|
58
|
+
},
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
generators: {
|
|
62
|
+
record(document, context) {
|
|
63
|
+
if (!AppMenuDocumentSchema.safeParse(document.data).success) {
|
|
64
|
+
return undefined;
|
|
65
|
+
}
|
|
66
|
+
return (0, sdk_build_core_1.linkDocument)(document, (0, sdk_build_core_1.generateCallExpressionExportForDocument)(context, {
|
|
67
|
+
sourceFile: (0, sdk_build_core_1.getOrCreateEntitySourceFile)(context, (0, sdk_build_core_1.getSysUpdateName)(document, 'sys_app_application')),
|
|
68
|
+
moduleSpecifier: '@servicenow/sdk/core',
|
|
69
|
+
}, app_1.ApplicationMenu, { $id: document.guid }).getExpressionIfKindOrThrow(ts_morph_1.SyntaxKind.CallExpression));
|
|
70
|
+
},
|
|
71
|
+
},
|
|
72
|
+
transformers: {
|
|
73
|
+
record: {
|
|
74
|
+
CallExpression(document) {
|
|
75
|
+
if ((0, sdk_build_core_1.getCallExpressionName)(document.node) !== app_1.ApplicationMenu.name) {
|
|
76
|
+
return false;
|
|
77
|
+
}
|
|
78
|
+
if (document.action === 'DELETE') {
|
|
79
|
+
(0, sdk_build_core_1.removeNode)(document.node);
|
|
80
|
+
return true;
|
|
81
|
+
}
|
|
82
|
+
if (!document.changedData) {
|
|
83
|
+
return false;
|
|
84
|
+
}
|
|
85
|
+
const menu = AppMenuDocumentTransformer.safeParse(document.data);
|
|
86
|
+
if (!menu.success) {
|
|
87
|
+
return false;
|
|
88
|
+
}
|
|
89
|
+
const { roles, category } = document.xmlData.data;
|
|
90
|
+
const [args] = document.node.getArguments();
|
|
91
|
+
if (!ts_morph_1.Node.isObjectLiteralExpression(args)) {
|
|
92
|
+
return false;
|
|
93
|
+
}
|
|
94
|
+
if (roles) {
|
|
95
|
+
(0, sdk_build_core_1.writeArrayPropertyAsReference)(args, 'roles', '[]', (0, app_1.getRolesArray)(roles));
|
|
96
|
+
}
|
|
97
|
+
if (category) {
|
|
98
|
+
(0, sdk_build_core_1.writePropertyAsReference)(args, 'category', '{}', category);
|
|
99
|
+
}
|
|
100
|
+
const { roles: _roles, category: _category, device_type: _device_type, ...data } = AppMenuDocumentSchema.deepPartial().parse(document.changedData).data;
|
|
101
|
+
return (0, sdk_build_core_1.transformFunctionArguments)(document.node, app_1.ApplicationMenu, data);
|
|
102
|
+
},
|
|
103
|
+
},
|
|
104
|
+
},
|
|
105
|
+
});
|
|
106
|
+
//# sourceMappingURL=ApplicationMenuPlugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ApplicationMenuPlugin.js","sourceRoot":"","sources":["../../src/app/ApplicationMenuPlugin.ts"],"names":[],"mappings":"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"}
|