@beignet/cli 0.0.48 → 0.0.50

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 (111) hide show
  1. package/CHANGELOG.md +54 -0
  2. package/README.md +117 -22
  3. package/dist/analysis/contract-factories.d.ts +17 -0
  4. package/dist/analysis/contract-factories.d.ts.map +1 -0
  5. package/dist/analysis/contract-factories.js +176 -0
  6. package/dist/analysis/contract-factories.js.map +1 -0
  7. package/dist/analysis/layers.d.ts +5 -0
  8. package/dist/analysis/layers.d.ts.map +1 -0
  9. package/dist/analysis/layers.js +172 -0
  10. package/dist/analysis/layers.js.map +1 -0
  11. package/dist/analysis/port-wiring.d.ts +23 -0
  12. package/dist/analysis/port-wiring.d.ts.map +1 -0
  13. package/dist/analysis/port-wiring.js +379 -0
  14. package/dist/analysis/port-wiring.js.map +1 -0
  15. package/dist/analysis/source-index.d.ts +5 -0
  16. package/dist/analysis/source-index.d.ts.map +1 -1
  17. package/dist/analysis/source-index.js +171 -42
  18. package/dist/analysis/source-index.js.map +1 -1
  19. package/dist/analysis/workspace.d.ts +11 -4
  20. package/dist/analysis/workspace.d.ts.map +1 -1
  21. package/dist/analysis/workspace.js +78 -8
  22. package/dist/analysis/workspace.js.map +1 -1
  23. package/dist/app-map-changes.d.ts +103 -0
  24. package/dist/app-map-changes.d.ts.map +1 -0
  25. package/dist/app-map-changes.js +949 -0
  26. package/dist/app-map-changes.js.map +1 -0
  27. package/dist/app-map.d.ts.map +1 -1
  28. package/dist/app-map.js +311 -92
  29. package/dist/app-map.js.map +1 -1
  30. package/dist/check.js +37 -3
  31. package/dist/check.js.map +1 -1
  32. package/dist/explain.js +4 -4
  33. package/dist/explain.js.map +1 -1
  34. package/dist/git-changes.d.ts +30 -0
  35. package/dist/git-changes.d.ts.map +1 -0
  36. package/dist/git-changes.js +367 -0
  37. package/dist/git-changes.js.map +1 -0
  38. package/dist/index.d.ts.map +1 -1
  39. package/dist/index.js +26 -1
  40. package/dist/index.js.map +1 -1
  41. package/dist/inspect.d.ts.map +1 -1
  42. package/dist/inspect.js +706 -186
  43. package/dist/inspect.js.map +1 -1
  44. package/dist/lib.d.ts +3 -0
  45. package/dist/lib.d.ts.map +1 -1
  46. package/dist/lib.js +1 -0
  47. package/dist/lib.js.map +1 -1
  48. package/dist/lint.d.ts.map +1 -1
  49. package/dist/lint.js +309 -487
  50. package/dist/lint.js.map +1 -1
  51. package/dist/make/inbox.d.ts.map +1 -1
  52. package/dist/make/inbox.js +11 -4
  53. package/dist/make/inbox.js.map +1 -1
  54. package/dist/make/payments.js +2 -2
  55. package/dist/make/shared.d.ts.map +1 -1
  56. package/dist/make/shared.js +31 -27
  57. package/dist/make/shared.js.map +1 -1
  58. package/dist/make.d.ts.map +1 -1
  59. package/dist/make.js +144 -8
  60. package/dist/make.js.map +1 -1
  61. package/dist/mcp.d.ts +1 -1
  62. package/dist/mcp.d.ts.map +1 -1
  63. package/dist/mcp.js +43 -21
  64. package/dist/mcp.js.map +1 -1
  65. package/dist/provider-add.d.ts.map +1 -1
  66. package/dist/provider-add.js +142 -7
  67. package/dist/provider-add.js.map +1 -1
  68. package/dist/registry-edits.d.ts +7 -0
  69. package/dist/registry-edits.d.ts.map +1 -1
  70. package/dist/registry-edits.js +237 -53
  71. package/dist/registry-edits.js.map +1 -1
  72. package/dist/templates/agents.d.ts.map +1 -1
  73. package/dist/templates/agents.js +37 -1
  74. package/dist/templates/agents.js.map +1 -1
  75. package/dist/templates/base.d.ts.map +1 -1
  76. package/dist/templates/base.js +13 -2
  77. package/dist/templates/base.js.map +1 -1
  78. package/dist/templates/server.d.ts.map +1 -1
  79. package/dist/templates/server.js +2 -0
  80. package/dist/templates/server.js.map +1 -1
  81. package/dist/templates/shared.d.ts +1 -0
  82. package/dist/templates/shared.d.ts.map +1 -1
  83. package/dist/templates/shared.js +3 -2
  84. package/dist/templates/shared.js.map +1 -1
  85. package/package.json +7 -6
  86. package/skills/app-structure/SKILL.md +71 -7
  87. package/src/analysis/contract-factories.ts +256 -0
  88. package/src/analysis/layers.ts +266 -0
  89. package/src/analysis/port-wiring.ts +506 -0
  90. package/src/analysis/source-index.ts +225 -57
  91. package/src/analysis/workspace.ts +134 -9
  92. package/src/app-map-changes.ts +1462 -0
  93. package/src/app-map.ts +418 -109
  94. package/src/check.ts +51 -3
  95. package/src/explain.ts +4 -4
  96. package/src/git-changes.ts +511 -0
  97. package/src/index.ts +39 -1
  98. package/src/inspect.ts +1005 -238
  99. package/src/lib.ts +21 -0
  100. package/src/lint.ts +393 -643
  101. package/src/make/inbox.ts +11 -4
  102. package/src/make/payments.ts +2 -2
  103. package/src/make/shared.ts +31 -27
  104. package/src/make.ts +225 -8
  105. package/src/mcp.ts +51 -24
  106. package/src/provider-add.ts +186 -7
  107. package/src/registry-edits.ts +313 -63
  108. package/src/templates/agents.ts +37 -1
  109. package/src/templates/base.ts +13 -2
  110. package/src/templates/server.ts +2 -0
  111. package/src/templates/shared.ts +3 -2
