@m3hti/commit-genie 1.4.0 → 2.0.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.
@@ -0,0 +1,379 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.isParseableFile = isParseableFile;
40
+ exports.isSignatureBreakingAST = isSignatureBreakingAST;
41
+ exports.extractExportsFromSource = extractExportsFromSource;
42
+ exports.computeExportDiffAST = computeExportDiffAST;
43
+ const parser_1 = require("@babel/parser");
44
+ const traverse_1 = __importDefault(require("@babel/traverse"));
45
+ const t = __importStar(require("@babel/types"));
46
+ const PARSEABLE_EXTENSIONS = /\.(js|jsx|ts|tsx|mjs|cjs|mts|cts)$/;
47
+ /** Check if a file path is parseable by the AST analyzer. */
48
+ function isParseableFile(filePath) {
49
+ return PARSEABLE_EXTENSIONS.test(filePath);
50
+ }
51
+ /** True if a signature change is breaking (required param removed, reordered, or new required added). */
52
+ function isSignatureBreakingAST(oldParams, newParams) {
53
+ // Every old required param must still exist at the same position
54
+ for (let i = 0; i < oldParams.length; i++) {
55
+ if (!oldParams[i].required)
56
+ continue;
57
+ if (i >= newParams.length)
58
+ return true; // param removed
59
+ if (oldParams[i].name !== newParams[i].name)
60
+ return true; // reordered/renamed
61
+ }
62
+ // New required param at any position beyond old length = breaking
63
+ for (let i = 0; i < newParams.length; i++) {
64
+ if (!newParams[i].required)
65
+ continue;
66
+ if (i >= oldParams.length)
67
+ return true;
68
+ }
69
+ return false;
70
+ }
71
+ /** Extract all exported symbols from source code using AST analysis. */
72
+ function extractExportsFromSource(source, filePath) {
73
+ let ast;
74
+ try {
75
+ ast = (0, parser_1.parse)(source, {
76
+ sourceType: 'module',
77
+ allowImportExportEverywhere: true,
78
+ allowReturnOutsideFunction: true,
79
+ errorRecovery: true,
80
+ plugins: getParserPlugins(filePath),
81
+ });
82
+ }
83
+ catch {
84
+ return [];
85
+ }
86
+ const results = [];
87
+ (0, traverse_1.default)(ast, {
88
+ ExportNamedDeclaration(path) {
89
+ const decl = path.node.declaration;
90
+ if (decl) {
91
+ results.push(...extractFromDeclaration(decl, false, source));
92
+ }
93
+ // export { foo, bar } or export { foo as bar } [from '...']
94
+ for (const spec of path.node.specifiers || []) {
95
+ if (t.isExportSpecifier(spec)) {
96
+ const exported = t.isIdentifier(spec.exported) ? spec.exported.name : spec.exported.value;
97
+ results.push({
98
+ name: exported,
99
+ kind: 're-export',
100
+ line: getSourceLine(source, path.node),
101
+ });
102
+ }
103
+ }
104
+ },
105
+ ExportDefaultDeclaration(path) {
106
+ const decl = path.node.declaration;
107
+ const descriptors = extractFromDeclaration(decl, true, source);
108
+ if (descriptors.length > 0) {
109
+ results.push(...descriptors);
110
+ }
111
+ else {
112
+ results.push({
113
+ name: 'default',
114
+ kind: 'default',
115
+ line: getSourceLine(source, path.node),
116
+ });
117
+ }
118
+ },
119
+ ExportAllDeclaration(path) {
120
+ const src = path.node.source.value;
121
+ results.push({
122
+ name: `*<${src}>`,
123
+ kind: 're-export',
124
+ line: getSourceLine(source, path.node),
125
+ });
126
+ },
127
+ AssignmentExpression(path) {
128
+ const left = path.node.left;
129
+ if (!t.isMemberExpression(left))
130
+ return;
131
+ // module.exports.foo = ...
132
+ if (t.isMemberExpression(left.object) &&
133
+ t.isIdentifier(left.object.object, { name: 'module' }) &&
134
+ t.isIdentifier(left.object.property, { name: 'exports' }) &&
135
+ t.isIdentifier(left.property)) {
136
+ const right = path.node.right;
137
+ results.push({
138
+ name: left.property.name,
139
+ kind: inferKindFromNode(right),
140
+ params: extractParamsFromNode(right),
141
+ signature: buildSignatureString(right),
142
+ line: getSourceLine(source, path.node),
143
+ });
144
+ return;
145
+ }
146
+ // exports.foo = ...
147
+ if (t.isIdentifier(left.object, { name: 'exports' }) &&
148
+ t.isIdentifier(left.property)) {
149
+ const right = path.node.right;
150
+ results.push({
151
+ name: left.property.name,
152
+ kind: inferKindFromNode(right),
153
+ params: extractParamsFromNode(right),
154
+ signature: buildSignatureString(right),
155
+ line: getSourceLine(source, path.node),
156
+ });
157
+ return;
158
+ }
159
+ // module.exports = { ... } (batch)
160
+ if (t.isIdentifier(left.object, { name: 'module' }) &&
161
+ t.isIdentifier(left.property, { name: 'exports' }) &&
162
+ t.isObjectExpression(path.node.right)) {
163
+ for (const prop of path.node.right.properties) {
164
+ if (t.isObjectProperty(prop) && t.isIdentifier(prop.key)) {
165
+ results.push({
166
+ name: prop.key.name,
167
+ kind: inferKindFromNode(prop.value),
168
+ params: extractParamsFromNode(prop.value),
169
+ signature: buildSignatureString(prop.value),
170
+ line: getSourceLine(source, prop),
171
+ });
172
+ }
173
+ if (t.isObjectMethod(prop) && t.isIdentifier(prop.key)) {
174
+ results.push({
175
+ name: prop.key.name,
176
+ kind: 'function',
177
+ params: extractParamsFromFunctionParams(prop.params),
178
+ signature: buildSignatureFromParams(prop.params, source),
179
+ line: getSourceLine(source, prop),
180
+ });
181
+ }
182
+ }
183
+ }
184
+ },
185
+ });
186
+ return results;
187
+ }
188
+ /**
189
+ * Compute the export diff between two versions of a file.
190
+ * Pass null for oldSource (new file) or newSource (deleted file).
191
+ */
192
+ function computeExportDiffAST(oldSource, newSource, filePath) {
193
+ const oldExports = oldSource ? extractExportsFromSource(oldSource, filePath) : [];
194
+ const newExports = newSource ? extractExportsFromSource(newSource, filePath) : [];
195
+ // Build maps keyed by name (not kind:name) so function→arrow refactors don't false-positive
196
+ const oldMap = new Map();
197
+ for (const sym of oldExports)
198
+ oldMap.set(sym.name, sym);
199
+ const newMap = new Map();
200
+ for (const sym of newExports)
201
+ newMap.set(sym.name, sym);
202
+ const removed = [];
203
+ const added = [];
204
+ // Symbols in old but not in new → removed
205
+ for (const [name, sym] of oldMap) {
206
+ if (!newMap.has(name)) {
207
+ removed.push(sym);
208
+ }
209
+ }
210
+ // Symbols in new but not in old → added
211
+ for (const [name, sym] of newMap) {
212
+ if (!oldMap.has(name)) {
213
+ added.push(sym);
214
+ }
215
+ }
216
+ // Symbols in both with different signatures → appear in both removed+added
217
+ // so that the caller can compare them with isSignatureBreakingAST
218
+ for (const [name, oldSym] of oldMap) {
219
+ const newSym = newMap.get(name);
220
+ if (newSym && oldSym.signature !== undefined && newSym.signature !== undefined &&
221
+ oldSym.signature !== newSym.signature) {
222
+ removed.push(oldSym);
223
+ added.push(newSym);
224
+ }
225
+ }
226
+ return { removed, added };
227
+ }
228
+ // ── Internal helpers ────────────────────────────────────────
229
+ function getParserPlugins(filePath) {
230
+ const plugins = [
231
+ 'decorators-legacy',
232
+ 'classProperties',
233
+ 'classPrivateProperties',
234
+ 'classPrivateMethods',
235
+ 'dynamicImport',
236
+ 'exportDefaultFrom',
237
+ 'exportNamespaceFrom',
238
+ 'optionalChaining',
239
+ 'nullishCoalescingOperator',
240
+ ];
241
+ if (/\.tsx?$|\.mts$|\.cts$/i.test(filePath))
242
+ plugins.push('typescript');
243
+ if (/\.[jt]sx$/i.test(filePath))
244
+ plugins.push('jsx');
245
+ return plugins;
246
+ }
247
+ function getSourceLine(source, node) {
248
+ if (!node.loc)
249
+ return '';
250
+ const lines = source.split('\n');
251
+ return lines[node.loc.start.line - 1]?.trim() || '';
252
+ }
253
+ function extractFromDeclaration(decl, isDefault, source) {
254
+ // FunctionDeclaration
255
+ if (t.isFunctionDeclaration(decl)) {
256
+ return [{
257
+ name: decl.id?.name || 'default',
258
+ kind: isDefault ? 'default' : 'function',
259
+ params: extractParamsFromFunctionParams(decl.params),
260
+ signature: buildSignatureFromParams(decl.params, source),
261
+ line: getSourceLine(source, decl),
262
+ }];
263
+ }
264
+ // ClassDeclaration
265
+ if (t.isClassDeclaration(decl)) {
266
+ return [{
267
+ name: decl.id?.name || 'default',
268
+ kind: isDefault ? 'default' : 'class',
269
+ line: getSourceLine(source, decl),
270
+ }];
271
+ }
272
+ // VariableDeclaration
273
+ if (t.isVariableDeclaration(decl)) {
274
+ return decl.declarations.map(d => {
275
+ const name = t.isIdentifier(d.id) ? d.id.name : 'default';
276
+ const init = d.init;
277
+ return {
278
+ name,
279
+ kind: inferKindFromNode(init),
280
+ params: extractParamsFromNode(init),
281
+ signature: buildSignatureString(init),
282
+ line: getSourceLine(source, d),
283
+ };
284
+ });
285
+ }
286
+ // TSInterfaceDeclaration
287
+ if (t.isTSInterfaceDeclaration(decl)) {
288
+ return [{
289
+ name: decl.id.name,
290
+ kind: 'interface',
291
+ line: getSourceLine(source, decl),
292
+ }];
293
+ }
294
+ // TSTypeAliasDeclaration
295
+ if (t.isTSTypeAliasDeclaration(decl)) {
296
+ return [{
297
+ name: decl.id.name,
298
+ kind: 'type',
299
+ line: getSourceLine(source, decl),
300
+ }];
301
+ }
302
+ // TSEnumDeclaration
303
+ if (t.isTSEnumDeclaration(decl)) {
304
+ return [{
305
+ name: decl.id.name,
306
+ kind: 'enum',
307
+ line: getSourceLine(source, decl),
308
+ }];
309
+ }
310
+ return [];
311
+ }
312
+ function inferKindFromNode(node) {
313
+ if (!node)
314
+ return 'const';
315
+ if (t.isArrowFunctionExpression(node) || t.isFunctionExpression(node))
316
+ return 'function';
317
+ if (t.isClassExpression(node))
318
+ return 'class';
319
+ return 'const';
320
+ }
321
+ function extractParamsFromNode(node) {
322
+ if (!node)
323
+ return undefined;
324
+ if (t.isArrowFunctionExpression(node) || t.isFunctionExpression(node)) {
325
+ return extractParamsFromFunctionParams(node.params);
326
+ }
327
+ return undefined;
328
+ }
329
+ function extractParamsFromFunctionParams(params) {
330
+ return params.map(p => ({
331
+ name: paramName(p),
332
+ required: isParamRequired(p),
333
+ }));
334
+ }
335
+ function paramName(param) {
336
+ if (t.isIdentifier(param))
337
+ return param.name;
338
+ if (t.isAssignmentPattern(param) && t.isIdentifier(param.left))
339
+ return param.left.name;
340
+ if (t.isRestElement(param) && t.isIdentifier(param.argument))
341
+ return '...' + param.argument.name;
342
+ if (t.isObjectPattern(param))
343
+ return '{...}';
344
+ if (t.isArrayPattern(param))
345
+ return '[...]';
346
+ if (t.isTSParameterProperty(param))
347
+ return paramName(param.parameter);
348
+ return '?';
349
+ }
350
+ function isParamRequired(param) {
351
+ if (t.isAssignmentPattern(param))
352
+ return false; // has default value
353
+ if (t.isRestElement(param))
354
+ return false; // rest params are never "required" in breaking sense
355
+ if (t.isIdentifier(param) && param.optional)
356
+ return false;
357
+ if (t.isTSParameterProperty(param))
358
+ return isParamRequired(param.parameter);
359
+ return true;
360
+ }
361
+ function buildSignatureString(node) {
362
+ if (!node)
363
+ return undefined;
364
+ if (t.isArrowFunctionExpression(node) || t.isFunctionExpression(node)) {
365
+ return buildSignatureFromParams(node.params, '');
366
+ }
367
+ return undefined;
368
+ }
369
+ function buildSignatureFromParams(params, _source) {
370
+ if (params.length === 0)
371
+ return '()';
372
+ const parts = params.map(p => {
373
+ const name = paramName(p);
374
+ const opt = !isParamRequired(p) ? '?' : '';
375
+ return name + opt;
376
+ });
377
+ return '(' + parts.join(', ') + ')';
378
+ }
379
+ //# sourceMappingURL=astExportAnalyzer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"astExportAnalyzer.js","sourceRoot":"","sources":["../../src/services/astExportAnalyzer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=astExportAnalyzer.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"astExportAnalyzer.test.d.ts","sourceRoot":"","sources":["../../src/services/astExportAnalyzer.test.ts"],"names":[],"mappings":""}