@servicenow/sdk-build-core 2.0.1 → 2.1.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.
Files changed (43) hide show
  1. package/dist/Keys.d.ts +7 -5
  2. package/dist/Keys.js +24 -39
  3. package/dist/Keys.js.map +1 -1
  4. package/dist/XML.d.ts +6 -6
  5. package/dist/XML.js +10 -20
  6. package/dist/XML.js.map +1 -1
  7. package/dist/plugins/Context.d.ts +3 -13
  8. package/dist/plugins/Plugin.d.ts +3 -3
  9. package/dist/plugins/Plugin.js.map +1 -1
  10. package/dist/plugins/behaviors/Composer.d.ts +2 -2
  11. package/dist/plugins/behaviors/Serializer.d.ts +1 -1
  12. package/dist/plugins/behaviors/extractors/Data.d.ts +14 -11
  13. package/dist/plugins/behaviors/extractors/Data.js +41 -6
  14. package/dist/plugins/behaviors/extractors/Data.js.map +1 -1
  15. package/dist/plugins/behaviors/extractors/Extractors.d.ts +25 -3
  16. package/dist/plugins/util/CallExpression.d.ts +0 -1
  17. package/dist/plugins/util/CallExpression.js +16 -9
  18. package/dist/plugins/util/CallExpression.js.map +1 -1
  19. package/dist/plugins/util/CodeTransformation.d.ts +1 -0
  20. package/dist/plugins/util/CodeTransformation.js +92 -9
  21. package/dist/plugins/util/CodeTransformation.js.map +1 -1
  22. package/dist/plugins/util/ConfigurationFunction.js +1 -1
  23. package/dist/plugins/util/ConfigurationFunction.js.map +1 -1
  24. package/dist/util/Scope.d.ts +1 -0
  25. package/dist/util/Scope.js +7 -0
  26. package/dist/util/Scope.js.map +1 -0
  27. package/dist/util/index.d.ts +1 -0
  28. package/dist/util/index.js +1 -0
  29. package/dist/util/index.js.map +1 -1
  30. package/package.json +5 -4
  31. package/src/Keys.ts +31 -47
  32. package/src/XML.ts +12 -23
  33. package/src/plugins/Context.ts +3 -16
  34. package/src/plugins/Plugin.ts +42 -10
  35. package/src/plugins/behaviors/Composer.ts +2 -2
  36. package/src/plugins/behaviors/Serializer.ts +1 -1
  37. package/src/plugins/behaviors/extractors/Data.ts +78 -14
  38. package/src/plugins/behaviors/extractors/Extractors.ts +20 -4
  39. package/src/plugins/util/CallExpression.ts +27 -20
  40. package/src/plugins/util/CodeTransformation.ts +104 -8
  41. package/src/plugins/util/ConfigurationFunction.ts +1 -1
  42. package/src/util/Scope.ts +3 -0
  43. package/src/util/index.ts +1 -0
package/dist/Keys.d.ts CHANGED
@@ -3,27 +3,29 @@ import { Context } from './plugins';
3
3
  export declare const KEYS_MODULE = "@servicenow/sdk/global";
4
4
  export declare const KEYS_FILE_NAME = "keys.ts";
5
5
  export declare class Keys implements Now.Internal.KeysRegistry {
6
+ private readonly file;
6
7
  private readonly keys;
7
8
  private readonly usedIds;
8
9
  constructor(context: Context);
9
10
  private static parseKeysFile;
10
11
  private static getKeysFile;
11
12
  static getKeysFilePath(context: Context): string;
12
- private static createKeysFile;
13
- private static ensureGlobalImport;
14
13
  private static getOrCreateKeysInterface;
15
14
  private use;
16
- get explicit(): Record<string | number, Now.Internal.ExplicitKey>;
15
+ get explicit(): Record<string | number, Now.Internal.ExplicitKey<string>>;
17
16
  get composite(): Now.Internal.CompositeKey[];
18
17
  get deleted(): Record<string, string[]>;
18
+ getSourceFile(): SourceFile;
19
19
  getNextAvailableExplicitKey(): string;
20
+ explicitKeyExists(key: string | number): boolean;
20
21
  findExplicitKeyById(id: string): string | undefined;
21
22
  registerExplicitId(table: string, key: string | number, sysIdOverride?: string): string;
22
23
  registerCompositeId(table: string, key: Record<string, string | number>, sysIdOverride?: string): string;
23
24
  getUsedExplicitIds(): {
24
- [k: string]: Now.Internal.ExplicitKey;
25
+ [k: string]: Now.Internal.ExplicitKey<string>;
25
26
  };
26
27
  getUsedCompositeIds(): Now.Internal.CompositeKey[];
27
28
  getDeletedAndUnusedIds(): Record<string, string[]>;
28
- save(context: Context, formatter?: (file: SourceFile) => Promise<void>): Promise<void>;
29
+ format(formatter?: (file: SourceFile) => Promise<any>): Promise<void>;
30
+ updateSourceFile(): void;
29
31
  }
