@servicenow/sdk-build-core 4.2.0 → 4.3.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 (79) hide show
  1. package/dist/compiler.d.ts +5 -1
  2. package/dist/compiler.js +104 -7
  3. package/dist/compiler.js.map +1 -1
  4. package/dist/now-config-dependencies.d.ts +2 -1
  5. package/dist/now-config.d.ts +5 -0
  6. package/dist/now-config.js +2 -4
  7. package/dist/now-config.js.map +1 -1
  8. package/dist/plugins/cache.d.ts +8 -13
  9. package/dist/plugins/cache.js +2 -26
  10. package/dist/plugins/cache.js.map +1 -1
  11. package/dist/plugins/data-shape.d.ts +24 -33
  12. package/dist/plugins/data-shape.js +83 -73
  13. package/dist/plugins/data-shape.js.map +1 -1
  14. package/dist/plugins/plugin.d.ts +43 -1
  15. package/dist/plugins/plugin.js +49 -5
  16. package/dist/plugins/plugin.js.map +1 -1
  17. package/dist/plugins/shape.d.ts +19 -11
  18. package/dist/plugins/shape.js +61 -23
  19. package/dist/plugins/shape.js.map +1 -1
  20. package/dist/taxonomy.js +53 -1
  21. package/dist/taxonomy.js.map +1 -1
  22. package/dist/telemetry/clients/abstract-client.d.ts +25 -0
  23. package/dist/telemetry/clients/abstract-client.js +55 -0
  24. package/dist/telemetry/clients/abstract-client.js.map +1 -0
  25. package/dist/telemetry/clients/browser-client.d.ts +20 -0
  26. package/dist/telemetry/clients/browser-client.js +136 -0
  27. package/dist/telemetry/clients/browser-client.js.map +1 -0
  28. package/dist/telemetry/clients/node-client.d.ts +15 -0
  29. package/dist/telemetry/clients/node-client.js +159 -0
  30. package/dist/telemetry/clients/node-client.js.map +1 -0
  31. package/dist/telemetry/clients/noop-client.d.ts +10 -0
  32. package/dist/telemetry/clients/noop-client.js +18 -0
  33. package/dist/telemetry/clients/noop-client.js.map +1 -0
  34. package/dist/telemetry/clients/util.d.ts +11 -0
  35. package/dist/telemetry/clients/util.js +34 -0
  36. package/dist/telemetry/clients/util.js.map +1 -0
  37. package/dist/telemetry/config.d.ts +2 -0
  38. package/dist/telemetry/config.js +28 -0
  39. package/dist/telemetry/config.js.map +1 -0
  40. package/dist/telemetry/factory.d.ts +13 -0
  41. package/dist/telemetry/factory.js +29 -0
  42. package/dist/telemetry/factory.js.map +1 -0
  43. package/dist/telemetry/index.d.ts +2 -25
  44. package/dist/telemetry/index.js +3 -15
  45. package/dist/telemetry/index.js.map +1 -1
  46. package/dist/telemetry/types.d.ts +55 -0
  47. package/dist/telemetry/types.js +12 -0
  48. package/dist/telemetry/types.js.map +1 -0
  49. package/dist/typescript.d.ts +10 -0
  50. package/dist/typescript.js +18 -0
  51. package/dist/typescript.js.map +1 -1
  52. package/dist/util/delete-multiple.d.ts +5 -0
  53. package/dist/util/delete-multiple.js +30 -0
  54. package/dist/util/delete-multiple.js.map +1 -0
  55. package/dist/util/index.d.ts +1 -0
  56. package/dist/util/index.js +1 -0
  57. package/dist/util/index.js.map +1 -1
  58. package/now.config.schema.json +38 -0
  59. package/package.json +13 -9
  60. package/src/compiler.ts +121 -7
  61. package/src/now-config-dependencies.ts +2 -1
  62. package/src/now-config.ts +3 -4
  63. package/src/plugins/cache.ts +5 -27
  64. package/src/plugins/data-shape.ts +95 -84
  65. package/src/plugins/plugin.ts +116 -9
  66. package/src/plugins/shape.ts +64 -30
  67. package/src/taxonomy.ts +53 -1
  68. package/src/telemetry/clients/abstract-client.ts +63 -0
  69. package/src/telemetry/clients/browser-client.ts +160 -0
  70. package/src/telemetry/clients/node-client.ts +151 -0
  71. package/src/telemetry/clients/noop-client.ts +15 -0
  72. package/src/telemetry/clients/util.ts +33 -0
  73. package/src/telemetry/config.ts +12 -0
  74. package/src/telemetry/factory.ts +34 -0
  75. package/src/telemetry/index.ts +2 -27
  76. package/src/telemetry/types.ts +61 -0
  77. package/src/typescript.ts +17 -0
  78. package/src/util/delete-multiple.ts +35 -0
  79. package/src/util/index.ts +1 -0