@@ -9,6 +9,8 @@ export function createSourceIndex(workspace) {
9
9
  const sourceFile = await workspace.readSourceFile(file);
10
10
  const index = {
11
11
  declarations: new Map(),
12
+ localExports: new Map(),
13
+ locals: new Map(),
12
14
  imports: new Map(),
13
15
  reexports: new Map(),
14
16
  exportStars: [],
@@ -54,6 +56,17 @@ export function createSourceIndex(workspace) {
54
56
  const target = source
55
57
  ? resolveLocalSourceFile(workspace, file, source)
56
58
  : undefined;
59
+ if (!statement.moduleSpecifier) {
60
+ if (statement.exportClause &&
61
+ ts.isNamedExports(statement.exportClause)) {
62
+ for (const element of statement.exportClause.elements) {
63
+ if (statement.isTypeOnly || element.isTypeOnly)
64
+ continue;
65
+ index.localExports.set(element.name.text, element.propertyName?.text ?? element.name.text);
66
+ }
67
+ }
68
+ continue;
69
+ }
57
70
  if (!target)
58
71
  continue;
59
72
  if (!statement.exportClause) {
@@ -70,10 +83,13 @@ export function createSourceIndex(workspace) {
70
83
  }
71
84
  continue;
72
85
  }
73
- if (ts.isVariableStatement(statement) && hasExportModifier(statement)) {
86
+ if (ts.isVariableStatement(statement)) {
74
87
  for (const declaration of statement.declarationList.declarations) {
75
88
  if (ts.isIdentifier(declaration.name)) {
76
- index.declarations.set(declaration.name.text, declaration);
89
+ index.locals.set(declaration.name.text, declaration);
90
+ if (hasExportModifier(statement)) {
91
+ index.declarations.set(declaration.name.text, declaration);
92
+ }
77
93
  }
78
94
  }
79
95
  continue;
@@ -83,9 +99,11 @@ export function createSourceIndex(workspace) {
83
99
  ts.isInterfaceDeclaration(statement) ||
84
100
  ts.isTypeAliasDeclaration(statement) ||
85
101
  ts.isEnumDeclaration(statement)) &&
86
- hasExportModifier(statement) &&
87
102
  statement.name) {
88
- index.declarations.set(statement.name.text, statement);
103
+ index.locals.set(statement.name.text, statement);
104
+ if (hasExportModifier(statement)) {
105
+ index.declarations.set(statement.name.text, statement);
106
+ }
89
107
  }
90
108
  }
91
109
  return index;
@@ -99,6 +117,13 @@ export function createSourceIndex(workspace) {
99
117
  const declaration = index.declarations.get(exportName);
100
118
  if (declaration)
101
119
  return { file, exportName, declaration };
120
+ const localName = index.localExports.get(exportName);
121
+ const localDeclaration = localName
122
+ ? index.locals.get(localName)
123
+ : undefined;
124
+ if (localDeclaration) {
125
+ return { file, exportName, declaration: localDeclaration };
126
+ }
102
127
  const reexport = index.reexports.get(exportName);
103
128
  if (reexport) {
104
129
  return ((await resolveExport(reexport.file, reexport.exportName, visited)) ?? {
@@ -116,7 +141,7 @@ export function createSourceIndex(workspace) {
116
141
  return {
117
142
  async resolveName(file, name) {
118
143
  const index = await readIndex(file);
119
- const local = index.declarations.get(name);
144
+ const local = index.locals.get(name);
120
145
  if (local) {
121
146
  return { file, exportName: name, declaration: local };
122
147
  }
@@ -173,19 +198,44 @@ export function createSourceIndex(workspace) {
173
198
  }
174
199
  export function exportedVariableDeclarations(sourceFile) {
175
200
  const declarations = [];
201
+ const locals = new Map();
202
+ const seen = new Set();
203
+ const addDeclaration = (exportName, declaration) => {
204
+ const key = `${exportName}:${declaration.pos}`;
205
+ if (seen.has(key))
206
+ return;
207
+ seen.add(key);
208
+ declarations.push({ exportName, declaration });
209
+ };
176
210
  for (const statement of sourceFile.statements) {
177
- if (!ts.isVariableStatement(statement) || !hasExportModifier(statement)) {
211
+ if (!ts.isVariableStatement(statement))
178
212
  continue;
179
- }
180
213
  for (const declaration of statement.declarationList.declarations) {
181
214
  if (ts.isIdentifier(declaration.name)) {
182
- declarations.push({
183
- exportName: declaration.name.text,
184
- declaration,
185
- });
215
+ locals.set(declaration.name.text, declaration);
216
+ if (hasExportModifier(statement)) {
217
+ addDeclaration(declaration.name.text, declaration);
218
+ }
186
219
  }
187
220
  }
188
221
  }
222
+ for (const statement of sourceFile.statements) {
223
+ if (!ts.isExportDeclaration(statement) ||
224
+ statement.moduleSpecifier ||
225
+ statement.isTypeOnly ||
226
+ !statement.exportClause ||
227
+ !ts.isNamedExports(statement.exportClause)) {
228
+ continue;
229
+ }
230
+ for (const element of statement.exportClause.elements) {
231
+ if (element.isTypeOnly)
232
+ continue;
233
+ const localName = element.propertyName?.text ?? element.name.text;
234
+ const declaration = locals.get(localName);
235
+ if (declaration)
236
+ addDeclaration(element.name.text, declaration);
237
+ }
238
+ }
189
239
  return declarations;
190
240
  }
191
241
  export function literalText(node) {
@@ -211,48 +261,127 @@ export function visitCalls(node, visit) {
211
261
  walk(node);
212
262
  }
213
263
  export async function localImportReferences(workspace, file) {
264
+ const references = await moduleReferences(workspace, file);
265
+ return references
266
+ .filter((reference) => reference.staticallyResolvable &&
267
+ (reference.resolvedFile ||
268
+ isLocalModuleSpecifier(workspace, file, reference.importPath)))
269
+ .map(({ syntax: _syntax, staticallyResolvable: _static, ...reference }) => reference);
270
+ }
271
+ export async function moduleReferences(workspace, file) {
214
272
  const sourceFile = await workspace.readSourceFile(file);
215
273
  const references = [];
216
- for (const statement of sourceFile.statements) {
217
- if (!ts.isImportDeclaration(statement) &&
218
- !ts.isExportDeclaration(statement)) {
219
- continue;
220
- }
221
- if (!statement.moduleSpecifier)
222
- continue;
223
- const importPath = moduleText(statement.moduleSpecifier);
224
- const resolvedFile = importPath
225
- ? resolveLocalSourceFile(workspace, file, importPath)
226
- : undefined;
227
- if (!importPath ||
228
- (!resolvedFile && !isLocalModuleSpecifier(workspace, file, importPath))) {
229
- continue;
230
- }
231
- const position = sourceFile.getLineAndCharacterOfPosition(statement.getStart(sourceFile));
232
- const typeOnly = ts.isImportDeclaration(statement)
233
- ? Boolean(statement.importClause?.isTypeOnly ||
234
- (statement.importClause?.namedBindings &&
235
- ts.isNamedImports(statement.importClause.namedBindings) &&
236
- statement.importClause.namedBindings.elements.length > 0 &&
237
- statement.importClause.namedBindings.elements.every((element) => element.isTypeOnly)))
238
- : statement.isTypeOnly ||
239
- (statement.exportClause &&
240
- ts.isNamedExports(statement.exportClause) &&
241
- statement.exportClause.elements.length > 0 &&
242
- statement.exportClause.elements.every((element) => element.isTypeOnly));
274
+ const addReference = ({ importPath, kind, node, staticallyResolvable, syntax, }) => {
275
+ const position = sourceFile.getLineAndCharacterOfPosition(node.getStart(sourceFile));
243
276
  references.push({
244
277
  file,
245
278
  importPath,
246
- resolvedFile,
247
- kind: typeOnly ? "type" : "value",
279
+ ...(staticallyResolvable
280
+ ? { resolvedFile: resolveLocalSourceFile(workspace, file, importPath) }
281
+ : {}),
282
+ kind,
248
283
  line: position.line + 1,
249
284
  column: position.character + 1,
285
+ syntax,
286
+ staticallyResolvable,
250
287
  });
251
- }
288
+ };
289
+ const visit = (node) => {
290
+ if (ts.isImportDeclaration(node) && node.moduleSpecifier) {
291
+ const importPath = moduleText(node.moduleSpecifier);
292
+ if (importPath) {
293
+ addReference({
294
+ importPath,
295
+ kind: importDeclarationKind(node),
296
+ node,
297
+ staticallyResolvable: true,
298
+ syntax: "import",
299
+ });
300
+ }
301
+ }
302
+ else if (ts.isExportDeclaration(node) && node.moduleSpecifier) {
303
+ const importPath = moduleText(node.moduleSpecifier);
304
+ if (importPath) {
305
+ addReference({
306
+ importPath,
307
+ kind: exportDeclarationKind(node),
308
+ node,
309
+ staticallyResolvable: true,
310
+ syntax: "export",
311
+ });
312
+ }
313
+ }
314
+ else if (ts.isImportEqualsDeclaration(node) &&
315
+ ts.isExternalModuleReference(node.moduleReference) &&
316
+ node.moduleReference.expression) {
317
+ const importPath = moduleText(node.moduleReference.expression);
318
+ if (importPath) {
319
+ addReference({
320
+ importPath,
321
+ kind: node.isTypeOnly ? "type" : "value",
322
+ node,
323
+ staticallyResolvable: true,
324
+ syntax: "import-equals",
325
+ });
326
+ }
327
+ }
328
+ else if (ts.isCallExpression(node)) {
329
+ const syntax = node.expression.kind === ts.SyntaxKind.ImportKeyword
330
+ ? "dynamic-import"
331
+ : ts.isIdentifier(node.expression) &&
332
+ node.expression.text === "require"
333
+ ? "require"
334
+ : undefined;
335
+ if (syntax) {
336
+ const argument = node.arguments[0];
337
+ const importPath = moduleText(argument);
338
+ addReference({
339
+ importPath: importPath ?? argument?.getText(sourceFile) ?? "<missing>",
340
+ kind: "value",
341
+ node,
342
+ staticallyResolvable: importPath !== undefined,
343
+ syntax,
344
+ });
345
+ }
346
+ }
347
+ ts.forEachChild(node, visit);
348
+ };
349
+ visit(sourceFile);
252
350
  return references;
253
351
  }
352
+ function importDeclarationKind(declaration) {
353
+ const clause = declaration.importClause;
354
+ if (!clause)
355
+ return "value";
356
+ if (clause.isTypeOnly)
357
+ return "type";
358
+ if (clause.name)
359
+ return "value";
360
+ const bindings = clause.namedBindings;
361
+ if (bindings &&
362
+ ts.isNamedImports(bindings) &&
363
+ bindings.elements.length > 0 &&
364
+ bindings.elements.every((element) => element.isTypeOnly)) {
365
+ return "type";
366
+ }
367
+ return "value";
368
+ }
369
+ function exportDeclarationKind(declaration) {
370
+ if (declaration.isTypeOnly)
371
+ return "type";
372
+ if (declaration.exportClause &&
373
+ ts.isNamedExports(declaration.exportClause) &&
374
+ declaration.exportClause.elements.length > 0 &&
375
+ declaration.exportClause.elements.every((element) => element.isTypeOnly)) {
376
+ return "type";
377
+ }
378
+ return "value";
379
+ }
254
380
  function moduleText(node) {
255
- return ts.isStringLiteral(node) ? node.text : undefined;
381
+ return node &&
382
+ (ts.isStringLiteral(node) || ts.isNoSubstitutionTemplateLiteral(node))
383
+ ? node.text
384
+ : undefined;
256
385
  }
257
386
  function hasExportModifier(node) {
258
387
  return Boolean(ts.canHaveModifiers(node) &&
@@ -1 +1 @@
1
- {"version":3,"file":"source-index.js","sourceRoot":"","sources":["../../src/analysis/source-index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"source-index.js","sourceRoot":"","sources":["../../src/analysis/source-index.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,24 @@
1
1
  import ts from "typescript";
2
- import { type ResolvedBeignetConfig } from "../config.js";
2
+ import { type BeignetConfig, type ResolvedBeignetConfig } from "../config.js";
3
3
  export type AnalysisWorkspace = {
4
4
  targetDir: string;
5
5
  files: string[];
6
6
  fileSet: Set<string>;
7
7
  config: ResolvedBeignetConfig;
8
8
  compilerOptions: ts.CompilerOptions;
9
+ compilerConfigFiles: string[];
10
+ moduleResolutionCache: ts.ModuleResolutionCache;
9
11
  readSource(file: string): Promise<string>;
10
12
  readSourceFile(file: string): Promise<ts.SourceFile>;
11
13
  };
12
- export declare function createAnalysisWorkspace(cwd?: string): Promise<AnalysisWorkspace>;
14
+ type AnalysisWorkspaceOptions = {
15
+ config?: BeignetConfig;
16
+ };
17
+ export declare function createAnalysisWorkspace(cwd?: string, options?: AnalysisWorkspaceOptions): Promise<AnalysisWorkspace>;
13
18
  export declare function assertDirectory(targetDir: string): Promise<void>;
14
19
  export declare function listProjectFiles(targetDir: string): Promise<string[]>;
15
- export declare function resolveLocalSourceFile(workspace: Pick<AnalysisWorkspace, "compilerOptions" | "fileSet" | "targetDir">, importerFile: string, importPath: string): string | undefined;
16
- export declare function isLocalModuleSpecifier(workspace: Pick<AnalysisWorkspace, "compilerOptions" | "fileSet" | "targetDir">, importerFile: string, importPath: string): boolean;
20
+ export declare function resolveLocalSourceFile(workspace: Pick<AnalysisWorkspace, "compilerOptions" | "fileSet" | "moduleResolutionCache" | "targetDir">, importerFile: string, importPath: string): string | undefined;
21
+ export declare function resolveLocalModulePath(workspace: Pick<AnalysisWorkspace, "compilerOptions" | "fileSet" | "moduleResolutionCache" | "targetDir">, importerFile: string, importPath: string): string | undefined;
22
+ export declare function isLocalModuleSpecifier(workspace: Pick<AnalysisWorkspace, "compilerOptions" | "fileSet" | "moduleResolutionCache" | "targetDir">, importerFile: string, importPath: string): boolean;
23
+ export {};
17
24
  //# sourceMappingURL=workspace.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../../src/analysis/workspace.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAGL,KAAK,qBAAqB,EAC3B,MAAM,cAAc,CAAC;AAWtB,MAAM,MAAM,iBAAiB,GAAG;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACrB,MAAM,EAAE,qBAAqB,CAAC;IAC9B,eAAe,EAAE,EAAE,CAAC,eAAe,CAAC;IACpC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1C,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;CACtD,CAAC;AAEF,wBAAsB,uBAAuB,CAC3C,GAAG,SAAgB,GAClB,OAAO,CAAC,iBAAiB,CAAC,CAyC5B;AAED,wBAAsB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAYtE;AAED,wBAAsB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAqB3E;AAED,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,IAAI,CACb,iBAAiB,EACjB,iBAAiB,GAAG,SAAS,GAAG,WAAW,CAC5C,EACD,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,GACjB,MAAM,GAAG,SAAS,CASpB;AAED,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,IAAI,CACb,iBAAiB,EACjB,iBAAiB,GAAG,SAAS,GAAG,WAAW,CAC5C,EACD,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,GACjB,OAAO,CA4CT"}
1
+ {"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../../src/analysis/workspace.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EACL,KAAK,aAAa,EAGlB,KAAK,qBAAqB,EAE3B,MAAM,cAAc,CAAC;AAWtB,MAAM,MAAM,iBAAiB,GAAG;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACrB,MAAM,EAAE,qBAAqB,CAAC;IAC9B,eAAe,EAAE,EAAE,CAAC,eAAe,CAAC;IACpC,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,qBAAqB,EAAE,EAAE,CAAC,qBAAqB,CAAC;IAChD,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1C,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;CACtD,CAAC;AAEF,KAAK,wBAAwB,GAAG;IAC9B,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB,CAAC;AAEF,wBAAsB,uBAAuB,CAC3C,GAAG,SAAgB,EACnB,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC,iBAAiB,CAAC,CAqD5B;AAED,wBAAsB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAYtE;AAED,wBAAsB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAqB3E;AAED,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,IAAI,CACb,iBAAiB,EACjB,iBAAiB,GAAG,SAAS,GAAG,uBAAuB,GAAG,WAAW,CACtE,EACD,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,GACjB,MAAM,GAAG,SAAS,CASpB;AAED,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,IAAI,CACb,iBAAiB,EACjB,iBAAiB,GAAG,SAAS,GAAG,uBAAuB,GAAG,WAAW,CACtE,EACD,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,GACjB,MAAM,GAAG,SAAS,CA2CpB;AAED,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,IAAI,CACb,iBAAiB,EACjB,iBAAiB,GAAG,SAAS,GAAG,uBAAuB,GAAG,WAAW,CACtE,EACD,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,GACjB,OAAO,CA4CT"}
@@ -1,7 +1,7 @@
1
1
  import { readdir, readFile, stat } from "node:fs/promises";
2
2
  import path from "node:path";
3
3
  import ts from "typescript";
4
- import { loadBeignetConfig, normalizePath, } from "../config.js";
4
+ import { loadBeignetConfig, normalizePath, resolveConfig, } from "../config.js";
5
5
  const ignoredDirectoryNames = new Set([
6
6
  ".git",
7
7
  ".next",
@@ -10,13 +10,18 @@ const ignoredDirectoryNames = new Set([
10
10
  "dist",
11
11
  "node_modules",
12
12
  ]);
13
- export async function createAnalysisWorkspace(cwd = process.cwd()) {
13
+ export async function createAnalysisWorkspace(cwd = process.cwd(), options = {}) {
14
14
  const targetDir = path.resolve(cwd);
15
15
  await assertDirectory(targetDir);
16
16
  const files = await listProjectFiles(targetDir);
17
17
  const fileSet = new Set(files);
18
- const config = await loadBeignetConfig(targetDir, files);
19
- const compilerOptions = resolveCompilerOptions(targetDir);
18
+ const config = options.config
19
+ ? resolveConfig(options.config)
20
+ : await loadBeignetConfig(targetDir, files);
21
+ const { compilerConfigFiles, compilerOptions } = resolveCompilerConfiguration(targetDir);
22
+ const moduleResolutionCache = ts.createModuleResolutionCache(targetDir, ts.sys.useCaseSensitiveFileNames
23
+ ? (fileName) => fileName
24
+ : (fileName) => fileName.toLowerCase(), compilerOptions);
20
25
  const sources = new Map();
21
26
  const sourceFiles = new Map();
22
27
  const readSource = async (file) => {
@@ -33,6 +38,8 @@ export async function createAnalysisWorkspace(cwd = process.cwd()) {
33
38
  fileSet,
34
39
  config,
35
40
  compilerOptions,
41
+ compilerConfigFiles,
42
+ moduleResolutionCache,
36
43
  readSource,
37
44
  async readSourceFile(file) {
38
45
  const cached = sourceFiles.get(file);
@@ -87,6 +94,36 @@ export function resolveLocalSourceFile(workspace, importerFile, importPath) {
87
94
  return undefined;
88
95
  return workspace.fileSet.has(file) ? file : undefined;
89
96
  }
97
+ export function resolveLocalModulePath(workspace, importerFile, importPath) {
98
+ const resolvedFile = resolveLocalSourceFile(workspace, importerFile, importPath);
99
+ if (resolvedFile)
100
+ return resolvedFile;
101
+ if (!isLocalModuleSpecifier(workspace, importerFile, importPath)) {
102
+ return undefined;
103
+ }
104
+ if (importPath.startsWith(".")) {
105
+ return normalizePath(path.join(path.dirname(importerFile), importPath));
106
+ }
107
+ const baseUrl = compilerPathsBase(workspace.compilerOptions, workspace.targetDir);
108
+ for (const [pattern, targets] of Object.entries(workspace.compilerOptions.paths ?? {})) {
109
+ if (pattern === "*")
110
+ continue;
111
+ const wildcardValue = modulePatternWildcard(pattern, importPath);
112
+ if (wildcardValue === undefined)
113
+ continue;
114
+ for (const target of targets) {
115
+ const substituted = target.replace("*", wildcardValue);
116
+ const absolute = path.resolve(baseUrl, substituted);
117
+ const relative = normalizePath(path.relative(workspace.targetDir, absolute));
118
+ if (relative !== ".." && !relative.startsWith("../"))
119
+ return relative;
120
+ }
121
+ }
122
+ const relative = normalizePath(path.relative(workspace.targetDir, path.resolve(baseUrl, importPath)));
123
+ return relative !== ".." && !relative.startsWith("../")
124
+ ? relative
125
+ : undefined;
126
+ }
90
127
  export function isLocalModuleSpecifier(workspace, importerFile, importPath) {
91
128
  const extension = path.posix.extname(importPath);
92
129
  if (extension &&
@@ -119,7 +156,7 @@ export function isLocalModuleSpecifier(workspace, importerFile, importPath) {
119
156
  return false;
120
157
  }
121
158
  function resolveModule(workspace, importerFile, importPath) {
122
- return ts.resolveModuleName(importPath, path.join(workspace.targetDir, importerFile), workspace.compilerOptions, ts.sys).resolvedModule;
159
+ return ts.resolveModuleName(importPath, path.join(workspace.targetDir, importerFile), workspace.compilerOptions, ts.sys, workspace.moduleResolutionCache).resolvedModule;
123
160
  }
124
161
  function modulePatternMatches(pattern, importPath) {
125
162
  const wildcard = pattern.indexOf("*");
@@ -128,11 +165,44 @@ function modulePatternMatches(pattern, importPath) {
128
165
  return (importPath.startsWith(pattern.slice(0, wildcard)) &&
129
166
  importPath.endsWith(pattern.slice(wildcard + 1)));
130
167
  }
131
- function resolveCompilerOptions(targetDir) {
132
- return (ts.getParsedCommandLineOfConfigFile(path.join(targetDir, "tsconfig.json"), {}, {
168
+ function modulePatternWildcard(pattern, importPath) {
169
+ const wildcard = pattern.indexOf("*");
170
+ if (wildcard === -1)
171
+ return pattern === importPath ? "" : undefined;
172
+ const prefix = pattern.slice(0, wildcard);
173
+ const suffix = pattern.slice(wildcard + 1);
174
+ if (!importPath.startsWith(prefix) || !importPath.endsWith(suffix)) {
175
+ return undefined;
176
+ }
177
+ return importPath.slice(prefix.length, importPath.length - suffix.length);
178
+ }
179
+ function resolveCompilerConfiguration(targetDir) {
180
+ const compilerConfigFiles = new Set();
181
+ const configPath = path.join(targetDir, "tsconfig.json");
182
+ const compilerOptions = ts.getParsedCommandLineOfConfigFile(configPath, {}, {
133
183
  ...ts.sys,
184
+ readFile(file) {
185
+ compilerConfigFiles.add(path.resolve(file));
186
+ return ts.sys.readFile(file);
187
+ },
134
188
  onUnRecoverableConfigFileDiagnostic: () => { },
135
- })?.options ?? {});
189
+ })?.options ?? {};
190
+ return {
191
+ compilerConfigFiles: [...compilerConfigFiles].sort(),
192
+ compilerOptions: compilerOptions.paths
193
+ ? compilerOptions
194
+ : {
195
+ ...compilerOptions,
196
+ baseUrl: compilerOptions.baseUrl ?? targetDir,
197
+ paths: {
198
+ "@/*": ["*"],
199
+ },
200
+ },
201
+ };
202
+ }
203
+ function compilerPathsBase(compilerOptions, targetDir) {
204
+ const optionsWithPathBase = compilerOptions;
205
+ return (compilerOptions.baseUrl ?? optionsWithPathBase.pathsBasePath ?? targetDir);
136
206
  }
137
207
  function scriptKind(file) {
138
208
  if (file.endsWith(".tsx"))
@@ -1 +1 @@
1
- {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../src/analysis/workspace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../src/analysis/workspace.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,103 @@
1
+ import { type AppMapEdge, type AppMapEdgeKind, type AppMapNode } from "./app-map.js";
2
+ import { type GitChangeComparison, type GitChangedFileStatus } from "./git-changes.js";
3
+ /** Relationship between one changed repository file and the selected app. */
4
+ export type AppChangeFileScope = "app" | "governing" | "outside" | "workspace-dependency";
5
+ /** One Git change classified relative to the selected Beignet app. */
6
+ export type AppChangedFile = {
7
+ status: GitChangedFileStatus;
8
+ path: string;
9
+ oldPath?: string;
10
+ scope: AppChangeFileScope;
11
+ };
12
+ /** Why one mapped concept appears in a changed-app report. */
13
+ export type AppChangeImpact = "app-wide" | "consumer" | "context" | "direct" | "related";
14
+ /** Source-backed reason connecting a Git change to one mapped concept. */
15
+ export type AppChangeReason = {
16
+ kind: "app-wide" | "import" | "ownership" | "relationship" | "source";
17
+ changedFile: string;
18
+ message: string;
19
+ evidence?: {
20
+ file: string;
21
+ line?: number;
22
+ column?: number;
23
+ confidence: "exact" | "partial";
24
+ };
25
+ relationship?: {
26
+ kind: AppMapEdgeKind;
27
+ from: string;
28
+ to: string;
29
+ };
30
+ };
31
+ /** App-map node annotated with its strongest change-impact classification. */
32
+ export type AppChangeImpactedNode = AppMapNode & {
33
+ impact: AppChangeImpact;
34
+ reasons: AppChangeReason[];
35
+ reasonCount: number;
36
+ reasonsTruncated: boolean;
37
+ };
38
+ /** App-map edge used as semantic change-impact evidence. */
39
+ export type AppChangeRelationship = AppMapEdge & {
40
+ impact: "consumer" | "related";
41
+ };
42
+ /** Static-analysis blind spot retained in a changed-app report. */
43
+ export type AppChangeGap = {
44
+ code: string;
45
+ message: string;
46
+ /** Repository-relative file associated with this gap. */
47
+ file?: string;
48
+ };
49
+ /** Deterministically bounded report section with complete item counts. */
50
+ export type BoundedAppChangeSection<T> = {
51
+ items: T[];
52
+ returned: number;
53
+ total: number;
54
+ truncated: boolean;
55
+ };
56
+ /** Bounded gap examples plus exhaustive counts for every gap code. */
57
+ export type BoundedAppChangeGapSection = BoundedAppChangeSection<AppChangeGap> & {
58
+ countsByCode: Record<string, number>;
59
+ };
60
+ /** Version 1 report mapping a Git change set to Beignet application concepts. */
61
+ export type AppChangeImpactResult = {
62
+ schemaVersion: 1;
63
+ targetDir: string;
64
+ repository: {
65
+ root: string;
66
+ workspaceRoot?: string;
67
+ comparison: GitChangeComparison;
68
+ repositoryChangeHash: string;
69
+ scopedChangeHash: string;
70
+ };
71
+ classification: {
72
+ appWide: boolean;
73
+ docsOnly: boolean;
74
+ };
75
+ summary: {
76
+ changedFiles: number;
77
+ scopedChangedFiles: number;
78
+ outsideChangedFiles: number;
79
+ impactedFeatures: number;
80
+ impactedNodes: number;
81
+ direct: number;
82
+ consumers: number;
83
+ related: number;
84
+ contexts: number;
85
+ appWide: number;
86
+ relationships: number;
87
+ gaps: number;
88
+ };
89
+ changedFiles: BoundedAppChangeSection<AppChangedFile>;
90
+ impactedNodes: BoundedAppChangeSection<AppChangeImpactedNode>;
91
+ relationships: BoundedAppChangeSection<AppChangeRelationship>;
92
+ gaps: BoundedAppChangeGapSection;
93
+ };
94
+ /** Options for mapping the current Git change set. */
95
+ export type AppMapChangesOptions = {
96
+ cwd?: string;
97
+ base?: string;
98
+ };
99
+ /** Map the current Git change set to bounded, source-backed Beignet concepts. */
100
+ export declare function mapAppChanges(options?: AppMapChangesOptions): Promise<AppChangeImpactResult>;
101
+ /** Format the report-only changed app map for a terminal. */
102
+ export declare function formatAppChangeImpact(result: AppChangeImpactResult): string;
103
+ //# sourceMappingURL=app-map-changes.d.ts.map