@nyrra/prismantix-cli 0.0.4-next.21 → 0.0.4-next.22

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 (54) hide show
  1. package/README.md +14 -0
  2. package/dist/commands/foundry/import.d.ts +17 -0
  3. package/dist/commands/foundry/import.d.ts.map +1 -0
  4. package/dist/commands/foundry/import.js +94 -0
  5. package/dist/constants.d.ts +1 -0
  6. package/dist/constants.d.ts.map +1 -1
  7. package/dist/constants.js +1 -0
  8. package/dist/foundry-import/actions.d.ts +3 -0
  9. package/dist/foundry-import/actions.d.ts.map +1 -0
  10. package/dist/foundry-import/actions.js +37 -0
  11. package/dist/foundry-import/convert.d.ts +3 -0
  12. package/dist/foundry-import/convert.d.ts.map +1 -0
  13. package/dist/foundry-import/convert.js +47 -0
  14. package/dist/foundry-import/emit.d.ts +3 -0
  15. package/dist/foundry-import/emit.d.ts.map +1 -0
  16. package/dist/foundry-import/emit.js +263 -0
  17. package/dist/foundry-import/interfaces.d.ts +3 -0
  18. package/dist/foundry-import/interfaces.d.ts.map +1 -0
  19. package/dist/foundry-import/interfaces.js +43 -0
  20. package/dist/foundry-import/names.d.ts +10 -0
  21. package/dist/foundry-import/names.d.ts.map +1 -0
  22. package/dist/foundry-import/names.js +83 -0
  23. package/dist/foundry-import/objects.d.ts +9 -0
  24. package/dist/foundry-import/objects.d.ts.map +1 -0
  25. package/dist/foundry-import/objects.js +128 -0
  26. package/dist/foundry-import/parse.d.ts +3 -0
  27. package/dist/foundry-import/parse.d.ts.map +1 -0
  28. package/dist/foundry-import/parse.js +28 -0
  29. package/dist/foundry-import/properties.d.ts +4 -0
  30. package/dist/foundry-import/properties.d.ts.map +1 -0
  31. package/dist/foundry-import/properties.js +83 -0
  32. package/dist/foundry-import/property-types.d.ts +7 -0
  33. package/dist/foundry-import/property-types.d.ts.map +1 -0
  34. package/dist/foundry-import/property-types.js +77 -0
  35. package/dist/foundry-import/relations.d.ts +11 -0
  36. package/dist/foundry-import/relations.d.ts.map +1 -0
  37. package/dist/foundry-import/relations.js +204 -0
  38. package/dist/foundry-import/types.d.ts +335 -0
  39. package/dist/foundry-import/types.d.ts.map +1 -0
  40. package/dist/foundry-import/types.js +1 -0
  41. package/dist/foundry-import/utils.d.ts +13 -0
  42. package/dist/foundry-import/utils.d.ts.map +1 -0
  43. package/dist/foundry-import/utils.js +82 -0
  44. package/dist/foundry-import/validate.d.ts +8 -0
  45. package/dist/foundry-import/validate.d.ts.map +1 -0
  46. package/dist/foundry-import/validate.js +117 -0
  47. package/dist/foundry-import/workflow.d.ts +3 -0
  48. package/dist/foundry-import/workflow.d.ts.map +1 -0
  49. package/dist/foundry-import/workflow.js +104 -0
  50. package/dist/foundry-import.d.ts +3 -0
  51. package/dist/foundry-import.d.ts.map +1 -0
  52. package/dist/foundry-import.js +1 -0
  53. package/oclif.manifest.json +62 -1
  54. package/package.json +6 -3