package/dist/Keys.js CHANGED
@@ -30,7 +30,6 @@ const TypeScript_1 = require("./TypeScript");
30
30
  const GUID_1 = require("./GUID");
31
31
  const z = __importStar(require("zod"));
32
32
  const _ = __importStar(require("lodash"));
33
- const sdk_project_1 = require("@servicenow/sdk-project");
34
33
  exports.KEYS_MODULE = '@servicenow/sdk/global';
35
34
  exports.KEYS_FILE_NAME = 'keys.ts';
36
35
  const KeysSchema = z.object({
@@ -50,16 +49,14 @@ const KeysSchema = z.object({
50
49
  deleted: z.record(z.array(z.string())).default({}),
51
50
  });
52
51
  class Keys {
52
+ file;
53
53
  keys;
54
54
  usedIds = new Set();
55
55
  constructor(context) {
56
- this.keys = Keys.parseKeysFile(context) ?? { explicit: {}, composite: [], deleted: {} };
56
+ this.file = Keys.getKeysFile(context);
57
+ this.keys = Keys.parseKeysFile(this.file);
57
58
  }
58
- static parseKeysFile(context) {
59
- const keysFile = Keys.getKeysFile(context);
60
- if (!keysFile) {
61
- return undefined;
62
- }
59
+ static parseKeysFile(keysFile) {
63
60
  const keysInterface = Keys.getOrCreateKeysInterface(keysFile);
64
61
  return KeysSchema.parse((0, TypeScript_1.parseType)(keysInterface.getType(), keysInterface, (unparsableType) => {
65
62
  if (unparsableType.isArray()) {
@@ -72,32 +69,20 @@ class Keys {
72
69
  }
73
70
  static getKeysFile(context) {
74
71
  const keysFilePath = Keys.getKeysFilePath(context);
75
- if (!sdk_project_1.FileSystem.existsSync(context.fs, keysFilePath)) {
76
- // BUG: It shouldn't be necessary to check manually here, but there is a bug in
77
- // ts-morph where attempting to add a source file that doesn't exist will cause
78
- // subsequent operations on the parent directory to fail in certain scenarios.
79
- //
80
- // Created an issue here: https://github.com/dsherret/ts-morph/issues/1554
81
- return undefined;
72
+ const keysFile = context.compiler.addSourceFileAtPathIfExists(keysFilePath) ??
73
+ context.compiler.createSourceFile(keysFilePath, '', {
74
+ overwrite: true,
75
+ scriptKind: ts_morph_1.ScriptKind.TS,
76
+ });
77
+ // Add global import if not already present
78
+ if (!keysFile.getImportDeclaration((i) => i.getModuleSpecifierValue() === exports.KEYS_MODULE)) {
79
+ keysFile.addImportDeclaration({ moduleSpecifier: exports.KEYS_MODULE });
82
80
  }
83
- return context.compiler.addSourceFileAtPathIfExists(keysFilePath);
81
+ return keysFile;
84
82
  }
85
83
  static getKeysFilePath(context) {
86
84
  return path.resolve(context.app.rootDir, context.app.config.generatedDir, exports.KEYS_FILE_NAME);
87
85
  }
88
- static createKeysFile(context) {
89
- const keysFilePath = Keys.getKeysFilePath(context);
90
- const parentDir = path.dirname(keysFilePath);
91
- context.fs.mkdirSync(parentDir, { recursive: true });
92
- const keysFile = context.compiler.createSourceFile(keysFilePath, '', {});
93
- Keys.ensureGlobalImport(keysFile);
94
- return keysFile;
95
- }
96
- static ensureGlobalImport(keysFile) {
97
- if (!keysFile.getImportDeclaration((i) => i.getModuleSpecifierValue() === exports.KEYS_MODULE)) {
98
- keysFile.addImportDeclaration({ moduleSpecifier: exports.KEYS_MODULE });
99
- }
100
- }
101
86
  static getOrCreateKeysInterface(keysFile) {
102
87
  const declareGlobal = keysFile.getModule('global') ??
103
88
  keysFile.addModule({
@@ -135,6 +120,9 @@ class Keys {
135
120
  get deleted() {
136
121
  return this.keys.deleted;
137
122
  }
123
+ getSourceFile() {
124
+ return this.file;
125
+ }
138
126
  getNextAvailableExplicitKey() {
139
127
  for (let i = 0;; i++) {
140
128
  const key = `generated${i}`;
@@ -143,6 +131,9 @@ class Keys {
143
131
  }
144
132
  }
145
133
  }
134
+ explicitKeyExists(key) {
135
+ return !!this.explicit[key];
136
+ }
146
137
  findExplicitKeyById(id) {
147
138
  return Object.entries(this.explicit).find(([, v]) => v.id === id)?.[0];
148
139
  }
@@ -163,18 +154,12 @@ class Keys {
163
154
  }
164
155
  const existing = this.explicit[key];
165
156
  if (existing) {
166
- if (existing.table !== table) {
167
- throw `Explicit key '${key}' is already registered for table '${existing.table}', cannot register for table '${table}'`;
168
- }
169
157
  return this.use(existing.id);
170
158
  }
171
159
  if (sysIdOverride) {
172
160
  const existingKey = this.findExplicitKeyById(sysIdOverride);
173
161
  if (existingKey) {
174
162
  const existingWithSysId = this.explicit[existingKey];
175
- if (existingWithSysId.table !== table) {
176
- throw `ID '${sysIdOverride}' is already registered for table '${existingWithSysId.table}', cannot register for table '${table}'`;
177
- }
178
163
  if (existingKey !== key) {
179
164
  throw `ID '${sysIdOverride}' is already registered for key '${existingKey}', cannot register for key '${key}'`;
180
165
  }
@@ -223,7 +208,10 @@ class Keys {
223
208
  return deletedIds;
224
209
  }, {});
225
210
  }
226
- async save(context, formatter) {
211
+ async format(formatter) {
212
+ await formatter?.(this.file);
213
+ }
214
+ updateSourceFile() {
227
215
  const newProperties = [];
228
216
  const usedExplicitIds = this.getUsedExplicitIds();
229
217
  const usedCompositeIds = this.getUsedCompositeIds();
@@ -246,12 +234,9 @@ class Keys {
246
234
  type: JSON.stringify(deletedOrUnusedIds, undefined, 4),
247
235
  });
248
236
  }
249
- const keysFile = Keys.getKeysFile(context) ?? Keys.createKeysFile(context);
250
- const keysInterface = Keys.getOrCreateKeysInterface(keysFile);
237
+ const keysInterface = Keys.getOrCreateKeysInterface(this.file);
251
238
  keysInterface.getProperties().forEach((p) => p.remove());
252
239
  keysInterface.addProperties(newProperties);
253
- await formatter?.(keysFile);
254
- keysFile.saveSync();
255
240
  }
256
241
  }
257
242
  exports.Keys = Keys;
package/dist/Keys.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Keys.js","sourceRoot":"","sources":["../src/Keys.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Keys.js","sourceRoot":"","sources":["../src/Keys.ts"],"names":[],"mappings":"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"}
package/dist/XML.d.ts CHANGED
@@ -1,19 +1,19 @@
1
1
  import { Action, type Context } from './plugins';
2
- import { XMLJsonElement } from './util/XMLJsonBuilder';
2
+ import type { XMLBuilder } from 'xmlbuilder2/lib/interfaces';
3
3
  export type XmlValue = string | number | boolean;
4
4
  export declare function isValidXmlValue(value: unknown): value is XmlValue;
5
5
  export declare function unloadBuilder(context: Context): {
6
- xml: XMLJsonElement;
7
- end: () => any;
6
+ xml: XMLBuilder;
7
+ end: () => string;
8
8
  record: (tableName: string, id: string | number, action?: Action) => {
9
9
  fields(fields: Record<string, XmlValue>): void;
10
10
  field(columnName: string, value: unknown, attributes?: Record<string, string>): {
11
11
  choices(_choices: unknown): void;
12
12
  };
13
- addSysScope(context: Context): XMLJsonElement;
13
+ addSysScope(context: Context): XMLBuilder;
14
14
  };
15
15
  };
16
- export declare function recordXml(xml: XMLJsonElement, tableName: string, id: string | number, options?: {
16
+ export declare function recordXml(xml: XMLBuilder, tableName: string, id: string | number, options?: {
17
17
  attr?: Record<string, string>;
18
18
  excludeScopeElement?: boolean;
19
19
  }): {
@@ -21,5 +21,5 @@ export declare function recordXml(xml: XMLJsonElement, tableName: string, id: st
21
21
  field(columnName: string, value: unknown, attributes?: Record<string, string>): {
22
22
  choices(_choices: unknown): void;
23
23
  };
24
- addSysScope(context: Context): XMLJsonElement;
24
+ addSysScope(context: Context): XMLBuilder;
25
25
  };
package/dist/XML.js CHANGED
@@ -4,23 +4,13 @@ exports.isValidXmlValue = isValidXmlValue;
4
4
  exports.unloadBuilder = unloadBuilder;
5
5
  exports.recordXml = recordXml;
6
6
  const sdk_metrics_1 = require("@servicenow/sdk-metrics");
7
- const fast_xml_parser_1 = require("fast-xml-parser");
8
- const XMLJsonBuilder_1 = require("./util/XMLJsonBuilder");
7
+ const xmlbuilder2_1 = require("xmlbuilder2");
9
8
  function isValidXmlValue(value) {
10
9
  return typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean';
11
10
  }
12
11
  function unloadBuilder(context) {
13
- const builder = new XMLJsonBuilder_1.XMLJsonBuilder('1.0');
14
- const xml = builder.createRoot('record_update', undefined, undefined);
15
- const end = () => new fast_xml_parser_1.XMLBuilder({
16
- ignoreAttributes: false,
17
- format: true,
18
- suppressBooleanAttributes: false,
19
- suppressEmptyNode: true,
20
- cdataPropName: '__cdata',
21
- })
22
- .build(builder.buildJsonObj())
23
- .trim();
12
+ const xml = (0, xmlbuilder2_1.create)({ version: '1.0' }).ele('record_update');
13
+ const end = () => xml.end({ prettyPrint: true });
24
14
  // Root Builder
25
15
  return {
26
16
  xml,
@@ -33,8 +23,8 @@ function unloadBuilder(context) {
33
23
  };
34
24
  }
35
25
  function recordXml(xml, tableName, id, options = {}) {
36
- const recordXml = xml.addJsonObj(tableName, undefined, options.attr || { action: 'INSERT_OR_UPDATE' });
37
- recordXml.addJsonObj('sys_id', `${id}`, undefined);
26
+ const recordXml = xml.ele(tableName, options.attr || { action: 'INSERT_OR_UPDATE' });
27
+ recordXml.ele('sys_id', undefined).txt(`${id}`);
38
28
  // Record Builder
39
29
  return {
40
30
  fields(fields) {
@@ -50,10 +40,10 @@ function recordXml(xml, tableName, id, options = {}) {
50
40
  }
51
41
  let fieldXml;
52
42
  if (columnName === 'script' || columnName === 'operation_script') {
53
- fieldXml = recordXml.addJsonObj(columnName, value, attributes, true);
43
+ fieldXml = recordXml.ele(columnName, attributes).dat(value);
54
44
  }
55
45
  else {
56
- fieldXml = recordXml.addJsonObj(columnName, `${value}`, attributes);
46
+ fieldXml = recordXml.ele(columnName, attributes).txt(`${value}`);
57
47
  }
58
48
  // Field Builder
59
49
  return {
@@ -63,9 +53,9 @@ function recordXml(xml, tableName, id, options = {}) {
63
53
  };
64
54
  },
65
55
  addSysScope(context) {
66
- return recordXml.addJsonObj('sys_scope', context.app.config.scopeId, {
67
- display_value: context.app.config.scope,
68
- });
56
+ return recordXml
57
+ .ele('sys_scope', { display_value: context.app.config.scope })
58
+ .txt(context.app.config.scopeId);
69
59
  },
70
60
  };
71
61
  }
package/dist/XML.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"XML.js","sourceRoot":"","sources":["../src/XML.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"XML.js","sourceRoot":"","sources":["../src/XML.ts"],"names":[],"mappings":";;AAOA,0CAEC;AAED,sCAcC;AAED,8BA8CC;AAxED,yDAAkD;AAClD,6CAAoC;AAKpC,SAAgB,eAAe,CAAC,KAAc;IAC1C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS,CAAA;AAC/F,CAAC;AAED,SAAgB,aAAa,CAAC,OAAgB;IAC1C,MAAM,GAAG,GAAG,IAAA,oBAAM,EAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;IAC3D,MAAM,GAAG,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAA;IAEhD,eAAe;IACf,OAAO;QACH,GAAG;QACH,GAAG;QACH,MAAM,EAAE,CAAC,SAAiB,EAAE,EAAmB,EAAE,SAAiB,kBAAkB,EAAE,EAAE;YACpF,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,CAAA;YAC/D,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;YACxB,OAAO,GAAG,CAAA;QACd,CAAC;KACJ,CAAA;AACL,CAAC;AAED,SAAgB,SAAS,CACrB,GAAe,EACf,SAAiB,EACjB,EAAmB,EACnB,UAGI,EAAE;IAEN,MAAM,SAAS,GAAG,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,IAAI,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC,CAAA;IACpF,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;IAE/C,iBAAiB;IACjB,OAAO;QACH,MAAM,CAAC,MAAgC;YACnC,KAAK,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBACvD,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,CAAA;YACjC,CAAC;QACL,CAAC;QACD,KAAK,CAAC,UAAkB,EAAE,KAAc,EAAE,aAAqC,EAAE;YAC7E,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC1B,MAAM,IAAI,sBAAQ,CAAC,0BAA0B,UAAU,aAAa,KAAK,EAAE,EAAE;oBACzE,IAAI,EAAE,gBAAgB;iBACzB,CAAC,CAAA;YACN,CAAC;YAED,IAAI,QAAQ,CAAA;YACZ,IAAI,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,kBAAkB,EAAE,CAAC;gBAC/D,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,KAAe,CAAC,CAAA;YACzE,CAAC;iBAAM,CAAC;gBACJ,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,CAAA;YACpE,CAAC;YAED,gBAAgB;YAChB,OAAO;gBACH,OAAO,CAAC,QAAiB;oBACrB,QAAQ,CAAA,CAAC,kBAAkB;gBAC/B,CAAC;aACJ,CAAA;QACL,CAAC;QACD,WAAW,CAAC,OAAgB;YACxB,OAAO,SAAS;iBACX,GAAG,CAAC,WAAW,EAAE,EAAE,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;iBAC7D,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QACxC,CAAC;KACJ,CAAA;AACL,CAAC"}
@@ -86,7 +86,7 @@ export type Context = ProjectContext & {
86
86
  * @param plugins An optional array of {@linkcode Plugin}s to use.
87
87
  * @returns a {@linkcode Document} & {@linkcode Arranged} array.
88
88
  */
89
- arrange(this: Context, documents: Document[], plugins?: Plugin[]): (Document & Arranged<'unresolved'>)[];
89
+ arrange<D extends Document>(this: Context, documents: D[], plugins?: Plugin[]): (D & Arranged<'unresolved'>)[];
90
90
  /**
91
91
  * Accepts an array of documents and returns an array of files.
92
92
  *
@@ -149,10 +149,6 @@ export type Context = ProjectContext & {
149
149
  * should be checked before printing verbose log messages.
150
150
  */
151
151
  debug: boolean;
152
- /**
153
- * Indicates the current mode in which the build system is running.
154
- */
155
- mode: 'serialize' | 'transform';
156
152
  /**
157
153
  * An array of plugins that will be used (unless overridden) during various
158
154
  * build process operations.
@@ -168,17 +164,9 @@ export type Context = ProjectContext & {
168
164
  * @see {@link Plugin}
169
165
  */
170
166
  entityPlugins: Plugin[];
171
- /**
172
- * Record to store and access data across plugins
173
- */
174
- store: Record<string, unknown>;
175
167
  usageCount: {
176
168
  [key: string]: number;
177
169
  };
178
- /**
179
- * Resets the store to initial state
180
- */
181
- resetStore(): void;
182
170
  /**
183
171
  * An object of XML file names that was marked as handled or ignored by code transformation during the build process.
184
172
  */
@@ -191,8 +179,10 @@ export type Context = ProjectContext & {
191
179
  * @deprecated Use the key methods on the context object instead.
192
180
  */
193
181
  keys: Keys;
182
+ explicitKeyExists: Keys['explicitKeyExists'];
194
183
  registerExplicitId: Keys['registerExplicitId'];
195
184
  registerCompositeId: Keys['registerCompositeId'];
196
185
  getDeletedAndUnusedIds: Keys['getDeletedAndUnusedIds'];
186
+ getKeysSourceFile(): ts.SourceFile;
197
187
  };
198
188
  export type HandledStates = 'handled' | 'ignored' | 'skipped' | 'unchanged';
@@ -28,7 +28,7 @@ import { Extractors, Composers, Serializers, Transformers, Generators, Arrangers
28
28
  * @see {@linkcode Generators}
29
29
  * @see {@linkcode Transformers}
30
30
  */
31
- export type Plugin<DiagnosticsNodeKinds extends SupportedKindName | 'Node' = any, RawNodeKinds extends SupportedKindName = any, EntityNodeKinds extends SupportedKindName = any, ArrangerDocumentKinds extends string = any, SerializerDocumentKinds extends string = any, GeneratorDocumentKinds extends string = any, TransformerDocumentKinds extends string = any> = {
31
+ export type Plugin<DiagnosticsNodeKinds extends SupportedKindName | 'Node' = any, FluentRawNodeKinds extends SupportedKindName = any, ModuleRawNodeKinds extends SupportedKindName = any, JsonRawNodeKinds extends SupportedKindName = any, AnyRawNodeKinds extends SupportedKindName = any, FluentEntityNodeKinds extends SupportedKindName = any, ModuleEntityNodeKinds extends SupportedKindName = any, JsonEntityNodeKinds extends SupportedKindName = any, AnyEntityNodeKinds extends SupportedKindName = any, ArrangerDocumentKinds extends string = any, SerializerDocumentKinds extends string = any, GeneratorDocumentKinds extends string = any, TransformerDocumentKinds extends string = any> = {
32
32
  /**
33
33
  * Name of the plugin
34
34
  */
@@ -59,7 +59,7 @@ export type Plugin<DiagnosticsNodeKinds extends SupportedKindName | 'Node' = any
59
59
  * }
60
60
  * }
61
61
  */
62
- extractors?: Extractors<RawNodeKinds, EntityNodeKinds>;
62
+ extractors?: Extractors<FluentRawNodeKinds, ModuleRawNodeKinds, JsonRawNodeKinds, AnyRawNodeKinds, FluentEntityNodeKinds, ModuleEntityNodeKinds, JsonEntityNodeKinds, AnyEntityNodeKinds>;
63
63
  /**
64
64
  * Plugins may define composers for both entity data (from the
65
65
  * source code) and XML data (from XML files). The job of a
@@ -172,4 +172,4 @@ export type Plugin<DiagnosticsNodeKinds extends SupportedKindName | 'Node' = any
172
172
  * @param plugin The {@linkcode Plugin} configuration
173
173
  * @returns a {@linkcode Plugin} object
174
174
  */
175
- export declare function Plugin<const DiagnosticsNodeKinds extends SupportedKindName | 'Node', const RawNodeKinds extends SupportedKindName, const EntityNodeKinds extends SupportedKindName, const SerializerDocumentKinds extends string, const GeneratorDocumentKinds extends string, const TransformerDocumentKinds extends string, const P extends Plugin<DiagnosticsNodeKinds, RawNodeKinds, EntityNodeKinds, SerializerDocumentKinds, GeneratorDocumentKinds, TransformerDocumentKinds>>(plugin: P & Plugin<DiagnosticsNodeKinds, RawNodeKinds, EntityNodeKinds, SerializerDocumentKinds, GeneratorDocumentKinds, TransformerDocumentKinds>): P;
175
+ export declare function Plugin<const DiagnosticsNodeKinds extends SupportedKindName | 'Node', const FluentRawNodeKinds extends SupportedKindName, const ModuleRawNodeKinds extends SupportedKindName, const JsonRawNodeKinds extends SupportedKindName, const AnyRawNodeKinds extends SupportedKindName, const FluentEntityNodeKinds extends SupportedKindName, const ModuleEntityNodeKinds extends SupportedKindName, const JsonEntityNodeKinds extends SupportedKindName, const AnyEntityNodeKinds extends SupportedKindName, const SerializerDocumentKinds extends string, const GeneratorDocumentKinds extends string, const TransformerDocumentKinds extends string, const P extends Plugin<DiagnosticsNodeKinds, FluentRawNodeKinds, ModuleRawNodeKinds, JsonRawNodeKinds, AnyRawNodeKinds, FluentEntityNodeKinds, ModuleEntityNodeKinds, JsonEntityNodeKinds, AnyEntityNodeKinds, SerializerDocumentKinds, GeneratorDocumentKinds, TransformerDocumentKinds>>(plugin: P & Plugin<DiagnosticsNodeKinds, FluentRawNodeKinds, ModuleRawNodeKinds, JsonRawNodeKinds, AnyRawNodeKinds, FluentEntityNodeKinds, ModuleEntityNodeKinds, JsonEntityNodeKinds, AnyEntityNodeKinds, GeneratorDocumentKinds, TransformerDocumentKinds>): P;
@@ -1 +1 @@
1
- {"version":3,"file":"Plugin.js","sourceRoot":"","sources":["../../src/plugins/Plugin.ts"],"names":[],"mappings":";;AA0NA,wBA2BC;AAnCD;;;;;;;GAOG;AACH,SAAgB,MAAM,CAgBlB,MAQK;IAEL,OAAO,MAAW,CAAA;AACtB,CAAC"}
1
+ {"version":3,"file":"Plugin.js","sourceRoot":"","sources":["../../src/plugins/Plugin.ts"],"names":[],"mappings":";;AAyOA,wBA4CC;AApDD;;;;;;;GAOG;AACH,SAAgB,MAAM,CA4BlB,MAaK;IAEL,OAAO,MAAW,CAAA;AACtB,CAAC"}
@@ -54,9 +54,9 @@ export type DocumentPointer<DocumentKind extends string = string> = {
54
54
  *
55
55
  * @see {@linkcode Document}
56
56
  */
57
- export type DocumentMap = {
57
+ export type DocumentMap<D extends Document = Document> = {
58
58
  [kinds: string]: {
59
- [guids: string]: Document;
59
+ [guids: string]: D;
60
60
  };
61
61
  };
62
62
  /**
@@ -8,7 +8,7 @@ import { Context } from '../Context';
8
8
  */
9
9
  export type File = {
10
10
  name: `${string}.xml`;
11
- directory: 'dictionary' | 'unload' | 'unload.demo' | 'update' | 'apply_once' | '';
11
+ directory: 'dictionary' | 'unload' | 'unload.demo' | 'update' | 'apply_once' | 'scope' | '';
12
12
  content: string;
13
13
  };
14
14
  /**
@@ -32,6 +32,8 @@ export declare class XmlData<D extends PrimitiveData = PrimitiveData> {
32
32
  export type WrappedData<D> = {
33
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
34
  };
35
+ export type TypeName = 'string' | 'number' | 'boolean' | 'array' | 'object' | 'entity';
36
+ export type Type<T extends TypeName> = T extends 'string' ? StringData : T extends 'number' ? NumberData : T extends 'boolean' ? BooleanData : T extends 'array' ? ArrayData : T extends 'object' ? ObjectData : T extends 'entity' ? EntityData : never;
35
37
  export declare abstract class Data<D = unknown> {
36
38
  private readonly node;
37
39
  constructor(node: SupportedNode);
@@ -42,14 +44,14 @@ export declare abstract class Data<D = unknown> {
42
44
  * element/property values (and any nested values) came from.
43
45
  */
44
46
  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;
47
+ static isUndefined(data?: unknown): data is UndefinedData;
48
+ static isString(data?: unknown): data is StringData;
49
+ static isNumber(data?: unknown): data is NumberData;
50
+ static isBoolean(data?: unknown): data is BooleanData;
51
+ static isArray(data?: unknown): data is ArrayData;
52
+ static isObject(data?: unknown): data is ObjectData;
53
+ static isEntity(data?: unknown): data is EntityData;
54
+ abstract getValue(resolveReferences?: boolean): D;
53
55
  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
56
  }
55
57
  export declare class UndefinedData extends Data<undefined> {
@@ -81,7 +83,7 @@ export declare class ArrayData<const D extends unknown[] = unknown[]> extends Da
81
83
  * the element values (and any nested values) came from.
82
84
  */
83
85
  static fromArrayValue<const D extends unknown[]>(value: D, node: SupportedNode): ArrayData<D>;
84
- getValue(): D;
86
+ getValue(resolveReferences?: boolean): D;
85
87
  getElements(): WrappedData<D>;
86
88
  }
87
89
  export declare class ObjectData<const D extends Record<string, unknown> = Record<string, unknown>> extends Data<D> {
@@ -94,8 +96,9 @@ export declare class ObjectData<const D extends Record<string, unknown> = Record
94
96
  * the property values (and any nested values) came from.
95
97
  */
96
98
  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
+ getValue(resolveReferences?: boolean): D;
100
+ getProperty<const K extends keyof D, const T extends TypeName>(name: K, type?: T): TypeName extends T ? WrappedData<D>[K] : Type<T> | undefined;
101
+ getPropertyOrThrow<const K extends keyof D, const T extends TypeName>(name: K, type?: T): TypeName extends T ? NonNullable<WrappedData<D>[K]> : Type<T>;
99
102
  getProperties(): WrappedData<D>;
100
103
  }
101
104
  export declare class EntityData<const D extends Record<string, unknown> = Record<string, unknown>> extends ObjectData<D> {
@@ -18,6 +18,24 @@ class XmlData {
18
18
  }
19
19
  }
20
20
  exports.XmlData = XmlData;
21
+ function getClassFromTypeName(type) {
22
+ switch (type) {
23
+ case 'string':
24
+ return StringData;
25
+ case 'number':
26
+ return NumberData;
27
+ case 'boolean':
28
+ return BooleanData;
29
+ case 'array':
30
+ return ArrayData;
31
+ case 'object':
32
+ return ObjectData;
33
+ case 'entity':
34
+ return EntityData;
35
+ default:
36
+ throw new Error(`Unrecognized type name: ${type}`);
37
+ }
38
+ }
21
39
  class Data {
22
40
  node;
23
41
  constructor(node) {
@@ -137,8 +155,8 @@ class ArrayData extends Data {
137
155
  const elements = value.map((value) => Data.fromValue(value, node));
138
156
  return new ArrayData(elements, node);
139
157
  }
140
- getValue() {
141
- return this.elements.map((element) => element.getValue());
158
+ getValue(resolveReferences = false) {
159
+ return this.elements.map((element) => !resolveReferences && Data.isEntity(element) ? element.getGuid() : element.getValue());
142
160
  }
143
161
  getElements() {
144
162
  return this.elements;
@@ -161,11 +179,28 @@ class ObjectData extends Data {
161
179
  const properties = Object.fromEntries(Object.entries(value).map(([key, value]) => [key, Data.fromValue(value, node)]));
162
180
  return new ObjectData(properties, node);
163
181
  }
164
- getValue() {
165
- return Object.fromEntries(Object.entries(this.properties).map(([key, value]) => [key, value.getValue()]));
182
+ getValue(resolveReferences = false) {
183
+ return Object.fromEntries(Object.entries(this.properties).map(([key, value]) => [
184
+ key,
185
+ !resolveReferences && Data.isEntity(value) ? value.getGuid() : value.getValue(),
186
+ ]));
187
+ }
188
+ getProperty(name, type) {
189
+ const property = this.properties[name];
190
+ if (type) {
191
+ const expectedClass = getClassFromTypeName(type);
192
+ if (!(property instanceof expectedClass)) {
193
+ return undefined;
194
+ }
195
+ }
196
+ return property;
166
197
  }
167
- getProperty(name) {
168
- return this.properties[name];
198
+ getPropertyOrThrow(name, type) {
199
+ const property = this.getProperty(name, type);
200
+ if (!property) {
201
+ throw new Error(`Property "${name.toString()}" not found on object`);
202
+ }
203
+ return property;
169
204
  }
170
205
  getProperties() {
171
206
  return this.properties;
@@ -1 +1 @@
1
- {"version":3,"file":"Data.js","sourceRoot":"","sources":["../../../../src/plugins/behaviors/extractors/Data.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Data.js","sourceRoot":"","sources":["../../../../src/plugins/behaviors/extractors/Data.ts"],"names":[],"mappings":"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"}
@@ -30,12 +30,34 @@ export type EntityExtractorFunction<N extends SupportedKindName | 'any' = Suppor
30
30
  /**
31
31
  * @see {@linkcode Plugin#extractors}
32
32
  */
33
- export type Extractors<RawNodeKinds extends SupportedKindName | 'any', EntityNodeKinds extends SupportedKindName | 'any'> = {
33
+ export type Extractors<FluentRawNodeKinds extends SupportedKindName | 'any', ModuleRawNodeKinds extends SupportedKindName | 'any', JsonRawNodeKinds extends SupportedKindName | 'any', AnyRawNodeKinds extends SupportedKindName | 'any', FluentEntityNodeKinds extends SupportedKindName | 'any', ModuleEntityNodeKinds extends SupportedKindName | 'any', JsonEntityNodeKinds extends SupportedKindName | 'any', AnyEntityNodeKinds extends SupportedKindName | 'any'> = {
34
34
  xml?: XmlExtractorFunction;
35
35
  raw?: {
36
- [K in RawNodeKinds]: RawExtractorFunction<K>;
36
+ fluent?: {
37
+ [K in FluentRawNodeKinds]: RawExtractorFunction<K>;
38
+ };
39
+ module?: {
40
+ [K in ModuleRawNodeKinds]: RawExtractorFunction<K>;
41
+ };
42
+ json?: {
43
+ [K in JsonRawNodeKinds]: RawExtractorFunction<K>;
44
+ };
45
+ any?: {
46
+ [K in AnyRawNodeKinds]: RawExtractorFunction<K>;
47
+ };
37
48
  };
38
49
  entity?: {
39
- [K in EntityNodeKinds]: EntityExtractorFunction<K>;
50
+ fluent?: {
51
+ [K in FluentEntityNodeKinds]: EntityExtractorFunction<K>;
52
+ };
53
+ module?: {
54
+ [K in ModuleEntityNodeKinds]: EntityExtractorFunction<K>;
55
+ };
56
+ json?: {
57
+ [K in JsonEntityNodeKinds]: EntityExtractorFunction<K>;
58
+ };
59
+ any?: {
60
+ [K in AnyEntityNodeKinds]: EntityExtractorFunction<K>;
61
+ };
40
62
  };
41
63
  };
@@ -1,6 +1,5 @@
1
1
  import * as ts from 'ts-morph';
2
2
  import { Context } from '../Context';
3
3
  import { EntityData, ExtractionResult } from '../behaviors';
4
- export declare const CURRENT_CALL_EXPRESSION = "current_call_expression";
5
4
  export declare function getCallExpressionName(node: ts.CallExpression): string;
6
5
  export declare function extractCallExpression<const A extends unknown[], const E extends A extends [infer T extends Record<string, unknown>] ? T : never, const K extends string>(fn: (...args: A) => E, kind: K, node: ts.CallExpression, context: Context, guid: (entity: E) => string, validate?: (entity: unknown) => entity is E): ExtractionResult<EntityData<E>>;