@servicenow/sdk-build-core 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.
Files changed (130) hide show
  1. package/dist/BuildOptions.d.ts +50 -0
  2. package/dist/BuildOptions.js +46 -0
  3. package/dist/BuildOptions.js.map +1 -0
  4. package/dist/GUID.d.ts +2 -0
  5. package/dist/GUID.js +48 -0
  6. package/dist/GUID.js.map +1 -0
  7. package/dist/Keys.d.ts +29 -0
  8. package/dist/Keys.js +258 -0
  9. package/dist/Keys.js.map +1 -0
  10. package/dist/TypeScript.d.ts +5 -0
  11. package/dist/TypeScript.js +81 -0
  12. package/dist/TypeScript.js.map +1 -0
  13. package/dist/XML.d.ts +25 -0
  14. package/dist/XML.js +72 -0
  15. package/dist/XML.js.map +1 -0
  16. package/dist/index.d.ts +8 -0
  17. package/dist/index.js +38 -0
  18. package/dist/index.js.map +1 -0
  19. package/dist/plugins/Context.d.ts +198 -0
  20. package/dist/plugins/Context.js +3 -0
  21. package/dist/plugins/Context.js.map +1 -0
  22. package/dist/plugins/Diagnostic.d.ts +10 -0
  23. package/dist/plugins/Diagnostic.js +52 -0
  24. package/dist/plugins/Diagnostic.js.map +1 -0
  25. package/dist/plugins/Plugin.d.ts +175 -0
  26. package/dist/plugins/Plugin.js +15 -0
  27. package/dist/plugins/Plugin.js.map +1 -0
  28. package/dist/plugins/behaviors/Arranger.d.ts +26 -0
  29. package/dist/plugins/behaviors/Arranger.js +3 -0
  30. package/dist/plugins/behaviors/Arranger.js.map +1 -0
  31. package/dist/plugins/behaviors/Composer.d.ts +101 -0
  32. package/dist/plugins/behaviors/Composer.js +15 -0
  33. package/dist/plugins/behaviors/Composer.js.map +1 -0
  34. package/dist/plugins/behaviors/Diagnostics.d.ts +8 -0
  35. package/dist/plugins/behaviors/Diagnostics.js +3 -0
  36. package/dist/plugins/behaviors/Diagnostics.js.map +1 -0
  37. package/dist/plugins/behaviors/Generator.d.ts +21 -0
  38. package/dist/plugins/behaviors/Generator.js +3 -0
  39. package/dist/plugins/behaviors/Generator.js.map +1 -0
  40. package/dist/plugins/behaviors/OwnedTables.d.ts +6 -0
  41. package/dist/plugins/behaviors/OwnedTables.js +3 -0
  42. package/dist/plugins/behaviors/OwnedTables.js.map +1 -0
  43. package/dist/plugins/behaviors/PostProcessor.d.ts +5 -0
  44. package/dist/plugins/behaviors/PostProcessor.js +3 -0
  45. package/dist/plugins/behaviors/PostProcessor.js.map +1 -0
  46. package/dist/plugins/behaviors/Serializer.d.ts +29 -0
  47. package/dist/plugins/behaviors/Serializer.js +3 -0
  48. package/dist/plugins/behaviors/Serializer.js.map +1 -0
  49. package/dist/plugins/behaviors/Transformer.d.ts +23 -0
  50. package/dist/plugins/behaviors/Transformer.js +3 -0
  51. package/dist/plugins/behaviors/Transformer.js.map +1 -0
  52. package/dist/plugins/behaviors/extractors/Data.d.ts +107 -0
  53. package/dist/plugins/behaviors/extractors/Data.js +191 -0
  54. package/dist/plugins/behaviors/extractors/Data.js.map +1 -0
  55. package/dist/plugins/behaviors/extractors/Extractors.d.ts +41 -0
  56. package/dist/plugins/behaviors/extractors/Extractors.js +3 -0
  57. package/dist/plugins/behaviors/extractors/Extractors.js.map +1 -0
  58. package/dist/plugins/behaviors/extractors/index.d.ts +2 -0
  59. package/dist/plugins/behaviors/extractors/index.js +19 -0
  60. package/dist/plugins/behaviors/extractors/index.js.map +1 -0
  61. package/dist/plugins/behaviors/index.d.ts +9 -0
  62. package/dist/plugins/behaviors/index.js +26 -0
  63. package/dist/plugins/behaviors/index.js.map +1 -0
  64. package/dist/plugins/index.d.ts +5 -0
  65. package/dist/plugins/index.js +23 -0
  66. package/dist/plugins/index.js.map +1 -0
  67. package/dist/plugins/util/CallExpression.d.ts +6 -0
  68. package/dist/plugins/util/CallExpression.js +93 -0
  69. package/dist/plugins/util/CallExpression.js.map +1 -0
  70. package/dist/plugins/util/CodeTransformation.d.ts +74 -0
  71. package/dist/plugins/util/CodeTransformation.js +421 -0
  72. package/dist/plugins/util/CodeTransformation.js.map +1 -0
  73. package/dist/plugins/util/ConfigurationFunction.d.ts +106 -0
  74. package/dist/plugins/util/ConfigurationFunction.js +377 -0
  75. package/dist/plugins/util/ConfigurationFunction.js.map +1 -0
  76. package/dist/plugins/util/ObjectLiteral.d.ts +9 -0
  77. package/dist/plugins/util/ObjectLiteral.js +60 -0
  78. package/dist/plugins/util/ObjectLiteral.js.map +1 -0
  79. package/dist/plugins/util/index.d.ts +4 -0
  80. package/dist/plugins/util/index.js +21 -0
  81. package/dist/plugins/util/index.js.map +1 -0
  82. package/dist/util/Debug.d.ts +8 -0
  83. package/dist/util/Debug.js +39 -0
  84. package/dist/util/Debug.js.map +1 -0
  85. package/dist/util/Util.d.ts +4 -0
  86. package/dist/util/Util.js +41 -0
  87. package/dist/util/Util.js.map +1 -0
  88. package/dist/util/XMLJsonBuilder.d.ts +18 -0
  89. package/dist/util/XMLJsonBuilder.js +59 -0
  90. package/dist/util/XMLJsonBuilder.js.map +1 -0
  91. package/dist/util/XMLUploadParser.d.ts +22 -0
  92. package/dist/util/XMLUploadParser.js +67 -0
  93. package/dist/util/XMLUploadParser.js.map +1 -0
  94. package/dist/util/index.d.ts +4 -0
  95. package/dist/util/index.js +21 -0
  96. package/dist/util/index.js.map +1 -0
  97. package/license +9 -0
  98. package/package.json +42 -0
  99. package/src/BuildOptions.ts +27 -0
  100. package/src/GUID.ts +26 -0
  101. package/src/Keys.ts +287 -0
  102. package/src/TypeScript.ts +65 -0
  103. package/src/XML.ts +85 -0
  104. package/src/index.ts +8 -0
  105. package/src/plugins/Context.ts +249 -0
  106. package/src/plugins/Diagnostic.ts +31 -0
  107. package/src/plugins/Plugin.ts +246 -0
  108. package/src/plugins/behaviors/Arranger.ts +42 -0
  109. package/src/plugins/behaviors/Composer.ts +124 -0
  110. package/src/plugins/behaviors/Diagnostics.ts +13 -0
  111. package/src/plugins/behaviors/Generator.ts +31 -0
  112. package/src/plugins/behaviors/OwnedTables.ts +5 -0
  113. package/src/plugins/behaviors/PostProcessor.ts +6 -0
  114. package/src/plugins/behaviors/Serializer.ts +39 -0
  115. package/src/plugins/behaviors/Transformer.ts +32 -0
  116. package/src/plugins/behaviors/extractors/Data.ts +247 -0
  117. package/src/plugins/behaviors/extractors/Extractors.ts +57 -0
  118. package/src/plugins/behaviors/extractors/index.ts +2 -0
  119. package/src/plugins/behaviors/index.ts +9 -0
  120. package/src/plugins/index.ts +5 -0
  121. package/src/plugins/util/CallExpression.ts +83 -0
  122. package/src/plugins/util/CodeTransformation.ts +500 -0
  123. package/src/plugins/util/ConfigurationFunction.ts +477 -0
  124. package/src/plugins/util/ObjectLiteral.ts +37 -0
  125. package/src/plugins/util/index.ts +4 -0
  126. package/src/util/Debug.ts +46 -0
  127. package/src/util/Util.ts +21 -0
  128. package/src/util/XMLJsonBuilder.ts +64 -0
  129. package/src/util/XMLUploadParser.ts +90 -0
  130. package/src/util/index.ts +4 -0
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.linkDocument = linkDocument;
4
+ /**
5
+ * Utility which takes an unlinked document and a node and returns the
6
+ * same document linked to the provided node.
7
+ *
8
+ * @param document The {@linkcode UnlinkedDocument} to link
9
+ * @param node The AST node to link the document to
10
+ * @returns A {@linkcode LinkedDocument}
11
+ */
12
+ function linkDocument(document, node) {
13
+ return { ...document, node };
14
+ }
15
+ //# sourceMappingURL=Composer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Composer.js","sourceRoot":"","sources":["../../../src/plugins/behaviors/Composer.ts"],"names":[],"mappings":";;AAsHA,oCAKC;AAbD;;;;;;;GAOG;AACH,SAAgB,YAAY,CACxB,QAA6B,EAC7B,IAAO;IAEP,OAAO,EAAE,GAAG,QAAQ,EAAE,IAAI,EAAE,CAAA;AAChC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import * as ts from 'ts-morph';
2
+ import { SupportedKindName, SupportedNodeByKindName } from '@servicenow/sdk-project';
3
+ import { Context } from '../Context';
4
+ import { FluentDiagnostic } from '../Diagnostic';
5
+ export type DiagnosticsFunction<K extends SupportedKindName | 'Node' = SupportedKindName> = (node: K extends SupportedKindName ? SupportedNodeByKindName<K> : K extends 'Node' ? ts.Node : any, context: Context) => FluentDiagnostic[];
6
+ export type Diagnostics<NodeKinds extends SupportedKindName | 'Node'> = {
7
+ [K in NodeKinds]: DiagnosticsFunction<K>;
8
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=Diagnostics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Diagnostics.js","sourceRoot":"","sources":["../../../src/plugins/behaviors/Diagnostics.ts"],"names":[],"mappings":""}
@@ -0,0 +1,21 @@
1
+ import { LinkedDocument, UnlinkedDocument } from './Composer';
2
+ import { Arranged } from './Arranger';
3
+ import { Context } from '../Context';
4
+ /**
5
+ * A generator function is a function that accepts an unlinked document of
6
+ * a known kind as input and returns the same document as a linked document.
7
+ * In practice, this means the generator's job is to create new AST nodes
8
+ * for documents that are not linked to any node. Documents without nodes
9
+ * are usually from XML files containing records that aren't defined in the
10
+ * source code yet.
11
+ *
12
+ * @see {@linkcode UnlinkedDocument}
13
+ * @see {@linkcode LinkedDocument}
14
+ */
15
+ export type GeneratorFunction<DocumentKind extends string = string> = (document: UnlinkedDocument<DocumentKind> & Arranged, context: Context, linkedDocuments: LinkedDocument[]) => LinkedDocument<DocumentKind> | undefined;
16
+ /**
17
+ * @see {@linkcode Plugin#generators}
18
+ */
19
+ export type Generators<DocumentKinds extends string = string> = {
20
+ [K in DocumentKinds]: GeneratorFunction<K>;
21
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=Generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Generator.js","sourceRoot":"","sources":["../../../src/plugins/behaviors/Generator.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ import { Diagnostic } from '@servicenow/sdk-project';
2
+ export type TableOwnership = {
3
+ [table: string]: {
4
+ diagnosticLevel: Diagnostic.Level;
5
+ };
6
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=OwnedTables.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OwnedTables.js","sourceRoot":"","sources":["../../../src/plugins/behaviors/OwnedTables.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import { Context } from '../Context';
2
+ import { EntityData } from './extractors';
3
+ export type PostProcessors = {
4
+ entities?: (entities: EntityData[], context: Context) => void;
5
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=PostProcessor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PostProcessor.js","sourceRoot":"","sources":["../../../src/plugins/behaviors/PostProcessor.ts"],"names":[],"mappings":""}
@@ -0,0 +1,29 @@
1
+ import { Document } from './Composer';
2
+ import { Arranged } from './Arranger';
3
+ import { Context } from '../Context';
4
+ /**
5
+ * A file is a data structure with a name, a target directory, and content
6
+ * as a string. The target directory must be the name of one of the magic
7
+ * directories that exist within a ServiceNow deployable app package.
8
+ */
9
+ export type File = {
10
+ name: `${string}.xml`;
11
+ directory: 'dictionary' | 'unload' | 'unload.demo' | 'update' | 'apply_once' | '';
12
+ content: string;
13
+ };
14
+ /**
15
+ * A serializer function is a function which accepts a document of a known
16
+ * kind as input and returns one or more files derived from that document,
17
+ * or returns undefined to indicate it did not handle the document. In practice,
18
+ * this means generating the XML content that the build system will write to
19
+ * the filesystem during the final stages of a build.
20
+ *
21
+ * @see {@linkcode Document}
22
+ */
23
+ export type SerializerFunction<DocumentKind extends string = string> = (document: Document<DocumentKind> & Arranged, context: Context) => File | File[] | undefined;
24
+ /**
25
+ * @see {@linkcode Plugin#serializers}
26
+ */
27
+ export type Serializers<DocumentKinds extends string = string> = {
28
+ [K in DocumentKinds]: SerializerFunction<K>;
29
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=Serializer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Serializer.js","sourceRoot":"","sources":["../../../src/plugins/behaviors/Serializer.ts"],"names":[],"mappings":""}
@@ -0,0 +1,23 @@
1
+ import { SupportedKindName, SupportedNode, SupportedNodeByKindName } from '@servicenow/sdk-project';
2
+ import { LinkedDocument } from './Composer';
3
+ import { Arranged } from './Arranger';
4
+ import { Context } from '../Context';
5
+ /**
6
+ * A transformer function is a function which accepts a linked document of
7
+ * a known kind as input and returns a boolean indicating whether or not it
8
+ * handled the document. The implementation of a transformer function, if it
9
+ * chooses to handle the document, should perform the necessary transformations
10
+ * on the document's linked node to ensure the document's data is fully
11
+ * represented in the source code.
12
+ *
13
+ * @see {@linkcode LinkedDocument}
14
+ */
15
+ export type TransformerFunction<DocumentKind extends string = string, Node extends SupportedNode = SupportedNode> = (document: LinkedDocument<DocumentKind, Node> & Arranged, context: Context) => boolean;
16
+ /**
17
+ * @see {@linkcode Plugin#transformers}
18
+ */
19
+ export type Transformers<DocumentKinds extends string = string> = {
20
+ [DK in DocumentKinds]: {
21
+ [NK in SupportedKindName]?: TransformerFunction<DK, SupportedNodeByKindName<NK>>;
22
+ };
23
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=Transformer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Transformer.js","sourceRoot":"","sources":["../../../src/plugins/behaviors/Transformer.ts"],"names":[],"mappings":""}
@@ -0,0 +1,107 @@
1
+ import { SupportedNode } from '@servicenow/sdk-project';
2
+ /**
3
+ * Actions indicate what should take place in the database when the XML file
4
+ * is loaded. The platform understands these three actions: insert/update,
5
+ * delete, and delete multiple.
6
+ */
7
+ export type Action = 'INSERT_OR_UPDATE' | 'DELETE' | 'delete_multiple';
8
+ /**
9
+ * Utility type for data passed to XML extractors for processing.
10
+ */
11
+ export type Xml = {
12
+ filePath: string;
13
+ data: any;
14
+ };
15
+ /**
16
+ * Utility type to represent a simple object structure with primitive values.
17
+ */
18
+ export type PrimitiveData = {
19
+ [x: string]: PrimitiveData | PrimitiveData[] | string | number | boolean | undefined;
20
+ };
21
+ /**
22
+ * XML data is data from XML files (such as the parsed content of a record_update)
23
+ * which is not associated with any AST node.
24
+ */
25
+ export declare class XmlData<D extends PrimitiveData = PrimitiveData> {
26
+ data: D;
27
+ readonly filePath: string;
28
+ readonly kind: string;
29
+ readonly action: Action;
30
+ constructor(data: D, filePath: string, kind: string, action?: Action);
31
+ }
32
+ export type WrappedData<D> = {
33
+ [K in keyof D]: D[K] extends string ? StringData<D[K]> : D[K] extends number ? NumberData<D[K]> : D[K] extends boolean ? BooleanData<D[K]> : D[K] extends Array<unknown> ? ArrayData<D[K]> : D[K] extends Record<string, unknown> ? ObjectData<D[K]> : Data<D[K]>;
34
+ };
35
+ export declare abstract class Data<D = unknown> {
36
+ private readonly node;
37
+ constructor(node: SupportedNode);
38
+ /**
39
+ * @deprecated Using this for an array or object is bad practice because all of the elements/properties
40
+ * will be assigned the same node as the array/object itself. This makes it difficult to bidrectionally
41
+ * sync data created this way because you don't have the granularity required to know where each of the
42
+ * element/property values (and any nested values) came from.
43
+ */
44
+ static fromValue<const D>(value: D, node: SupportedNode): Data<D>;
45
+ static isUndefined(data?: Data): data is UndefinedData;
46
+ static isString(data?: Data): data is StringData;
47
+ static isNumber(data?: Data): data is NumberData;
48
+ static isBoolean(data?: Data): data is BooleanData;
49
+ static isArray(data?: Data): data is ArrayData;
50
+ static isObject(data?: Data): data is ObjectData;
51
+ static isEntity(data?: Data): data is EntityData;
52
+ abstract getValue(): D;
53
+ getNode(): import("ts-morph").SourceFile | import("ts-morph").ShorthandPropertyAssignment | import("ts-morph").Identifier | import("ts-morph").ObjectLiteralExpression | import("ts-morph").Node<import("ts-morph").ts.EndOfFileToken> | import("ts-morph").TypeAliasDeclaration | import("ts-morph").TypeReferenceNode | import("ts-morph").TypeLiteralNode | import("ts-morph").PropertySignature | import("ts-morph").TupleTypeNode | import("ts-morph").FunctionExpression | import("ts-morph").FunctionDeclaration | import("ts-morph").ArrayLiteralExpression | import("ts-morph").CallExpression<import("ts-morph").ts.CallExpression> | import("ts-morph").StringLiteral | import("ts-morph").NumericLiteral | import("ts-morph").TrueLiteral | import("ts-morph").FalseLiteral | import("ts-morph").VariableDeclaration | import("ts-morph").ClassDeclaration | import("ts-morph").ExportDeclaration | import("ts-morph").AsExpression | import("ts-morph").ComputedPropertyName | import("ts-morph").PropertyAssignment | import("ts-morph").PropertyAccessExpression<import("ts-morph").ts.PropertyAccessExpression> | import("ts-morph").NoSubstitutionTemplateLiteral | import("ts-morph").ExpressionStatement | import("ts-morph").TaggedTemplateExpression | import("ts-morph").ExportAssignment | import("ts-morph").ElementAccessExpression<import("ts-morph").ts.ElementAccessExpression> | import("ts-morph").TemplateExpression | import("ts-morph").ImportClause | import("ts-morph").ImportSpecifier | import("ts-morph").ImportDeclaration | import("ts-morph").NamedImports | import("ts-morph").VariableStatement | import("ts-morph").VariableDeclarationList | import("ts-morph").Node<import("ts-morph").ts.PlusToken> | import("ts-morph").Node<import("ts-morph").ts.ExportKeyword> | import("ts-morph").Node<import("ts-morph").ts.KeywordTypeNode<import("ts-morph").ts.SyntaxKind.AnyKeyword>> | import("ts-morph").ModuleDeclaration | import("ts-morph").ModuleBlock | import("ts-morph").Block | import("ts-morph").ParameterDeclaration | import("ts-morph").Node<import("ts-morph").ts.EqualsGreaterThanToken> | import("ts-morph").ArrowFunction | import("ts-morph").TemplateHead | import("ts-morph").TemplateMiddle | import("ts-morph").TemplateSpan | import("ts-morph").TemplateTail | import("ts-morph").PrefixUnaryExpression;
54
+ }
55
+ export declare class UndefinedData extends Data<undefined> {
56
+ constructor(node: SupportedNode);
57
+ getValue(): undefined;
58
+ }
59
+ export declare class StringData<const D extends string = string> extends Data<D> {
60
+ private readonly value;
61
+ constructor(value: D, node: SupportedNode);
62
+ getValue(): D;
63
+ }
64
+ export declare class NumberData<const D extends number = number> extends Data<D> {
65
+ private readonly value;
66
+ constructor(value: D, node: SupportedNode);
67
+ getValue(): D;
68
+ }
69
+ export declare class BooleanData<const D extends boolean = boolean> extends Data<D> {
70
+ private readonly value;
71
+ constructor(value: D, node: SupportedNode);
72
+ getValue(): D;
73
+ }
74
+ export declare class ArrayData<const D extends unknown[] = unknown[]> extends Data<D> {
75
+ private readonly elements;
76
+ constructor(elements: WrappedData<D>, node: SupportedNode);
77
+ /**
78
+ * @deprecated Using this for arrays is bad practice because all of the array elements will be
79
+ * assigned the same node as the array itself. This makes it difficult to bidrectionally sync
80
+ * data created this way because you don't have the granularity required to know where each of
81
+ * the element values (and any nested values) came from.
82
+ */
83
+ static fromArrayValue<const D extends unknown[]>(value: D, node: SupportedNode): ArrayData<D>;
84
+ getValue(): D;
85
+ getElements(): WrappedData<D>;
86
+ }
87
+ export declare class ObjectData<const D extends Record<string, unknown> = Record<string, unknown>> extends Data<D> {
88
+ private readonly properties;
89
+ constructor(properties: WrappedData<D>, node: SupportedNode);
90
+ /**
91
+ * @deprecated Using this for objects is bad practice because all of the object properties will
92
+ * be assigned the same node as the object itself. This makes it difficult to bidrectionally sync
93
+ * data created this way because you don't have the granularity required to know where each of
94
+ * the property values (and any nested values) came from.
95
+ */
96
+ static fromObjectValue<const D extends Record<string, unknown>>(value: D, node: SupportedNode): ObjectData<D>;
97
+ getValue(): D;
98
+ getProperty<const K extends keyof D>(name: K): WrappedData<D>[K];
99
+ getProperties(): WrappedData<D>;
100
+ }
101
+ export declare class EntityData<const D extends Record<string, unknown> = Record<string, unknown>> extends ObjectData<D> {
102
+ private readonly kind;
103
+ private readonly guid;
104
+ constructor(kind: string, guid: string, entity: ObjectData<D>, node: SupportedNode);
105
+ getKind(): string;
106
+ getGuid(): string;
107
+ }
@@ -0,0 +1,191 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EntityData = exports.ObjectData = exports.ArrayData = exports.BooleanData = exports.NumberData = exports.StringData = exports.UndefinedData = exports.Data = exports.XmlData = void 0;
4
+ /**
5
+ * XML data is data from XML files (such as the parsed content of a record_update)
6
+ * which is not associated with any AST node.
7
+ */
8
+ class XmlData {
9
+ data;
10
+ filePath;
11
+ kind;
12
+ action;
13
+ constructor(data, filePath, kind, action = 'INSERT_OR_UPDATE') {
14
+ this.data = data;
15
+ this.filePath = filePath;
16
+ this.kind = kind;
17
+ this.action = action;
18
+ }
19
+ }
20
+ exports.XmlData = XmlData;
21
+ class Data {
22
+ node;
23
+ constructor(node) {
24
+ this.node = node;
25
+ }
26
+ /**
27
+ * @deprecated Using this for an array or object is bad practice because all of the elements/properties
28
+ * will be assigned the same node as the array/object itself. This makes it difficult to bidrectionally
29
+ * sync data created this way because you don't have the granularity required to know where each of the
30
+ * element/property values (and any nested values) came from.
31
+ */
32
+ static fromValue(value, node) {
33
+ if (value === undefined || value === null) {
34
+ return new UndefinedData(node); // TODO: How can we avoid this silly cast?
35
+ }
36
+ else if (typeof value === 'string') {
37
+ return new StringData(value, node);
38
+ }
39
+ else if (typeof value === 'number') {
40
+ return new NumberData(value, node);
41
+ }
42
+ else if (typeof value === 'boolean') {
43
+ return new BooleanData(value, node);
44
+ }
45
+ else if (Array.isArray(value)) {
46
+ return ArrayData.fromArrayValue(value, node);
47
+ }
48
+ else if (!!value && typeof value === 'object') {
49
+ const obj = Object.fromEntries(Object.entries(value).filter(([key]) => typeof key === 'string'));
50
+ return ObjectData.fromObjectValue(obj, node);
51
+ }
52
+ else {
53
+ throw new Error(`Unsupported data type: ${value} (Type: ${typeof value}, Class: ${value?.constructor?.name})`);
54
+ }
55
+ }
56
+ static isUndefined(data) {
57
+ return data instanceof UndefinedData;
58
+ }
59
+ static isString(data) {
60
+ return data instanceof StringData;
61
+ }
62
+ static isNumber(data) {
63
+ return data instanceof NumberData;
64
+ }
65
+ static isBoolean(data) {
66
+ return data instanceof BooleanData;
67
+ }
68
+ static isArray(data) {
69
+ return data instanceof ArrayData;
70
+ }
71
+ static isObject(data) {
72
+ return data instanceof ObjectData;
73
+ }
74
+ static isEntity(data) {
75
+ return data instanceof EntityData;
76
+ }
77
+ getNode() {
78
+ return this.node;
79
+ }
80
+ }
81
+ exports.Data = Data;
82
+ class UndefinedData extends Data {
83
+ constructor(node) {
84
+ super(node);
85
+ }
86
+ getValue() {
87
+ return undefined;
88
+ }
89
+ }
90
+ exports.UndefinedData = UndefinedData;
91
+ class StringData extends Data {
92
+ value;
93
+ constructor(value, node) {
94
+ super(node);
95
+ this.value = value;
96
+ }
97
+ getValue() {
98
+ return this.value;
99
+ }
100
+ }
101
+ exports.StringData = StringData;
102
+ class NumberData extends Data {
103
+ value;
104
+ constructor(value, node) {
105
+ super(node);
106
+ this.value = value;
107
+ }
108
+ getValue() {
109
+ return this.value;
110
+ }
111
+ }
112
+ exports.NumberData = NumberData;
113
+ class BooleanData extends Data {
114
+ value;
115
+ constructor(value, node) {
116
+ super(node);
117
+ this.value = value;
118
+ }
119
+ getValue() {
120
+ return this.value;
121
+ }
122
+ }
123
+ exports.BooleanData = BooleanData;
124
+ class ArrayData extends Data {
125
+ elements;
126
+ constructor(elements, node) {
127
+ super(node);
128
+ this.elements = elements;
129
+ }
130
+ /**
131
+ * @deprecated Using this for arrays is bad practice because all of the array elements will be
132
+ * assigned the same node as the array itself. This makes it difficult to bidrectionally sync
133
+ * data created this way because you don't have the granularity required to know where each of
134
+ * the element values (and any nested values) came from.
135
+ */
136
+ static fromArrayValue(value, node) {
137
+ const elements = value.map((value) => Data.fromValue(value, node));
138
+ return new ArrayData(elements, node);
139
+ }
140
+ getValue() {
141
+ return this.elements.map((element) => element.getValue());
142
+ }
143
+ getElements() {
144
+ return this.elements;
145
+ }
146
+ }
147
+ exports.ArrayData = ArrayData;
148
+ class ObjectData extends Data {
149
+ properties;
150
+ constructor(properties, node) {
151
+ super(node);
152
+ this.properties = properties;
153
+ }
154
+ /**
155
+ * @deprecated Using this for objects is bad practice because all of the object properties will
156
+ * be assigned the same node as the object itself. This makes it difficult to bidrectionally sync
157
+ * data created this way because you don't have the granularity required to know where each of
158
+ * the property values (and any nested values) came from.
159
+ */
160
+ static fromObjectValue(value, node) {
161
+ const properties = Object.fromEntries(Object.entries(value).map(([key, value]) => [key, Data.fromValue(value, node)]));
162
+ return new ObjectData(properties, node);
163
+ }
164
+ getValue() {
165
+ return Object.fromEntries(Object.entries(this.properties).map(([key, value]) => [key, value.getValue()]));
166
+ }
167
+ getProperty(name) {
168
+ return this.properties[name];
169
+ }
170
+ getProperties() {
171
+ return this.properties;
172
+ }
173
+ }
174
+ exports.ObjectData = ObjectData;
175
+ class EntityData extends ObjectData {
176
+ kind;
177
+ guid;
178
+ constructor(kind, guid, entity, node) {
179
+ super(entity.getProperties(), node);
180
+ this.kind = kind;
181
+ this.guid = guid;
182
+ }
183
+ getKind() {
184
+ return this.kind;
185
+ }
186
+ getGuid() {
187
+ return this.guid;
188
+ }
189
+ }
190
+ exports.EntityData = EntityData;
191
+ //# sourceMappingURL=Data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Data.js","sourceRoot":"","sources":["../../../../src/plugins/behaviors/extractors/Data.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import { SupportedKindName, SupportedNodeByKindName } from '@servicenow/sdk-project';
2
+ import { Data, EntityData, Xml, XmlData } from './Data';
3
+ import { Context } from '../../Context';
4
+ import { FluentDiagnostic } from '../../Diagnostic';
5
+ export type ExtractionResult<D extends Data = Data> = {
6
+ handled: false;
7
+ } | {
8
+ handled: true;
9
+ data: D[];
10
+ diagnostics: FluentDiagnostic[];
11
+ };
12
+ /**
13
+ * An XML extractor function accepts an {@linkcode Xml} object and returns one or
14
+ * more pieces of {@linkcode XmlData} extracted from that object. The function may
15
+ * also return undefined to indicate that it did not handle the object.
16
+ */
17
+ export type XmlExtractorFunction = (xml: Xml, context: Context) => XmlData | XmlData[] | undefined;
18
+ /**
19
+ * A raw extractor function accepts an AST node and returns one or more pieces of
20
+ * {@linkcode Data} extracted from that node which cannot be composed into documents
21
+ * on their own but could be part of an entity.
22
+ */
23
+ export type RawExtractorFunction<N extends SupportedKindName | 'any' = SupportedKindName> = (node: N extends SupportedKindName ? SupportedNodeByKindName<N> : any, context: Context) => ExtractionResult<Data>;
24
+ /**
25
+ * An entity extractor function accepts an AST node and returns one or more pieces
26
+ * of {@linkcode EntityData} extracted from that node which can then be composed
27
+ * into documents.
28
+ */
29
+ export type EntityExtractorFunction<N extends SupportedKindName | 'any' = SupportedKindName> = (node: N extends SupportedKindName ? SupportedNodeByKindName<N> : any, context: Context) => ExtractionResult<EntityData>;
30
+ /**
31
+ * @see {@linkcode Plugin#extractors}
32
+ */
33
+ export type Extractors<RawNodeKinds extends SupportedKindName | 'any', EntityNodeKinds extends SupportedKindName | 'any'> = {
34
+ xml?: XmlExtractorFunction;
35
+ raw?: {
36
+ [K in RawNodeKinds]: RawExtractorFunction<K>;
37
+ };
38
+ entity?: {
39
+ [K in EntityNodeKinds]: EntityExtractorFunction<K>;
40
+ };
41
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=Extractors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Extractors.js","sourceRoot":"","sources":["../../../../src/plugins/behaviors/extractors/Extractors.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export * from './Extractors';
2
+ export * from './Data';
@@ -0,0 +1,19 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./Extractors"), exports);
18
+ __exportStar(require("./Data"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/behaviors/extractors/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA4B;AAC5B,yCAAsB"}
@@ -0,0 +1,9 @@
1
+ export * from './extractors';
2
+ export * from './Composer';
3
+ export * from './Arranger';
4
+ export * from './Serializer';
5
+ export * from './Generator';
6
+ export * from './Transformer';
7
+ export * from './PostProcessor';
8
+ export * from './Diagnostics';
9
+ export * from './OwnedTables';
@@ -0,0 +1,26 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./extractors"), exports);
18
+ __exportStar(require("./Composer"), exports);
19
+ __exportStar(require("./Arranger"), exports);
20
+ __exportStar(require("./Serializer"), exports);
21
+ __exportStar(require("./Generator"), exports);
22
+ __exportStar(require("./Transformer"), exports);
23
+ __exportStar(require("./PostProcessor"), exports);
24
+ __exportStar(require("./Diagnostics"), exports);
25
+ __exportStar(require("./OwnedTables"), exports);
26
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/behaviors/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA4B;AAC5B,6CAA0B;AAC1B,6CAA0B;AAC1B,+CAA4B;AAC5B,8CAA2B;AAC3B,gDAA6B;AAC7B,kDAA+B;AAC/B,gDAA6B;AAC7B,gDAA6B"}
@@ -0,0 +1,5 @@
1
+ export { Plugin } from './Plugin';
2
+ export { type Context, type HandledStates } from './Context';
3
+ export * from './behaviors';
4
+ export * from './util';
5
+ export * from './Diagnostic';
@@ -0,0 +1,23 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.Plugin = void 0;
18
+ var Plugin_1 = require("./Plugin");
19
+ Object.defineProperty(exports, "Plugin", { enumerable: true, get: function () { return Plugin_1.Plugin; } });
20
+ __exportStar(require("./behaviors"), exports);
21
+ __exportStar(require("./util"), exports);
22
+ __exportStar(require("./Diagnostic"), exports);
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/plugins/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,mCAAiC;AAAxB,gGAAA,MAAM,OAAA;AAEf,8CAA2B;AAC3B,yCAAsB;AACtB,+CAA4B"}