@@ -0,0 +1,335 @@
1
+ import type { mkdir, readFile, writeFile } from "node:fs/promises";
2
+ export type DiagnosticSeverity = "info" | "warning" | "error";
3
+ export interface ConversionDiagnostic {
4
+ readonly code: string;
5
+ readonly message: string;
6
+ readonly path: string;
7
+ readonly severity: DiagnosticSeverity;
8
+ }
9
+ export interface FoundryV2Export {
10
+ readonly actionTypes: readonly FoundryActionType[];
11
+ readonly interfaces: readonly FoundryInterface[];
12
+ readonly objectTypes: readonly FoundryObjectType[];
13
+ readonly relations: readonly FoundryRelation[];
14
+ readonly sharedProperties: readonly FoundrySharedProperty[];
15
+ readonly typeGroups: readonly FoundryTypeGroup[];
16
+ readonly version: number;
17
+ }
18
+ export interface FoundryDisplayMetadata {
19
+ readonly description?: string | null;
20
+ readonly displayName?: string | null;
21
+ readonly groupDisplayName?: string | null;
22
+ readonly icon?: unknown;
23
+ readonly pluralDisplayName?: string | null;
24
+ readonly visibility?: string | null;
25
+ readonly [key: string]: unknown;
26
+ }
27
+ export interface FoundryStatus {
28
+ readonly type?: string;
29
+ readonly [key: string]: unknown;
30
+ }
31
+ export interface FoundryBaseType {
32
+ readonly dimension?: number;
33
+ readonly markingType?: string;
34
+ readonly structFields?: readonly FoundryStructField[];
35
+ readonly subType?: FoundryBaseType;
36
+ readonly type?: string;
37
+ readonly [key: string]: unknown;
38
+ }
39
+ export interface FoundryStructField {
40
+ readonly apiName?: string;
41
+ readonly displayMetadata?: FoundryDisplayMetadata;
42
+ readonly fieldType?: FoundryBaseType;
43
+ }
44
+ export interface FoundryProperty {
45
+ readonly apiName?: string;
46
+ readonly baseFormatter?: unknown;
47
+ readonly baseType?: FoundryBaseType;
48
+ readonly dataConstraints?: {
49
+ readonly nullability?: string;
50
+ readonly [key: string]: unknown;
51
+ };
52
+ readonly displayMetadata?: FoundryDisplayMetadata;
53
+ readonly id?: string;
54
+ readonly indexedForSearch?: boolean;
55
+ readonly renderHints?: readonly string[];
56
+ readonly rid?: string;
57
+ readonly sharedPropertyTypeApiName?: string | null;
58
+ readonly source?: {
59
+ readonly type?: string;
60
+ readonly [key: string]: unknown;
61
+ };
62
+ readonly status?: FoundryStatus;
63
+ readonly typeClasses?: readonly unknown[];
64
+ readonly valueType?: unknown;
65
+ readonly [key: string]: unknown;
66
+ }
67
+ export interface FoundryObjectType {
68
+ readonly aliases?: readonly string[];
69
+ readonly apiName?: string;
70
+ readonly datasources?: readonly unknown[];
71
+ readonly displayMetadata?: FoundryDisplayMetadata;
72
+ readonly id?: string;
73
+ readonly interfaces?: readonly string[];
74
+ readonly primaryKeys?: readonly string[];
75
+ readonly properties?: readonly FoundryProperty[];
76
+ readonly rid?: string;
77
+ readonly status?: FoundryStatus;
78
+ readonly titlePropertyId?: string;
79
+ readonly typeGroups?: readonly string[];
80
+ readonly [key: string]: unknown;
81
+ }
82
+ export interface FoundryLinkMetadata {
83
+ readonly apiName?: string;
84
+ readonly displayMetadata?: FoundryDisplayMetadata;
85
+ readonly typeClasses?: readonly unknown[];
86
+ }
87
+ export interface FoundryOneToManyRelation {
88
+ readonly cardinalityHint?: string;
89
+ readonly manySideForeignKeyPropertyId?: string;
90
+ readonly manyToOneLinkMetadata?: FoundryLinkMetadata;
91
+ readonly objectTypeRidManySide?: string;
92
+ readonly objectTypeRidOneSide?: string;
93
+ readonly oneToManyLinkMetadata?: FoundryLinkMetadata;
94
+ }
95
+ export interface FoundryManyToManyRelation {
96
+ readonly objectTypeAToBLinkMetadata?: FoundryLinkMetadata;
97
+ readonly objectTypeBToALinkMetadata?: FoundryLinkMetadata;
98
+ readonly objectTypeRidA?: string;
99
+ readonly objectTypeRidB?: string;
100
+ }
101
+ export interface FoundryIntermediaryRelation {
102
+ readonly intermediaryObjectTypeRid?: string;
103
+ readonly objectTypeAToBLinkMetadata?: FoundryLinkMetadata;
104
+ readonly objectTypeBToALinkMetadata?: FoundryLinkMetadata;
105
+ readonly objectTypeRidA?: string;
106
+ readonly objectTypeRidB?: string;
107
+ }
108
+ export interface FoundryRelation {
109
+ readonly definition?: {
110
+ readonly intermediary?: FoundryIntermediaryRelation;
111
+ readonly manyToMany?: FoundryManyToManyRelation;
112
+ readonly oneToMany?: FoundryOneToManyRelation;
113
+ readonly type?: string;
114
+ };
115
+ readonly description?: string | null;
116
+ readonly id?: string;
117
+ readonly rid?: string;
118
+ readonly status?: FoundryStatus;
119
+ readonly [key: string]: unknown;
120
+ }
121
+ export interface FoundryActionParameter {
122
+ readonly displayMetadata?: FoundryDisplayMetadata;
123
+ readonly id?: string;
124
+ readonly type?: {
125
+ readonly type?: string;
126
+ readonly [key: string]: unknown;
127
+ };
128
+ }
129
+ export interface FoundryActionType {
130
+ readonly actionTypeLogic?: {
131
+ readonly logic?: {
132
+ readonly rules?: readonly {
133
+ readonly type?: string;
134
+ }[];
135
+ };
136
+ };
137
+ readonly metadata?: {
138
+ readonly apiName?: string;
139
+ readonly displayMetadata?: FoundryDisplayMetadata;
140
+ readonly formContentInOrder?: readonly {
141
+ readonly parameter?: FoundryActionParameter;
142
+ readonly type?: string;
143
+ }[];
144
+ readonly rid?: string;
145
+ readonly status?: FoundryStatus;
146
+ };
147
+ }
148
+ export interface FoundryInterfaceProperty {
149
+ readonly displayName?: string;
150
+ readonly isSharedProperty?: boolean;
151
+ readonly required?: boolean;
152
+ readonly sharedPropertyRid?: string;
153
+ readonly type?: FoundryBaseType;
154
+ }
155
+ export interface FoundryInterface {
156
+ readonly apiName?: string;
157
+ readonly displayMetadata?: FoundryDisplayMetadata;
158
+ readonly extendsInterfaces?: readonly string[];
159
+ readonly links?: readonly unknown[];
160
+ readonly properties?: readonly FoundryInterfaceProperty[];
161
+ readonly rid?: string;
162
+ readonly searchable?: boolean;
163
+ readonly status?: FoundryStatus;
164
+ }
165
+ export interface FoundrySharedProperty {
166
+ readonly aliases?: readonly string[];
167
+ readonly apiName?: string;
168
+ readonly baseType?: FoundryBaseType;
169
+ readonly dataConstraints?: {
170
+ readonly nullability?: string;
171
+ readonly [key: string]: unknown;
172
+ };
173
+ readonly displayMetadata?: FoundryDisplayMetadata;
174
+ readonly indexedForSearch?: boolean;
175
+ readonly renderHints?: readonly string[];
176
+ readonly rid?: string;
177
+ readonly type?: unknown;
178
+ readonly valueType?: unknown;
179
+ }
180
+ export interface FoundryTypeGroup {
181
+ readonly displayMetadata?: FoundryDisplayMetadata;
182
+ readonly rid?: string;
183
+ }
184
+ export interface NamePair {
185
+ readonly original: string;
186
+ readonly sanitized: string;
187
+ }
188
+ export interface NormalizedProperty {
189
+ readonly apiName: NamePair;
190
+ readonly array: boolean;
191
+ readonly description?: string;
192
+ readonly displayName: string;
193
+ readonly editOnly: boolean;
194
+ readonly indexedForSearch: boolean;
195
+ readonly nullability?: NormalizedNullability;
196
+ readonly originalId: string;
197
+ readonly rid?: string;
198
+ readonly type: unknown;
199
+ readonly visibility?: string;
200
+ }
201
+ export interface NormalizedObject {
202
+ readonly apiName: NamePair;
203
+ readonly description?: string;
204
+ readonly displayName: string;
205
+ readonly pluralDisplayName: string;
206
+ readonly primaryKeyPropertyApiName: string;
207
+ readonly properties: readonly NormalizedProperty[];
208
+ readonly propertiesById: ReadonlyMap<string, NormalizedProperty>;
209
+ readonly rid?: string;
210
+ readonly status?: string;
211
+ readonly titlePropertyApiName: string;
212
+ readonly variableName: string;
213
+ }
214
+ export interface NormalizedSharedProperty {
215
+ readonly apiName: NamePair;
216
+ readonly array: boolean;
217
+ readonly description?: string;
218
+ readonly displayName: string;
219
+ readonly nullability?: NormalizedNullability;
220
+ readonly rid?: string;
221
+ readonly type: unknown;
222
+ readonly variableName: string;
223
+ readonly visibility?: string;
224
+ }
225
+ export interface NormalizedNullability {
226
+ readonly noEmptyCollections: boolean;
227
+ readonly noNulls: boolean;
228
+ }
229
+ export interface NormalizedInterface {
230
+ readonly apiName: NamePair;
231
+ readonly description?: string;
232
+ readonly displayName: string;
233
+ readonly rid?: string;
234
+ readonly searchable: boolean;
235
+ readonly status?: string;
236
+ readonly variableName: string;
237
+ }
238
+ export interface NormalizedRelation {
239
+ readonly apiName: NamePair;
240
+ readonly definition: unknown;
241
+ readonly kind: "manyToMany" | "oneToMany";
242
+ readonly rid?: string;
243
+ readonly status?: string;
244
+ readonly variableName: string;
245
+ }
246
+ export interface NormalizedAction {
247
+ readonly apiName: NamePair;
248
+ readonly displayName: string;
249
+ readonly parameterCount: number;
250
+ readonly ruleTypes: readonly string[];
251
+ readonly status?: string;
252
+ }
253
+ export interface NormalizedTypeGroup {
254
+ readonly displayName: string;
255
+ readonly rid?: string;
256
+ }
257
+ export interface ConversionResult {
258
+ readonly actions: readonly NormalizedAction[];
259
+ readonly diagnostics: readonly ConversionDiagnostic[];
260
+ readonly interfaces: readonly NormalizedInterface[];
261
+ readonly objects: readonly NormalizedObject[];
262
+ readonly relations: readonly NormalizedRelation[];
263
+ readonly sharedProperties: readonly NormalizedSharedProperty[];
264
+ readonly sourceVersion: number;
265
+ readonly typeGroups: readonly NormalizedTypeGroup[];
266
+ }
267
+ export interface EmittedFile {
268
+ readonly content: string;
269
+ readonly path: string;
270
+ }
271
+ export interface EmitOptions {
272
+ readonly ontologyName?: string;
273
+ }
274
+ export interface FoundryImportOptions {
275
+ readonly input?: string;
276
+ readonly ontologyName?: string;
277
+ readonly outputDir?: string;
278
+ readonly validate?: boolean;
279
+ }
280
+ export interface FoundryImportRuntime {
281
+ readonly cwd?: string;
282
+ readonly mkdir?: typeof mkdir;
283
+ readonly onEvent?: (event: FoundryImportEvent) => void;
284
+ readonly readFile?: typeof readFile;
285
+ readonly writeFile?: typeof writeFile;
286
+ }
287
+ export type FoundryImportEvent = {
288
+ readonly inputPath: string;
289
+ readonly type: "read";
290
+ } | {
291
+ readonly counts: FoundryImportCounts;
292
+ readonly diagnostics: FoundryImportDiagnosticsSummary;
293
+ readonly type: "converted";
294
+ } | {
295
+ readonly file: FoundryImportFile;
296
+ readonly type: "write-file";
297
+ } | {
298
+ readonly type: "validated";
299
+ readonly validation: FoundryImportValidation;
300
+ };
301
+ export interface FoundryImportCounts {
302
+ readonly actions: number;
303
+ readonly interfaces: number;
304
+ readonly objects: number;
305
+ readonly relations: number;
306
+ readonly sharedProperties: number;
307
+ readonly typeGroups: number;
308
+ }
309
+ export interface FoundryImportDiagnosticsSummary {
310
+ readonly byCode: Readonly<Record<string, number>>;
311
+ readonly errors: number;
312
+ readonly info: number;
313
+ readonly total: number;
314
+ readonly warnings: number;
315
+ }
316
+ export interface FoundryImportFile {
317
+ readonly path: string;
318
+ readonly relativePath: string;
319
+ }
320
+ export interface FoundryImportResult {
321
+ readonly counts: FoundryImportCounts;
322
+ readonly diagnostics: FoundryImportDiagnosticsSummary;
323
+ readonly files: readonly FoundryImportFile[];
324
+ readonly inputPath: string;
325
+ readonly ontologyName: string;
326
+ readonly outputDir: string;
327
+ readonly validation?: FoundryImportValidation;
328
+ }
329
+ export interface FoundryImportValidation {
330
+ readonly compiler: "typescript";
331
+ readonly makerPackage: "@osdk/maker";
332
+ readonly makerVersion: string;
333
+ readonly ontologyIrBytes: number;
334
+ }
335
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/foundry-import/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,13 @@
1
+ import type { ConversionDiagnostic, ConversionResult, FoundryDisplayMetadata, FoundryImportCounts, FoundryImportDiagnosticsSummary, FoundryStatus, NormalizedNullability } from "./types.js";
2
+ export declare function arrayField<T>(record: Record<string, unknown>, key: string): readonly T[];
3
+ export declare function isRecord(value: unknown): value is Record<string, unknown>;
4
+ export declare function requiredString(value: unknown, path: string, diagnostics: ConversionDiagnostic[], fallback: string): string;
5
+ export declare function displayNameFor(displayMetadata: FoundryDisplayMetadata | undefined, fallback: string): string;
6
+ export declare function visibilityFor(displayMetadata: FoundryDisplayMetadata | undefined): string | undefined;
7
+ export declare function normalizeDescription(description: string | null | undefined): string | undefined;
8
+ export declare function normalizeStatus(status: FoundryStatus | undefined): string | undefined;
9
+ export declare function normalizeNullability(nullability: string | undefined, path: string, diagnostics: ConversionDiagnostic[]): NormalizedNullability | undefined;
10
+ export declare function summarizeConversion(result: ConversionResult): FoundryImportCounts;
11
+ export declare function summarizeDiagnostics(diagnostics: readonly ConversionDiagnostic[]): FoundryImportDiagnosticsSummary;
12
+ export declare function formatErrorMessage(error: unknown): string;
13
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/foundry-import/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,oBAAoB,EACpB,gBAAgB,EAChB,sBAAsB,EACtB,mBAAmB,EACnB,+BAA+B,EAC/B,aAAa,EACb,qBAAqB,EACrB,MAAM,YAAY,CAAC;AAEpB,wBAAgB,UAAU,CAAC,CAAC,EAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,GAAG,EAAE,MAAM,GACT,SAAS,CAAC,EAAE,CAGd;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzE;AAED,wBAAgB,cAAc,CAC7B,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,oBAAoB,EAAE,EACnC,QAAQ,EAAE,MAAM,GACd,MAAM,CAWR;AAED,wBAAgB,cAAc,CAC7B,eAAe,EAAE,sBAAsB,GAAG,SAAS,EACnD,QAAQ,EAAE,MAAM,GACd,MAAM,CAER;AAED,wBAAgB,aAAa,CAC5B,eAAe,EAAE,sBAAsB,GAAG,SAAS,GACjD,MAAM,GAAG,SAAS,CAEpB;AAED,wBAAgB,oBAAoB,CACnC,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACpC,MAAM,GAAG,SAAS,CAEpB;AAED,wBAAgB,eAAe,CAC9B,MAAM,EAAE,aAAa,GAAG,SAAS,GAC/B,MAAM,GAAG,SAAS,CAEpB;AAED,wBAAgB,oBAAoB,CACnC,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,oBAAoB,EAAE,GACjC,qBAAqB,GAAG,SAAS,CAsBnC;AAED,wBAAgB,mBAAmB,CAClC,MAAM,EAAE,gBAAgB,GACtB,mBAAmB,CASrB;AAED,wBAAgB,oBAAoB,CACnC,WAAW,EAAE,SAAS,oBAAoB,EAAE,GAC1C,+BAA+B,CAcjC;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEzD"}
@@ -0,0 +1,82 @@
1
+ export function arrayField(record, key) {
2
+ const value = record[key];
3
+ return Array.isArray(value) ? value : [];
4
+ }
5
+ export function isRecord(value) {
6
+ return typeof value === "object" && value !== null && !Array.isArray(value);
7
+ }
8
+ export function requiredString(value, path, diagnostics, fallback) {
9
+ if (typeof value === "string" && value.trim() !== "") {
10
+ return value;
11
+ }
12
+ diagnostics.push({
13
+ code: "missing.string",
14
+ message: `Missing string at ${path}; using ${fallback}.`,
15
+ path,
16
+ severity: "warning",
17
+ });
18
+ return fallback;
19
+ }
20
+ export function displayNameFor(displayMetadata, fallback) {
21
+ return displayMetadata?.displayName ?? fallback;
22
+ }
23
+ export function visibilityFor(displayMetadata) {
24
+ return displayMetadata?.visibility ?? undefined;
25
+ }
26
+ export function normalizeDescription(description) {
27
+ return description === null || description === "" ? undefined : description;
28
+ }
29
+ export function normalizeStatus(status) {
30
+ return status?.type;
31
+ }
32
+ export function normalizeNullability(nullability, path, diagnostics) {
33
+ const knownNullability = {
34
+ NO_NULLS: { noEmptyCollections: true, noNulls: true },
35
+ NO_NULLS_BUT_ALLOW_EMPTY_COLLECTIONS: {
36
+ noEmptyCollections: false,
37
+ noNulls: true,
38
+ },
39
+ };
40
+ if (nullability === undefined) {
41
+ return undefined;
42
+ }
43
+ const normalized = knownNullability[nullability];
44
+ if (normalized) {
45
+ return normalized;
46
+ }
47
+ diagnostics.push({
48
+ code: "coerced.unknownNullability",
49
+ message: `Unknown nullability ${nullability}; omitting nullability from OAC output.`,
50
+ path,
51
+ severity: "warning",
52
+ });
53
+ return undefined;
54
+ }
55
+ export function summarizeConversion(result) {
56
+ return {
57
+ actions: result.actions.length,
58
+ interfaces: result.interfaces.length,
59
+ objects: result.objects.length,
60
+ relations: result.relations.length,
61
+ sharedProperties: result.sharedProperties.length,
62
+ typeGroups: result.typeGroups.length,
63
+ };
64
+ }
65
+ export function summarizeDiagnostics(diagnostics) {
66
+ const byCode = {};
67
+ const bySeverity = { error: 0, info: 0, warning: 0 };
68
+ for (const diagnostic of diagnostics) {
69
+ byCode[diagnostic.code] = (byCode[diagnostic.code] ?? 0) + 1;
70
+ bySeverity[diagnostic.severity] += 1;
71
+ }
72
+ return {
73
+ byCode,
74
+ errors: bySeverity.error,
75
+ info: bySeverity.info,
76
+ total: diagnostics.length,
77
+ warnings: bySeverity.warning,
78
+ };
79
+ }
80
+ export function formatErrorMessage(error) {
81
+ return error instanceof Error ? error.message : String(error);
82
+ }
@@ -0,0 +1,8 @@
1
+ import type { FoundryImportFile, FoundryImportValidation } from "./types.js";
2
+ interface ValidationInput {
3
+ readonly files: readonly FoundryImportFile[];
4
+ readonly outputDir: string;
5
+ }
6
+ export declare function validateFoundryImportOutput(input: ValidationInput): Promise<FoundryImportValidation>;
7
+ export {};
8
+ //# sourceMappingURL=validate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/foundry-import/validate.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAG7E,UAAU,eAAe;IACxB,QAAQ,CAAC,KAAK,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAC7C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC3B;AAWD,wBAAsB,2BAA2B,CAChD,KAAK,EAAE,eAAe,GACpB,OAAO,CAAC,uBAAuB,CAAC,CAelC"}
@@ -0,0 +1,117 @@
1
+ import { execFile } from "node:child_process";
2
+ import { copyFile, mkdir, mkdtemp, readFile, realpath, rm, symlink, writeFile, } from "node:fs/promises";
3
+ import { createRequire } from "node:module";
4
+ import { basename, dirname, join, resolve } from "node:path";
5
+ import { pathToFileURL } from "node:url";
6
+ import { defineOntology } from "@osdk/maker";
7
+ import { formatErrorMessage, isRecord } from "./utils.js";
8
+ const requireFromHere = createRequire(import.meta.url);
9
+ export async function validateFoundryImportOutput(input) {
10
+ const workspace = await createValidationWorkspace(input.outputDir);
11
+ try {
12
+ await prepareValidationWorkspace(workspace, input.files);
13
+ await runTypeScriptCompile(workspace.tsconfigPath, workspace.tempDir);
14
+ const ontologyIr = await convertCompiledOntology(workspace.buildDir);
15
+ return {
16
+ compiler: "typescript",
17
+ makerPackage: "@osdk/maker",
18
+ makerVersion: await makerVersion(),
19
+ ontologyIrBytes: ontologyIrSize(ontologyIr),
20
+ };
21
+ }
22
+ finally {
23
+ await rm(workspace.tempDir, { force: true, recursive: true });
24
+ }
25
+ }
26
+ async function createValidationWorkspace(outputDir) {
27
+ const tempDir = await mkdtemp(join(resolve(outputDir), ".prismantix-maker-validation-"));
28
+ return {
29
+ buildDir: join(tempDir, "build"),
30
+ sourceDir: join(tempDir, "src"),
31
+ tempDir,
32
+ tsconfigPath: join(tempDir, "tsconfig.json"),
33
+ };
34
+ }
35
+ async function prepareValidationWorkspace(workspace, files) {
36
+ await mkdir(workspace.sourceDir, { recursive: true });
37
+ await linkMakerPackage(workspace.tempDir);
38
+ await Promise.all([
39
+ writeValidationTsconfig(workspace),
40
+ ...sourceFiles(files).map((file) => copySourceFile(file, workspace.sourceDir)),
41
+ ]);
42
+ }
43
+ function sourceFiles(files) {
44
+ return files.filter((file) => file.relativePath.endsWith(".mts"));
45
+ }
46
+ async function copySourceFile(file, sourceDir) {
47
+ await copyFile(file.path, join(sourceDir, basename(file.relativePath)));
48
+ }
49
+ async function linkMakerPackage(tempDir) {
50
+ const scopeDir = join(tempDir, "node_modules", "@osdk");
51
+ await mkdir(scopeDir, { recursive: true });
52
+ await symlink(await makerPackageRoot(), join(scopeDir, "maker"), "dir");
53
+ }
54
+ async function writeValidationTsconfig(workspace) {
55
+ await writeFile(workspace.tsconfigPath, `${JSON.stringify({
56
+ compilerOptions: {
57
+ declaration: false,
58
+ module: "NodeNext",
59
+ moduleResolution: "NodeNext",
60
+ noEmitOnError: true,
61
+ outDir: "./build",
62
+ rootDir: "./src",
63
+ skipLibCheck: true,
64
+ strict: true,
65
+ target: "ES2022",
66
+ },
67
+ include: ["src/*.mts"],
68
+ }, null, 2)}\n`, "utf-8");
69
+ }
70
+ async function runTypeScriptCompile(tsconfigPath, cwd) {
71
+ try {
72
+ await execFileAsync(process.execPath, [tscBinPath(), "--project", tsconfigPath], {
73
+ cwd,
74
+ });
75
+ }
76
+ catch (error) {
77
+ throw new Error(commandErrorMessage(error));
78
+ }
79
+ }
80
+ async function convertCompiledOntology(buildDir) {
81
+ return await defineOntology("", async () => {
82
+ await import(pathToFileURL(join(buildDir, "index.mjs")).href);
83
+ }, undefined);
84
+ }
85
+ function ontologyIrSize(ontologyIr) {
86
+ return Buffer.byteLength(JSON.stringify(ontologyIr), "utf-8");
87
+ }
88
+ function tscBinPath() {
89
+ return requireFromHere.resolve("typescript/bin/tsc");
90
+ }
91
+ async function makerPackageRoot() {
92
+ return await realpath(resolve(dirname(requireFromHere.resolve("@osdk/maker")), "../.."));
93
+ }
94
+ async function makerVersion() {
95
+ const packageJsonPath = join(await makerPackageRoot(), "package.json");
96
+ const packageJson = JSON.parse(await readFile(packageJsonPath, "utf-8"));
97
+ return isRecord(packageJson) && typeof packageJson.version === "string"
98
+ ? packageJson.version
99
+ : "unknown";
100
+ }
101
+ function execFileAsync(file, args, options) {
102
+ return new Promise((resolvePromise, rejectPromise) => {
103
+ execFile(file, [...args], options, (error) => {
104
+ if (error) {
105
+ rejectPromise(error);
106
+ return;
107
+ }
108
+ resolvePromise();
109
+ });
110
+ });
111
+ }
112
+ function commandErrorMessage(error) {
113
+ if (isRecord(error) && typeof error.message === "string") {
114
+ return error.message;
115
+ }
116
+ return formatErrorMessage(error);
117
+ }
@@ -0,0 +1,3 @@
1
+ import type { FoundryImportOptions, FoundryImportResult, FoundryImportRuntime } from "./types.js";
2
+ export declare function runFoundryImportWorkflow(options: FoundryImportOptions, runtime?: FoundryImportRuntime): Promise<FoundryImportResult>;
3
+ //# sourceMappingURL=workflow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow.d.ts","sourceRoot":"","sources":["../../src/foundry-import/workflow.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAGX,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EAEpB,MAAM,YAAY,CAAC;AAQpB,wBAAsB,wBAAwB,CAC7C,OAAO,EAAE,oBAAoB,EAC7B,OAAO,GAAE,oBAAyB,GAChC,OAAO,CAAC,mBAAmB,CAAC,CAoC9B"}