@specverse/engines 6.0.7 → 6.0.8

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 (39) hide show
  1. package/dist/analyse-prepass/adapters/index.d.ts +9 -0
  2. package/dist/analyse-prepass/adapters/index.d.ts.map +1 -0
  3. package/dist/analyse-prepass/adapters/index.js +9 -0
  4. package/dist/analyse-prepass/adapters/index.js.map +1 -0
  5. package/dist/analyse-prepass/adapters/typescript-prisma.d.ts +67 -0
  6. package/dist/analyse-prepass/adapters/typescript-prisma.d.ts.map +1 -0
  7. package/dist/analyse-prepass/adapters/typescript-prisma.js +167 -0
  8. package/dist/analyse-prepass/adapters/typescript-prisma.js.map +1 -0
  9. package/dist/analyse-prepass/backends/codegraph.d.ts +56 -0
  10. package/dist/analyse-prepass/backends/codegraph.d.ts.map +1 -0
  11. package/dist/analyse-prepass/backends/codegraph.js +303 -0
  12. package/dist/analyse-prepass/backends/codegraph.js.map +1 -0
  13. package/dist/analyse-prepass/backends/grep-only.d.ts +33 -0
  14. package/dist/analyse-prepass/backends/grep-only.d.ts.map +1 -0
  15. package/dist/analyse-prepass/backends/grep-only.js +377 -0
  16. package/dist/analyse-prepass/backends/grep-only.js.map +1 -0
  17. package/dist/analyse-prepass/backends/index.d.ts +20 -0
  18. package/dist/analyse-prepass/backends/index.d.ts.map +1 -0
  19. package/dist/analyse-prepass/backends/index.js +27 -0
  20. package/dist/analyse-prepass/backends/index.js.map +1 -0
  21. package/dist/analyse-prepass/backends/method-patterns.d.ts +27 -0
  22. package/dist/analyse-prepass/backends/method-patterns.d.ts.map +1 -0
  23. package/dist/analyse-prepass/backends/method-patterns.js +177 -0
  24. package/dist/analyse-prepass/backends/method-patterns.js.map +1 -0
  25. package/dist/analyse-prepass/backends/walk.d.ts +7 -0
  26. package/dist/analyse-prepass/backends/walk.d.ts.map +1 -0
  27. package/dist/analyse-prepass/backends/walk.js +105 -0
  28. package/dist/analyse-prepass/backends/walk.js.map +1 -0
  29. package/dist/analyse-prepass/index.d.ts +76 -0
  30. package/dist/analyse-prepass/index.d.ts.map +1 -0
  31. package/dist/analyse-prepass/index.js +114 -0
  32. package/dist/analyse-prepass/index.js.map +1 -0
  33. package/dist/analyse-prepass/interface.d.ts +222 -0
  34. package/dist/analyse-prepass/interface.d.ts.map +1 -0
  35. package/dist/analyse-prepass/interface.js +20 -0
  36. package/dist/analyse-prepass/interface.js.map +1 -0
  37. package/dist/libs/instance-factories/orms/templates/prisma/schema-generator.js +25 -4
  38. package/libs/instance-factories/orms/templates/prisma/schema-generator.ts +43 -5
  39. package/package.json +5 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codegraph.js","sourceRoot":"","sources":["../../../src/analyse-prepass/backends/codegraph.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import type { StructuralPrepass, Symbol, Import, FileFilter, ClassFilter, MethodFilter, InterfaceFilter, IndexResult, MethodFactSheet } from '../interface.js';