@@ -0,0 +1,55 @@
1
+ export declare const NETWORK_TIMEOUT_MS = 2000;
2
+ export type InstanceSettings = {
3
+ APIKey: string;
4
+ APIAuth: string;
5
+ BaseUrl: string;
6
+ };
7
+ export type Session = {
8
+ SessionId: string;
9
+ ClientId: string;
10
+ TabId: string;
11
+ };
12
+ export declare enum DatapointType {
13
+ Page = 0,
14
+ Event = 1,
15
+ User = 2,
16
+ PerformanceTrace = 3
17
+ }
18
+ export type Datapoint = {
19
+ t: DatapointType;
20
+ /**
21
+ * Epoch time in milliseconds
22
+ */
23
+ d: number;
24
+ /**
25
+ * Event name
26
+ */
27
+ n: string;
28
+ /**
29
+ * Event properties
30
+ */
31
+ p?: Record<string, unknown>;
32
+ };
33
+ export type HeartbeatBody = {
34
+ SessionId: string;
35
+ DataPoints: Datapoint[];
36
+ TabId: string;
37
+ ClientTime: string;
38
+ ConfigReceivedTime: string;
39
+ };
40
+ export interface Telemetry {
41
+ sendEvent(eventData: TelemetryEvent | TelemetryEvent[]): void;
42
+ error(event: string, error: unknown, data?: TelemetryEventData): void;
43
+ startTimerEvent(name: TelemetryEvent['name']): TimerMetric;
44
+ }
45
+ export interface TimerMetric {
46
+ end(eventData?: Pick<TelemetryEvent, 'appInfo' | 'data'>): TelemetryEvent;
47
+ }
48
+ export type TelemetryEventData = Record<string, unknown>;
49
+ export type TelemetryEvent = {
50
+ name: string;
51
+ appInfo?: {
52
+ scopeId?: string;
53
+ };
54
+ data?: TelemetryEventData;
55
+ };
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DatapointType = exports.NETWORK_TIMEOUT_MS = void 0;
4
+ exports.NETWORK_TIMEOUT_MS = 2000;
5
+ var DatapointType;
6
+ (function (DatapointType) {
7
+ DatapointType[DatapointType["Page"] = 0] = "Page";
8
+ DatapointType[DatapointType["Event"] = 1] = "Event";
9
+ DatapointType[DatapointType["User"] = 2] = "User";
10
+ DatapointType[DatapointType["PerformanceTrace"] = 3] = "PerformanceTrace";
11
+ })(DatapointType || (exports.DatapointType = DatapointType = {}));
12
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/telemetry/types.ts"],"names":[],"mappings":";;;AAAa,QAAA,kBAAkB,GAAG,IAAI,CAAA;AActC,IAAY,aAKX;AALD,WAAY,aAAa;IACrB,iDAAQ,CAAA;IACR,mDAAS,CAAA;IACT,iDAAQ,CAAA;IACR,yEAAoB,CAAA;AACxB,CAAC,EALW,aAAa,6BAAb,aAAa,QAKxB"}
@@ -23,6 +23,16 @@ declare module 'ts-morph' {
23
23
  import * as ts from 'ts-morph';
24
24
  import { ts as tsc } from 'ts-morph';
25
25
  export { ts, tsc };
26
+ /**
27
+ * Checks if a value is a valid ts-morph Node that can be operated on.
28
+ *
29
+ * Unlike `ts.Node.isNode()`, this function safely handles nodes that have been
30
+ * removed or forgotten from the AST, returning `false` instead of throwing.
31
+ *
32
+ * @param value - The value to check
33
+ * @returns `true` if the value is a valid, usable Node; `false` otherwise
34
+ */
35
+ export declare function isValidNode(value: unknown): value is ts.Node;
26
36
  export declare function getValueDeclaration(node: ts.Node): ts.Node<ts.ts.Node> | undefined;
27
37
  export declare function parseType(type: ts.Type, location: ts.Node, unparsableTypeHandler?: (unparsableType: ts.Type) => unknown): unknown;
28
38
  /**
@@ -24,6 +24,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.SupportedKinds = exports.tsc = exports.ts = void 0;
27
+ exports.isValidNode = isValidNode;
27
28
  exports.getValueDeclaration = getValueDeclaration;
28
29
  exports.parseType = parseType;
29
30
  exports.isSupportedKind = isSupportedKind;
@@ -42,6 +43,23 @@ exports.ts = ts;
42
43
  // biome-ignore lint/style/noRestrictedImports: This is where our re-export comes from
43
44
  const ts_morph_1 = require("ts-morph");
44
45
  Object.defineProperty(exports, "tsc", { enumerable: true, get: function () { return ts_morph_1.ts; } });
46
+ /**
47
+ * Checks if a value is a valid ts-morph Node that can be operated on.
48
+ *
49
+ * Unlike `ts.Node.isNode()`, this function safely handles nodes that have been
50
+ * removed or forgotten from the AST, returning `false` instead of throwing.
51
+ *
52
+ * @param value - The value to check
53
+ * @returns `true` if the value is a valid, usable Node; `false` otherwise
54
+ */
55
+ function isValidNode(value) {
56
+ try {
57
+ return ts.Node.isNode(value);
58
+ }
59
+ catch {
60
+ return false;
61
+ }
62
+ }
45
63
  function getValueDeclaration(node) {
46
64
  const symbol = node.getSymbol();
47
65
  if (!symbol) {
@@ -1 +1 @@
1
- {"version":3,"file":"typescript.js","sourceRoot":"","sources":["../src/typescript.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"typescript.js","sourceRoot":"","sources":["../src/typescript.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { type Context, Database } from '../plugins';
2
+ export declare function deleteMultipleDiff(existing: Database, incoming: Database, descendants: Database, { factory }: Pick<Context, 'factory'>): Promise<{
3
+ success: boolean;
4
+ value: Database;
5
+ }>;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deleteMultipleDiff = deleteMultipleDiff;
4
+ const plugins_1 = require("../plugins");
5
+ async function deleteMultipleDiff(existing, incoming, descendants, { factory }) {
6
+ if (incoming.query().length === 0) {
7
+ // No changes for this record so we don't search descendents for absent deletes.
8
+ return {
9
+ success: true,
10
+ value: new plugins_1.Database(),
11
+ };
12
+ }
13
+ const changeDatabase = existing.compare(incoming);
14
+ const markForRemoval = descendants.query().filter((descendent) => !incoming.resolve(descendent.getId()));
15
+ for (const record of markForRemoval) {
16
+ const deleteRecord = await factory.createRecord({
17
+ source: record.getSource(),
18
+ table: record.getTable(),
19
+ explicitId: record.getId(),
20
+ properties: record.properties(),
21
+ action: 'DELETE',
22
+ });
23
+ changeDatabase.insert(deleteRecord);
24
+ }
25
+ return {
26
+ success: true,
27
+ value: changeDatabase.hasChanges() ? new plugins_1.Database(changeDatabase.query()) : new plugins_1.Database(),
28
+ };
29
+ }
30
+ //# sourceMappingURL=delete-multiple.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete-multiple.js","sourceRoot":"","sources":["../../src/util/delete-multiple.ts"],"names":[],"mappings":";;AAEA,gDAgCC;AAlCD,wCAAmD;AAE5C,KAAK,UAAU,kBAAkB,CACpC,QAAkB,EAClB,QAAkB,EAClB,WAAqB,EACrB,EAAE,OAAO,EAA4B;IAErC,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,gFAAgF;QAChF,OAAO;YACH,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,IAAI,kBAAQ,EAAE;SACxB,CAAA;IACL,CAAC;IAED,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IACjD,MAAM,cAAc,GAAG,WAAW,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;IACxG,KAAK,MAAM,MAAM,IAAI,cAAc,EAAE,CAAC;QAClC,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC;YAC5C,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE;YAC1B,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE;YACxB,UAAU,EAAE,MAAM,CAAC,KAAK,EAAE;YAC1B,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE;YAC/B,MAAM,EAAE,QAAQ;SACnB,CAAC,CAAA;QAEF,cAAc,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;IACvC,CAAC;IAED,OAAO;QACH,OAAO,EAAE,IAAI;QACb,KAAK,EAAE,cAAc,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,kBAAQ,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,kBAAQ,EAAE;KAC7F,CAAA;AACL,CAAC"}
@@ -1,2 +1,3 @@
1
1
  export * from './is-sn-scope';
2
2
  export * from './get-file-type';
3
+ export * from './delete-multiple';
@@ -16,4 +16,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./is-sn-scope"), exports);
18
18
  __exportStar(require("./get-file-type"), exports);
19
+ __exportStar(require("./delete-multiple"), exports);
19
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/util/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA6B;AAC7B,kDAA+B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/util/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA6B;AAC7B,kDAA+B;AAC/B,oDAAiC"}
@@ -156,6 +156,21 @@
156
156
  "pattern": "^[a-z_\\d]+$"
157
157
  }
158
158
  },
159
+ "trustedModules": {
160
+ "type": "array",
161
+ "description": "List of npm module patterns to mark as trusted. Trusted modules will have external_source set to false. Valid patterns: fully qualified package names (e.g., 'lodash', '@servicenow/sdk') or organization prefixes with wildcard (e.g., '@servicenow/*'). Blanket wildcards like '*' are not allowed.",
162
+ "items": {
163
+ "type": "string",
164
+ "minLength": 1
165
+ },
166
+ "default": [],
167
+ "examples": [
168
+ [
169
+ "@servicenow/*",
170
+ "lodash"
171
+ ]
172
+ ]
173
+ },
159
174
  "dependencies": {
160
175
  "type": "object",
161
176
  "description": "Reference dependencies on other ServiceNow application tables and entities, organized by scope",
@@ -406,6 +421,29 @@
406
421
  "default": "bootstrap",
407
422
  "description": "Artifact type built for table definitions. Traditional bootstrap or separate component records."
408
423
  },
424
+ "packageResolverVersion": {
425
+ "type": "string",
426
+ "enum": [
427
+ "1.0.0",
428
+ "2.0.0"
429
+ ],
430
+ "default": "1.0.0",
431
+ "description": "Rhino module resolver version. Must be 2.0.0+ for Global apps"
432
+ },
433
+ "hoistDependencies": {
434
+ "type": "boolean",
435
+ "default": "true",
436
+ "description": "Hoist all dependencies to root node_modules instead of preserving module paths. Set to 'false' to preserve conflicting dependency versions"
437
+ },
438
+ "type": {
439
+ "type": "string",
440
+ "enum": [
441
+ "package",
442
+ "configuration"
443
+ ],
444
+ "default": "package",
445
+ "description": "Whether this project represents a scoped/global app package or a set of a record changes"
446
+ },
409
447
  "taxonomy": {
410
448
  "type": "object",
411
449
  "description": "Configuration for taxonomy-based file organization",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@servicenow/sdk-build-core",
3
- "version": "4.2.0",
3
+ "version": "4.3.0",
4
4
  "description": "ServiceNow SDK Build System Core Libraries",
5
5
  "license": "MIT",
6
6
  "main": "./dist/index.js",
@@ -13,26 +13,27 @@
13
13
  ".": "./dist/index.js"
14
14
  },
15
15
  "dependencies": {
16
- "fast-glob": "3.3.2",
16
+ "ci-info": "4.4.0",
17
+ "fast-glob": "3.3.3",
18
+ "fflate": "0.8.2",
17
19
  "json5": "2.2.3",
18
- "jsonschema": "1.4.1",
19
- "lodash": "4.17.21",
20
+ "jsonschema": "1.5.0",
21
+ "lodash": "4.17.23",
20
22
  "pathe": "1.1.2",
21
23
  "prettier": "3.6.1",
22
24
  "readable-stream": "4.5.2",
23
25
  "ts-morph": "23.0.0",
24
26
  "vscode-languageserver": "9.0.1",
25
- "xmlbuilder2": "3.1.1",
26
27
  "xml-js": "1.6.11",
28
+ "xmlbuilder2": "3.1.1",
27
29
  "zod": "3.22.4",
28
- "fflate": "0.8.2",
29
- "@servicenow/sdk-core": "4.2.0"
30
+ "@servicenow/sdk-core": "4.3.0"
30
31
  },
31
32
  "overrides": {
32
33
  "micromatch": "4.0.7"
33
34
  },
34
35
  "devDependencies": {
35
- "@types/lodash": "4.17.6",
36
+ "@types/lodash": "4.17.23",
36
37
  "@types/readable-stream": "4.0.15",
37
38
  "type-fest": "4.26.1"
38
39
  },
@@ -41,7 +42,10 @@
41
42
  "pnpm": ">=10.8.0"
42
43
  },
43
44
  "scripts": {
44
- "build": "tsc -b",
45
+ "build": "tsc -b && tsx esbuild.config.ts",
46
+ "build:production": "tsc -b && tsx esbuild.config.ts",
47
+ "bundle": "tsc -b && tsx esbuild.config.ts",
48
+ "bundle:production": "tsc -b && tsx esbuild.config.ts",
45
49
  "clean": "tsc -b --clean",
46
50
  "watch": "tsc -b -w",
47
51
  "test": "export NODE_OPTIONS=\"--max-old-space-size=8192 --experimental-vm-modules\" && jest --colors --reporters=default --no-cache --logHeapUsage"
package/src/compiler.ts CHANGED
@@ -65,6 +65,22 @@ export class Compiler extends ts.Project {
65
65
  // TODO: move this somewhere better, it doesn't work when I put the file contents in packages/core/src/global
66
66
  this.addGlobalModuleExtensions()
67
67
  this.addFluentSourceFilesAtPaths(sourceFilePaths)
68
+ // FIXME: we need to find a better way to make the compiler aware of available modules
69
+ // FIXME: change how imports are generated without relying on fixMissingImports
70
+ this.addAvailableModules()
71
+ }
72
+
73
+ addAvailableModules() {
74
+ const moduleContent = `
75
+ import '@servicenow/sdk/global'
76
+ import '@servicenow/sdk/core'
77
+ import '@servicenow/sdk/automation'
78
+ `
79
+ const generatedAvailableModulesFilePath = path.join(this.rootDir, '$$GENERATED$$_available_modules.ts')
80
+ this.createSourceFile(generatedAvailableModulesFilePath, moduleContent, {
81
+ overwrite: true,
82
+ scriptKind: ts.ScriptKind.TS,
83
+ })
68
84
  }
69
85
 
70
86
  addGlobalTableDefinitionFile() {
@@ -156,7 +172,7 @@ declare module '*.html' {
156
172
  .getPreEmitDiagnostics()
157
173
  .map((diagnostic) => {
158
174
  try {
159
- return new TypeScriptDiagnostic(diagnostic)
175
+ return new TypeScriptDiagnostic(diagnostic, this.improveMissingPropertiesDiagnostic(diagnostic))
160
176
  } catch (e) {
161
177
  return undefined
162
178
  }
@@ -164,6 +180,28 @@ declare module '*.html' {
164
180
  .filter((d) => d) as TypeScriptDiagnostic[]
165
181
  }
166
182
 
183
+ private improveMissingPropertiesDiagnostic(diagnostic: ts.Diagnostic): string | undefined {
184
+ const messageText = flattenDiagnosticMessage(diagnostic)
185
+
186
+ const missingSinglePropertyPattern =
187
+ /Property '([a-z_]+)' is missing in type '{.*}' but required in type 'Data<"([a-z_]+)">'./
188
+ const missingSingleMatch = messageText.match(missingSinglePropertyPattern)
189
+ if (missingSingleMatch) {
190
+ const [_, propertyName, tableName] = missingSingleMatch
191
+ return `Missing mandatory ${tableName} field: ${propertyName}`
192
+ }
193
+
194
+ const missingMultiplePropertiesPattern =
195
+ /Type '{.*}' is missing the following properties from type 'Data<"([a-z_]+)">': (.*)\s*$/
196
+ const missingMultiplesMatch = messageText.match(missingMultiplePropertiesPattern)
197
+ if (missingMultiplesMatch) {
198
+ const [_, tableName, properties] = missingMultiplesMatch
199
+ return `Missing mandatory ${tableName} fields: ${properties}`
200
+ }
201
+
202
+ return undefined
203
+ }
204
+
167
205
  getOrCreateSourceFile(path: string, options?: ts.SourceFileCreateOptions): ts.SourceFile {
168
206
  return (
169
207
  this.getSourceFile(path) ??
@@ -279,6 +317,56 @@ declare module '*.html' {
279
317
  return this.generatedTableFilePath === sourcePath
280
318
  }
281
319
 
320
+ // Cache for table column types that need coercion (boolean/number only)
321
+ private tableColumnTypesCache = new Map<string, Map<string, 'boolean' | 'number' | 'array' | 'array-optional'>>()
322
+
323
+ getTableColumnTypes(tableName: string): Map<string, 'boolean' | 'number' | 'array' | 'array-optional'> | undefined {
324
+ // Return cached value if available
325
+ if (this.tableColumnTypesCache.has(tableName)) {
326
+ return this.tableColumnTypesCache.get(tableName)
327
+ }
328
+
329
+ // Lazily resolve and cache on first access
330
+ const tempFilePath = path.join(this.rootDir, 'src', '$$TEMP_DATA_RESOLVER$$.ts')
331
+ const typeDeclaration = `type T = import('@servicenow/sdk/core').Data<'${tableName}'>`
332
+
333
+ const tempSource = this.createSourceFile(tempFilePath, typeDeclaration, {
334
+ overwrite: true,
335
+ scriptKind: ts.ScriptKind.TS,
336
+ })
337
+
338
+ try {
339
+ const typeAlias = tempSource.getTypeAlias('T')
340
+ if (!typeAlias) {
341
+ return undefined
342
+ }
343
+
344
+ const resolvedType = typeAlias.getType()
345
+ const properties = resolvedType.getProperties()
346
+ const columnTypes = new Map<string, 'boolean' | 'number' | 'array' | 'array-optional'>()
347
+
348
+ properties.forEach((property) => {
349
+ const propType = property.getTypeAtLocation(typeAlias)
350
+ const typeText = propType.getText()
351
+
352
+ if (typeText === 'boolean' || typeText === 'number') {
353
+ columnTypes.set(property.getName(), typeText)
354
+ } else if (typeText.match(/^\(.*\)\[\]$/)) {
355
+ // Matches `(...)[]` -> this field should always be an array
356
+ columnTypes.set(property.getName(), 'array')
357
+ } else if (typeText.match(/^.*\[\]$/)) {
358
+ // Matches `[]` -> this field may be an array or a single value
359
+ columnTypes.set(property.getName(), 'array-optional')
360
+ }
361
+ })
362
+
363
+ this.tableColumnTypesCache.set(tableName, columnTypes)
364
+ return columnTypes
365
+ } finally {
366
+ this.removeSourceFile(tempSource)
367
+ }
368
+ }
369
+
282
370
  private createModuleProject(fs: FileSystem, tsConfigPath?: string) {
283
371
  return new ts.Project({
284
372
  fileSystem: new TsMorphFileSystemWrapper(fs),
@@ -360,20 +448,42 @@ declare module '*.html' {
360
448
  }
361
449
  }
362
450
 
451
+ function flattenDiagnosticMessage(diagnostic: ts.Diagnostic) {
452
+ const message = diagnostic.getMessageText()
453
+
454
+ if (typeof message === 'string') {
455
+ return message
456
+ } else {
457
+ const flattenMessage = (msg: ts.DiagnosticMessageChain): string => {
458
+ let result = msg.getMessageText()
459
+ if (msg.getNext()) {
460
+ const next = msg.getNext()
461
+ if (Array.isArray(next)) {
462
+ result += `\n ${next.map(flattenMessage).join(' ')}`
463
+ }
464
+ }
465
+ return result
466
+ }
467
+ return flattenMessage(message)
468
+ }
469
+ }
470
+
363
471
  export class TypeScriptDiagnostic extends Diagnostic {
364
- constructor(private readonly diagnostic: ts.Diagnostic) {
365
- const message = diagnostic.getMessageText()
366
- const messageText = typeof message === 'string' ? message : message.getMessageText()
472
+ constructor(
473
+ private readonly diagnostic: ts.Diagnostic,
474
+ customMessage?: string
475
+ ) {
367
476
  const start = diagnostic.getStart() ?? 0
368
477
  const end = start + (diagnostic.getLength() ?? 0)
369
478
  const file = diagnostic.getSourceFile()
479
+ const finalMessage = customMessage ?? flattenDiagnosticMessage(diagnostic)
370
480
 
371
481
  if (!file) {
372
- throw new Error(`TypeScript diagnostic does not have a source file (Message: ${messageText})`)
482
+ throw new Error(`TypeScript diagnostic does not have a source file (Message: ${finalMessage})`)
373
483
  }
374
484
 
375
485
  super(
376
- messageText,
486
+ finalMessage,
377
487
  file,
378
488
  { start, end },
379
489
  diagnostic.getCode(),
@@ -383,6 +493,10 @@ export class TypeScriptDiagnostic extends Diagnostic {
383
493
  }
384
494
 
385
495
  public override asTypeScriptDiagnostic(): ts.ts.Diagnostic {
386
- return this.diagnostic.compilerObject
496
+ const { relatedInformation, ...diagnosticWithoutRelated } = this.diagnostic.compilerObject
497
+ return {
498
+ ...diagnosticWithoutRelated,
499
+ messageText: this.message,
500
+ }
387
501
  }
388
502
  }
@@ -39,7 +39,8 @@ export const dependenciesSchema = z.union([oldDependenciesSchema, flatDependenci
39
39
  * "tables": ["sn_ace_app_config"]
40
40
  * },
41
41
  * "x_example_app": {
42
- * "roles": ["x_example_app.cool"]
42
+ * "roles": ["x_example_app.cool"],
43
+ * "automation.actions": "*"
43
44
  * }
44
45
  * }
45
46
  * ```
package/src/now-config.ts CHANGED
@@ -58,11 +58,9 @@ const NowConfigSchema = z
58
58
  npmUpdateCheck: z.literal(false).or(z.number()).default(10),
59
59
  dependencies: dependenciesSchema,
60
60
  ignoreTransformTableList: z.array(z.string()).default([]),
61
+ trustedModules: z.array(z.string()).default([]),
61
62
  tsconfigPath: z.string().optional(),
62
- scripts: z.record(z.string(), z.string()).default({
63
- prebuild: 'now.prebuild.mjs',
64
- postbuild: 'now.postbuild.mjs',
65
- }),
63
+ scripts: z.record(z.string(), z.string()).default({}),
66
64
  tableOutputFormat: z.enum(['bootstrap', 'component']).default('bootstrap'),
67
65
 
68
66
  moduleDir: z.string().optional(), // Deprecated
@@ -118,6 +116,7 @@ const NowConfigSchema = z
118
116
  | 'npmUpdateCheck'
119
117
  | 'dependencies'
120
118
  | 'ignoreTransformTableList'
119
+ | 'trustedModules'
121
120
  | 'modulePaths'
122
121
  | 'serverModulesIncludePatterns'
123
122
  | 'serverModulesExcludePatterns'
@@ -1,41 +1,19 @@
1
- class SuccessEntry<T = unknown> {
2
- constructor(private readonly value: T) {}
3
-
4
- unwrap(): T {
5
- return this.value
6
- }
7
-
8
- isError(): this is ErrorEntry {
9
- return false
10
- }
11
- }
12
-
13
- class ErrorEntry {
14
- constructor(private readonly error: unknown) {}
15
-
16
- unwrap(): unknown {
17
- return this.error
18
- }
19
-
20
- isError(): this is ErrorEntry {
21
- return true
22
- }
23
- }
1
+ type CacheEntry<V> = { success: true; value: V } | { success: false; error: unknown }
24
2
 
25
3
  export class Cache<K extends object, V> {
26
- private cache = new WeakMap()
4
+ private cache = new WeakMap<K, CacheEntry<V>>()
27
5
 
28
- get(key: K): SuccessEntry<V> | ErrorEntry | undefined {
6
+ get(key: K): CacheEntry<V> | undefined {
29
7
  return this.cache.get(key)
30
8
  }
31
9
 
32
10
  put<const T extends V>(key: K, value: T): T {
33
- this.cache.set(key, new SuccessEntry(value))
11
+ this.cache.set(key, { success: true, value })
34
12
  return value
35
13
  }
36
14
 
37
15
  error<const T>(key: K, error: T): T {
38
- this.cache.set(key, new ErrorEntry(error))
16
+ this.cache.set(key, { success: false, error })
39
17
  return error
40
18
  }
41
19