2
+ export declare class GrepOnlyBackend implements StructuralPrepass {
3
+ private sourceDir;
4
+ private files;
5
+ /** Cache file→content to avoid re-reading on multiple calls. */
6
+ private fileCache;
7
+ capabilities: {
8
+ callGraph: boolean;
9
+ crossFileResolution: boolean;
10
+ componentClustering: boolean;
11
+ fullTextSearch: boolean;
12
+ fileWatching: boolean;
13
+ };
14
+ init(sourceDir: string): Promise<void>;
15
+ index(): Promise<IndexResult>;
16
+ listFiles(filter?: FileFilter): Promise<string[]>;
17
+ listClasses(filter?: ClassFilter): Promise<Symbol[]>;
18
+ listMethods(filter?: MethodFilter): Promise<Symbol[]>;
19
+ listInterfaces(filter?: InterfaceFilter): Promise<Symbol[]>;
20
+ listImports(file: string): Promise<Import[]>;
21
+ fileSourceText(file: string): Promise<string>;
22
+ /**
23
+ * Extract per-method facts via regex over the method body.
24
+ *
25
+ * Locates the method (parses class containing `qualifiedName`'s class part,
26
+ * scans for the method by name), pulls the body via brace-depth tracking,
27
+ * runs each pattern extractor on it.
28
+ */
29
+ getMethodDetails(qualifiedName: string): Promise<MethodFactSheet | null>;
30
+ /** Find the closing line of a class block by tracking brace depth. */
31
+ private findClassEnd;
32
+ }
33
+ //# sourceMappingURL=grep-only.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grep-only.d.ts","sourceRoot":"","sources":["../../../src/analyse-prepass/backends/grep-only.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EACV,iBAAiB,EACjB,MAAM,EACN,MAAM,EACN,UAAU,EACV,WAAW,EACX,YAAY,EACZ,eAAe,EACf,WAAW,EACX,eAAe,EAChB,MAAM,iBAAiB,CAAC;AA+DzB,qBAAa,eAAgB,YAAW,iBAAiB;IACvD,OAAO,CAAC,SAAS,CAAM;IACvB,OAAO,CAAC,KAAK,CAAgB;IAC7B,gEAAgE;IAChE,OAAO,CAAC,SAAS,CAA6B;IAE9C,YAAY;;;;;;MAMV;IAEI,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMtC,KAAK,IAAI,OAAO,CAAC,WAAW,CAAC;IAY7B,SAAS,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAejD,WAAW,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAgCpD,WAAW,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAkCrD,cAAc,CAAC,MAAM,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA8B3D,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA4B5C,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAOnD;;;;;;OAMG;IACG,gBAAgB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAgG9E,sEAAsE;IACtE,OAAO,CAAC,YAAY;CA6BrB"}
@@ -0,0 +1,377 @@
1
+ /**
2
+ * Grep-only backend — minimum-viable fallback for `StructuralPrepass`.
3
+ *
4
+ * Walks the source tree with regex per language. No external tools, no
5
+ * indexer, no SQLite. Useful for:
6
+ * - Tests / CI environments where CodeGraph isn't installed
7
+ * - Bootstrapping the adapter layer before CodeGraph is wired
8
+ * - Sanity-check baseline (a real backend should at least equal this)
9
+ *
10
+ * Capabilities: only the bare minimum (no call graph, no cross-file
11
+ * resolution, no clustering). Adapters that need more should select a
12
+ * richer backend.
13
+ */
14
+ import { readFileSync } from 'fs';
15
+ import { extname } from 'path';
16
+ import { walkSourceTree, globToRegex } from './walk.js';
17
+ import { extractEmits, extractDbWrites, extractExternalCalls, extractThrows, extractAsyncBoundaries, countBranchPoints, extractCallNames, sliceBody, } from './method-patterns.js';
18
+ const LANG_PATTERNS = {
19
+ typescript: {
20
+ fileExtensions: ['.ts', '.tsx'],
21
+ classRegex: /^(?:export\s+)?(?:default\s+)?(?:abstract\s+)?class\s+(\w+)/gm,
22
+ methodRegex: /^\s+(?:public|private|protected|static|async)?\s*(?:async\s+)?(\w+)\s*\(/gm,
23
+ interfaceRegex: /^(?:export\s+)?interface\s+(\w+)/gm,
24
+ importRegex: /^import\s+(?:type\s+)?(?:\{([^}]+)\}|(\w+))\s+from\s+["']([^"']+)["']/gm,
25
+ },
26
+ javascript: {
27
+ fileExtensions: ['.js', '.jsx', '.mjs', '.cjs'],
28
+ classRegex: /^(?:export\s+)?(?:default\s+)?class\s+(\w+)/gm,
29
+ methodRegex: /^\s+(?:async\s+)?(\w+)\s*\(/gm,
30
+ importRegex: /^import\s+(?:\{([^}]+)\}|(\w+))\s+from\s+["']([^"']+)["']/gm,
31
+ },
32
+ python: {
33
+ fileExtensions: ['.py'],
34
+ classRegex: /^class\s+(\w+)/gm,
35
+ methodRegex: /^\s+def\s+(\w+)\s*\(/gm,
36
+ importRegex: /^(?:from\s+(\S+)\s+)?import\s+(.+)$/gm,
37
+ },
38
+ go: {
39
+ fileExtensions: ['.go'],
40
+ classRegex: /^type\s+(\w+)\s+struct/gm,
41
+ methodRegex: /^func\s+\([^)]*\)\s+(\w+)\s*\(/gm,
42
+ importRegex: /^import\s+(?:\(([\s\S]*?)\)|"([^"]+)")/gm,
43
+ },
44
+ };
45
+ /**
46
+ * Detect a language using grep-only's own per-language pattern set.
47
+ * (Matches against fileExtensions inside LANG_PATTERNS — different from
48
+ * walk.ts's `detectLanguage` which uses a broader extension set without
49
+ * regex patterns.)
50
+ */
51
+ function detectGrepLanguage(filePath) {
52
+ const ext = extname(filePath).toLowerCase();
53
+ for (const [lang, patterns] of Object.entries(LANG_PATTERNS)) {
54
+ if (patterns.fileExtensions.includes(ext))
55
+ return lang;
56
+ }
57
+ return null;
58
+ }
59
+ export class GrepOnlyBackend {
60
+ sourceDir = '';
61
+ files = [];
62
+ /** Cache file→content to avoid re-reading on multiple calls. */
63
+ fileCache = new Map();
64
+ capabilities = {
65
+ callGraph: false,
66
+ crossFileResolution: false,
67
+ componentClustering: false,
68
+ fullTextSearch: false,
69
+ fileWatching: false,
70
+ };
71
+ async init(sourceDir) {
72
+ this.sourceDir = sourceDir;
73
+ this.files = [];
74
+ this.fileCache.clear();
75
+ }
76
+ async index() {
77
+ const start = Date.now();
78
+ // Walk the full filesystem; downstream listClasses / listMethods filter by
79
+ // language, but listFiles needs to expose all files (e.g. schema.prisma).
80
+ this.files = walkSourceTree(this.sourceDir);
81
+ return {
82
+ files: this.files.length,
83
+ symbols: 0, // we don't pre-index symbols; queries scan on demand
84
+ durationMs: Date.now() - start,
85
+ };
86
+ }
87
+ async listFiles(filter) {
88
+ let result = [...this.files];
89
+ if (filter?.dir) {
90
+ result = result.filter((f) => f.startsWith(filter.dir));
91
+ }
92
+ if (filter?.lang) {
93
+ result = result.filter((f) => detectGrepLanguage(f) === filter.lang);
94
+ }
95
+ if (filter?.glob) {
96
+ const re = globToRegex(filter.glob);
97
+ result = result.filter((f) => re.test(f));
98
+ }
99
+ return result;
100
+ }
101
+ async listClasses(filter) {
102
+ const out = [];
103
+ for (const file of this.files) {
104
+ if (filter?.dir && !file.startsWith(filter.dir))
105
+ continue;
106
+ const lang = detectGrepLanguage(file);
107
+ if (!lang)
108
+ continue;
109
+ const patterns = LANG_PATTERNS[lang];
110
+ const text = await this.fileSourceText(file);
111
+ const lines = text.split('\n');
112
+ const matches = [...text.matchAll(patterns.classRegex)];
113
+ for (const m of matches) {
114
+ const name = m[1];
115
+ if (filter?.namePattern && !filter.namePattern.test(name))
116
+ continue;
117
+ const idx = m.index ?? 0;
118
+ const startLine = text.slice(0, idx).split('\n').length;
119
+ // Crude end-line: scan forward for matching brace depth
120
+ const endLine = this.findClassEnd(lines, startLine - 1, lang);
121
+ out.push({
122
+ kind: 'class',
123
+ name,
124
+ qualifiedName: name, // grep-only doesn't track namespacing
125
+ filePath: file,
126
+ startLine,
127
+ endLine,
128
+ isExported: m[0].includes('export'),
129
+ language: lang,
130
+ });
131
+ }
132
+ }
133
+ return out;
134
+ }
135
+ async listMethods(filter) {
136
+ const out = [];
137
+ const classes = await this.listClasses();
138
+ const targetClasses = filter?.class ? classes.filter((c) => c.qualifiedName === filter.class) : classes;
139
+ for (const cls of targetClasses) {
140
+ const lang = cls.language;
141
+ const patterns = LANG_PATTERNS[lang];
142
+ if (!patterns.methodRegex)
143
+ continue;
144
+ const text = await this.fileSourceText(cls.filePath);
145
+ const lines = text.split('\n');
146
+ // Slice the class body
147
+ const bodyLines = lines.slice(cls.startLine - 1, cls.endLine);
148
+ const body = bodyLines.join('\n');
149
+ const matches = [...body.matchAll(patterns.methodRegex)];
150
+ for (const m of matches) {
151
+ const name = m[1];
152
+ // Skip pseudo-methods like 'constructor', 'if', 'for', etc. (heuristic — keyword filter)
153
+ if (['if', 'for', 'while', 'switch', 'catch', 'return'].includes(name))
154
+ continue;
155
+ if (filter?.nameIn && !filter.nameIn.includes(name))
156
+ continue;
157
+ const lineOffset = body.slice(0, m.index ?? 0).split('\n').length;
158
+ out.push({
159
+ kind: 'method',
160
+ name,
161
+ qualifiedName: `${cls.name}.${name}`,
162
+ filePath: cls.filePath,
163
+ startLine: cls.startLine + lineOffset - 1,
164
+ endLine: cls.startLine + lineOffset - 1, // grep-only doesn't trace function ends
165
+ language: lang,
166
+ });
167
+ }
168
+ }
169
+ return out;
170
+ }
171
+ async listInterfaces(filter) {
172
+ const out = [];
173
+ for (const file of this.files) {
174
+ if (filter?.dir && !file.startsWith(filter.dir))
175
+ continue;
176
+ const lang = detectGrepLanguage(file);
177
+ if (!lang)
178
+ continue;
179
+ const patterns = LANG_PATTERNS[lang];
180
+ if (!patterns.interfaceRegex)
181
+ continue;
182
+ const text = await this.fileSourceText(file);
183
+ const matches = [...text.matchAll(patterns.interfaceRegex)];
184
+ for (const m of matches) {
185
+ const name = m[1];
186
+ if (filter?.namePattern && !filter.namePattern.test(name))
187
+ continue;
188
+ const idx = m.index ?? 0;
189
+ const startLine = text.slice(0, idx).split('\n').length;
190
+ out.push({
191
+ kind: 'interface',
192
+ name,
193
+ qualifiedName: name,
194
+ filePath: file,
195
+ startLine,
196
+ endLine: startLine,
197
+ isExported: m[0].includes('export'),
198
+ language: lang,
199
+ });
200
+ }
201
+ }
202
+ return out;
203
+ }
204
+ async listImports(file) {
205
+ const lang = detectGrepLanguage(file);
206
+ if (!lang)
207
+ return [];
208
+ const patterns = LANG_PATTERNS[lang];
209
+ if (!patterns.importRegex)
210
+ return [];
211
+ const text = await this.fileSourceText(file);
212
+ const out = [];
213
+ for (const m of text.matchAll(patterns.importRegex)) {
214
+ // TS/JS: groups are (named imports, default import, module path)
215
+ // Python: (from-module, names) or (names) for plain imports
216
+ // Go: (block content, single-line module)
217
+ if (lang === 'typescript' || lang === 'javascript') {
218
+ const named = m[1] ? m[1].split(',').map((s) => s.trim()) : [];
219
+ const def = m[2] ? [m[2]] : [];
220
+ const mod = m[3];
221
+ out.push({ fromFile: file, toModule: mod, symbols: [...named, ...def] });
222
+ }
223
+ else if (lang === 'python') {
224
+ const fromMod = m[1] || '';
225
+ const names = (m[2] || '').split(',').map((s) => s.trim());
226
+ out.push({ fromFile: file, toModule: fromMod, symbols: names });
227
+ }
228
+ else if (lang === 'go') {
229
+ const mod = m[2] || (m[1] || '').replace(/"/g, '').trim();
230
+ if (mod)
231
+ out.push({ fromFile: file, toModule: mod, symbols: [] });
232
+ }
233
+ }
234
+ return out;
235
+ }
236
+ async fileSourceText(file) {
237
+ if (this.fileCache.has(file))
238
+ return this.fileCache.get(file);
239
+ const text = readFileSync(file, 'utf8');
240
+ this.fileCache.set(file, text);
241
+ return text;
242
+ }
243
+ /**
244
+ * Extract per-method facts via regex over the method body.
245
+ *
246
+ * Locates the method (parses class containing `qualifiedName`'s class part,
247
+ * scans for the method by name), pulls the body via brace-depth tracking,
248
+ * runs each pattern extractor on it.
249
+ */
250
+ async getMethodDetails(qualifiedName) {
251
+ // Parse "ClassName.methodName" — we only support single-level qualified
252
+ // names for v1; namespaced classes (e.g. SomeModule.ClassName.method) fall
253
+ // through as if `ClassName.methodName`.
254
+ const lastDot = qualifiedName.lastIndexOf('.');
255
+ if (lastDot < 0)
256
+ return null;
257
+ const className = qualifiedName.slice(0, lastDot);
258
+ const methodName = qualifiedName.slice(lastDot + 1);
259
+ const classes = await this.listClasses({ namePattern: new RegExp(`^${className}$`) });
260
+ if (classes.length === 0)
261
+ return null;
262
+ const cls = classes[0];
263
+ const text = await this.fileSourceText(cls.filePath);
264
+ const lines = text.split('\n');
265
+ // Find the method declaration line within the class body
266
+ const classBody = lines.slice(cls.startLine - 1, cls.endLine);
267
+ let methodStartIdx = -1;
268
+ let methodSig = '';
269
+ for (let i = 0; i < classBody.length; i++) {
270
+ const line = classBody[i];
271
+ // Match: `[modifiers] [async] methodName(...)` — capture the method's name
272
+ const re = new RegExp(`^\\s+(?:public|private|protected|static|async)?\\s*(?:async\\s+)?${methodName}\\s*\\(`);
273
+ if (re.test(line)) {
274
+ methodStartIdx = i;
275
+ // Capture the signature line (single-line approximation; multi-line
276
+ // signatures roll up to the next `{`)
277
+ let sig = line.trim();
278
+ let j = i;
279
+ while (!sig.includes('{') && j + 1 < classBody.length) {
280
+ j++;
281
+ sig += ' ' + classBody[j].trim();
282
+ }
283
+ methodSig = sig.replace(/\s*\{\s*$/, '').trim();
284
+ break;
285
+ }
286
+ }
287
+ if (methodStartIdx < 0)
288
+ return null;
289
+ // Find body via brace depth — scan from the first `{` after methodStartIdx
290
+ const bodyStartFileLineIdx = cls.startLine - 1 + methodStartIdx;
291
+ let depth = 0;
292
+ let started = false;
293
+ let bodyEndFileLineIdx = bodyStartFileLineIdx;
294
+ for (let i = bodyStartFileLineIdx; i < lines.length; i++) {
295
+ for (const ch of lines[i]) {
296
+ if (ch === '{') {
297
+ depth++;
298
+ started = true;
299
+ }
300
+ else if (ch === '}') {
301
+ depth--;
302
+ if (started && depth === 0) {
303
+ bodyEndFileLineIdx = i;
304
+ i = lines.length; // break outer loop
305
+ break;
306
+ }
307
+ }
308
+ }
309
+ }
310
+ const bodyLines = lines.slice(bodyStartFileLineIdx, bodyEndFileLineIdx + 1);
311
+ const body = bodyLines.join('\n');
312
+ // Resolve called names → Symbol[] when possible (look up in our class index)
313
+ const callNames = extractCallNames(body);
314
+ const allMethods = await this.listMethods();
315
+ const calls = [];
316
+ for (const name of callNames) {
317
+ const match = allMethods.find((m) => m.name === name);
318
+ if (match)
319
+ calls.push(match);
320
+ }
321
+ return {
322
+ qualifiedName,
323
+ signature: methodSig,
324
+ body,
325
+ filePath: cls.filePath,
326
+ startLine: bodyStartFileLineIdx + 1,
327
+ endLine: bodyEndFileLineIdx + 1,
328
+ language: cls.language,
329
+ calls,
330
+ emits: extractEmits(body),
331
+ dbWrites: extractDbWrites(body),
332
+ externalCalls: extractExternalCalls(body),
333
+ throws: extractThrows(body),
334
+ asyncBoundaries: extractAsyncBoundaries(body),
335
+ branchPoints: countBranchPoints(body),
336
+ bodyTextSliced: sliceBody(body),
337
+ };
338
+ }
339
+ // ────────────────────────────────────────────────────────────────────
340
+ // Internals
341
+ // ────────────────────────────────────────────────────────────────────
342
+ /** Find the closing line of a class block by tracking brace depth. */
343
+ findClassEnd(lines, startLineIdx, lang) {
344
+ if (lang === 'python') {
345
+ // Indentation-based: find the next line at the SAME or LESS indent than the class line.
346
+ const classLine = lines[startLineIdx];
347
+ const baseIndent = classLine.match(/^(\s*)/)?.[1].length ?? 0;
348
+ for (let i = startLineIdx + 1; i < lines.length; i++) {
349
+ const line = lines[i];
350
+ if (line.trim() === '')
351
+ continue;
352
+ const indent = line.match(/^(\s*)/)?.[1].length ?? 0;
353
+ if (indent <= baseIndent)
354
+ return i; // 1-indexed, but i is 0-indexed; this is the first line AFTER the class
355
+ }
356
+ return lines.length;
357
+ }
358
+ // C-style: track brace depth
359
+ let depth = 0;
360
+ let started = false;
361
+ for (let i = startLineIdx; i < lines.length; i++) {
362
+ for (const char of lines[i]) {
363
+ if (char === '{') {
364
+ depth++;
365
+ started = true;
366
+ }
367
+ else if (char === '}') {
368
+ depth--;
369
+ if (started && depth === 0)
370
+ return i + 1; // 1-indexed line number
371
+ }
372
+ }
373
+ }
374
+ return lines.length;
375
+ }
376
+ }
377
+ //# sourceMappingURL=grep-only.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grep-only.js","sourceRoot":"","sources":["../../../src/analyse-prepass/backends/grep-only.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Backend selector — picks the best available `StructuralPrepass`.
3
+ *
4
+ * Order: codegraph (if available) → grep-only (always works).
5
+ * GitNexus to be added later.
6
+ */
7
+ import type { StructuralPrepass } from '../interface.js';
8
+ import { GrepOnlyBackend } from './grep-only.js';
9
+ import { CodeGraphBackend } from './codegraph.js';
10
+ export { GrepOnlyBackend, CodeGraphBackend };
11
+ export type BackendName = 'codegraph' | 'grep-only' | 'auto';
12
+ /**
13
+ * Select a backend by name, or auto-pick the richest available.
14
+ *
15
+ * `auto` semantics:
16
+ * - CodeGraph + sqlite3 both available → CodeGraph (richer, has call graph)
17
+ * - Otherwise → grep-only (always works, no external tools)
18
+ */
19
+ export declare function selectBackend(name?: BackendName): StructuralPrepass;
20
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/analyse-prepass/backends/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,CAAC;AAE7C,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,WAAW,GAAG,MAAM,CAAC;AAE7D;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,GAAE,WAAoB,GAAG,iBAAiB,CAiB3E"}
@@ -0,0 +1,27 @@
1
+ import { GrepOnlyBackend } from './grep-only.js';
2
+ import { CodeGraphBackend } from './codegraph.js';
3
+ export { GrepOnlyBackend, CodeGraphBackend };
4
+ /**
5
+ * Select a backend by name, or auto-pick the richest available.
6
+ *
7
+ * `auto` semantics:
8
+ * - CodeGraph + sqlite3 both available → CodeGraph (richer, has call graph)
9
+ * - Otherwise → grep-only (always works, no external tools)
10
+ */
11
+ export function selectBackend(name = 'auto') {
12
+ if (name === 'codegraph') {
13
+ if (!CodeGraphBackend.isAvailable()) {
14
+ throw new Error('CodeGraph backend requested but not available. Install with `npm i -g @colbymchenry/codegraph` and ensure sqlite3 is on PATH.');
15
+ }
16
+ return new CodeGraphBackend();
17
+ }
18
+ if (name === 'grep-only') {
19
+ return new GrepOnlyBackend();
20
+ }
21
+ // auto
22
+ if (CodeGraphBackend.isAvailable()) {
23
+ return new CodeGraphBackend();
24
+ }
25
+ return new GrepOnlyBackend();
26
+ }
27
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/analyse-prepass/backends/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,CAAC;AAI7C;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,OAAoB,MAAM;IACtD,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;QACzB,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CACb,+HAA+H,CAChI,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,gBAAgB,EAAE,CAAC;IAChC,CAAC;IACD,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;QACzB,OAAO,IAAI,eAAe,EAAE,CAAC;IAC/B,CAAC;IACD,OAAO;IACP,IAAI,gBAAgB,CAAC,WAAW,EAAE,EAAE,CAAC;QACnC,OAAO,IAAI,gBAAgB,EAAE,CAAC;IAChC,CAAC;IACD,OAAO,IAAI,eAAe,EAAE,CAAC;AAC/B,CAAC"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Method-body pattern extraction — shared between grep-only and CodeGraph
3
+ * backends. CodeGraph provides the call-graph piece via SQL; everything
4
+ * else (event emission, DB writes, throws, async boundaries, branch points,
5
+ * region slicing) is regex over raw source text. These patterns are
6
+ * deliberately broad — adapters can refine per framework.
7
+ *
8
+ * Patterns covered for v1: TypeScript / JavaScript. Python / Go / Java
9
+ * adapters add their own pattern sets per language.
10
+ */
11
+ import type { MethodFactSheet } from '../interface.js';
12
+ /** Slice a method body into the canonical PRECONDITIONS/EXECUTE/POSTCONDITIONS/EVENTS regions. */
13
+ export declare function sliceBody(body: string): MethodFactSheet['bodyTextSliced'];
14
+ /** Extract event names emitted from a TS/JS method body. */
15
+ export declare function extractEmits(body: string): string[];
16
+ /** Extract Prisma-style DB writes from a TS/JS method body. */
17
+ export declare function extractDbWrites(body: string): MethodFactSheet['dbWrites'];
18
+ /** Extract external system calls from a TS/JS method body. */
19
+ export declare function extractExternalCalls(body: string): MethodFactSheet['externalCalls'];
20
+ /** Extract throw statements (the type of error being thrown). */
21
+ export declare function extractThrows(body: string): string[];
22
+ /** Find async boundaries (await / Promise.all / Promise.race). */
23
+ export declare function extractAsyncBoundaries(body: string): MethodFactSheet['asyncBoundaries'];
24
+ /** Count branch points — if / else if / switch case / catch / ternary. */
25
+ export declare function countBranchPoints(body: string): number;
26
+ export declare function extractCallNames(body: string): string[];
27
+ //# sourceMappingURL=method-patterns.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"method-patterns.d.ts","sourceRoot":"","sources":["../../../src/analyse-prepass/backends/method-patterns.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAUvD,kGAAkG;AAClG,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAAC,gBAAgB,CAAC,CAmBzE;AAED,4DAA4D;AAC5D,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAiBnD;AAED,+DAA+D;AAC/D,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAAC,UAAU,CAAC,CAqCzE;AAED,8DAA8D;AAC9D,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAAC,eAAe,CAAC,CAmBnF;AAED,iEAAiE;AACjE,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAQpD;AAED,kEAAkE;AAClE,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAAC,iBAAiB,CAAC,CAkBvF;AAED,0EAA0E;AAC1E,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAStD;AAcD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAWvD"}