@openrewrite/rewrite 8.69.0-20251205-210445 → 8.69.0-20251207-092603
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.
- package/dist/cli/cli-utils.d.ts +12 -2
- package/dist/cli/cli-utils.d.ts.map +1 -1
- package/dist/cli/cli-utils.js +53 -13
- package/dist/cli/cli-utils.js.map +1 -1
- package/dist/cli/rewrite.d.ts.map +1 -1
- package/dist/cli/rewrite.js +230 -82
- package/dist/cli/rewrite.js.map +1 -1
- package/dist/cli/validate-parsing-recipe.d.ts +23 -0
- package/dist/cli/validate-parsing-recipe.d.ts.map +1 -0
- package/dist/cli/validate-parsing-recipe.js +149 -0
- package/dist/cli/validate-parsing-recipe.js.map +1 -0
- package/dist/javascript/format.d.ts.map +1 -1
- package/dist/javascript/format.js +7 -2
- package/dist/javascript/format.js.map +1 -1
- package/dist/javascript/parser.d.ts.map +1 -1
- package/dist/javascript/parser.js +4 -2
- package/dist/javascript/parser.js.map +1 -1
- package/dist/javascript/tabs-and-indents-visitor.d.ts.map +1 -1
- package/dist/javascript/tabs-and-indents-visitor.js +32 -4
- package/dist/javascript/tabs-and-indents-visitor.js.map +1 -1
- package/dist/json/parser.js +35 -20
- package/dist/json/parser.js.map +1 -1
- package/dist/run.d.ts +8 -1
- package/dist/run.d.ts.map +1 -1
- package/dist/run.js +78 -21
- package/dist/run.js.map +1 -1
- package/dist/version.txt +1 -1
- package/package.json +1 -1
- package/src/cli/cli-utils.ts +28 -9
- package/src/cli/rewrite.ts +244 -85
- package/src/cli/validate-parsing-recipe.ts +114 -0
- package/src/javascript/format.ts +7 -2
- package/src/javascript/parser.ts +6 -2
- package/src/javascript/tabs-and-indents-visitor.ts +33 -3
- package/src/json/parser.ts +35 -20
- package/src/run.ts +61 -25
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tabs-and-indents-visitor.d.ts","sourceRoot":"","sources":["../../src/javascript/tabs-and-indents-visitor.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAC,iBAAiB,EAAC,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAS,CAAC,EAAwC,MAAM,SAAS,CAAC;AAEzE,OAAO,EAAC,MAAM,EAAW,IAAI,EAAC,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAC,mBAAmB,EAAC,MAAM,SAAS,CAAC;AAG5C,qBAAa,qBAAqB,CAAC,CAAC,CAAE,SAAQ,iBAAiB,CAAC,CAAC,CAAC;IAGlD,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IAAuB,OAAO,CAAC,SAAS,CAAC;IAFzF,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;gBAET,mBAAmB,EAAE,mBAAmB,EAAU,SAAS,CAAC,EAAE,IAAI,YAAA;cAU/E,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAKhE,OAAO,CAAC,0BAA0B;
|
|
1
|
+
{"version":3,"file":"tabs-and-indents-visitor.d.ts","sourceRoot":"","sources":["../../src/javascript/tabs-and-indents-visitor.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAC,iBAAiB,EAAC,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAS,CAAC,EAAwC,MAAM,SAAS,CAAC;AAEzE,OAAO,EAAC,MAAM,EAAW,IAAI,EAAC,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAC,mBAAmB,EAAC,MAAM,SAAS,CAAC;AAG5C,qBAAa,qBAAqB,CAAC,CAAC,CAAE,SAAQ,iBAAiB,CAAC,CAAC,CAAC;IAGlD,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IAAuB,OAAO,CAAC,SAAS,CAAC;IAFzF,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;gBAET,mBAAmB,EAAE,mBAAmB,EAAU,SAAS,CAAC,EAAE,IAAI,YAAA;cAU/E,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAKhE,OAAO,CAAC,0BAA0B;IAmBlC,OAAO,CAAC,sBAAsB;IAW9B,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,iBAAiB;IAYV,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IA0BhE,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,kBAAkB;IAcb,cAAc,CAAC,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAgCrF,eAAe,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,EAC1E,IAAI,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EACrB,CAAC,EAAE,CAAC,GACL,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IA6BjC,KAAK,CAAC,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAanF,OAAO,CAAC,oBAAoB;IA8C5B,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,aAAa;CAIxB"}
|
|
@@ -49,10 +49,23 @@ class TabsAndIndentsVisitor extends visitor_1.JavaScriptVisitor {
|
|
|
49
49
|
});
|
|
50
50
|
}
|
|
51
51
|
setupCursorMessagesForTree(cursor, tree) {
|
|
52
|
+
var _a, _b, _c, _d;
|
|
52
53
|
const [parentMyIndent, parentIndentKind] = this.getParentIndentContext(cursor);
|
|
53
54
|
const myIndent = this.computeMyIndent(tree, parentMyIndent, parentIndentKind);
|
|
54
55
|
cursor.messages.set("myIndent", myIndent);
|
|
55
|
-
|
|
56
|
+
// For Binary, behavior depends on whether it's already on a continuation line
|
|
57
|
+
if (tree.kind === java_1.J.Kind.Binary) {
|
|
58
|
+
const hasNewline = ((_b = (_a = tree.prefix) === null || _a === void 0 ? void 0 : _a.whitespace) === null || _b === void 0 ? void 0 : _b.includes("\n")) ||
|
|
59
|
+
((_d = (_c = tree.prefix) === null || _c === void 0 ? void 0 : _c.comments) === null || _d === void 0 ? void 0 : _d.some(c => c.suffix.includes("\n")));
|
|
60
|
+
// If Binary has newline, children align. Otherwise, children get continuation.
|
|
61
|
+
cursor.messages.set("indentKind", hasNewline ? 'align' : 'continuation');
|
|
62
|
+
// For LeftPadded children (like operator), same rule applies
|
|
63
|
+
cursor.messages.set("leftPaddedContinuation", hasNewline ? 'align' : 'propagate');
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
cursor.messages.set("indentKind", this.computeIndentKind(tree));
|
|
67
|
+
cursor.messages.set("leftPaddedContinuation", 'propagate');
|
|
68
|
+
}
|
|
56
69
|
}
|
|
57
70
|
getParentIndentContext(cursor) {
|
|
58
71
|
var _a;
|
|
@@ -173,12 +186,27 @@ class TabsAndIndentsVisitor extends visitor_1.JavaScriptVisitor {
|
|
|
173
186
|
visitLeftPadded: { get: () => super.visitLeftPadded }
|
|
174
187
|
});
|
|
175
188
|
return __awaiter(this, void 0, void 0, function* () {
|
|
176
|
-
var _a;
|
|
189
|
+
var _a, _b;
|
|
190
|
+
const parentIndent = (_a = this.cursor.messages.get("myIndent")) !== null && _a !== void 0 ? _a : "";
|
|
191
|
+
const continuation = (_b = this.cursor.messages.get("leftPaddedContinuation")) !== null && _b !== void 0 ? _b : 'propagate';
|
|
192
|
+
const hasNewline = left.before.whitespace.includes("\n");
|
|
193
|
+
const shouldPropagate = hasNewline && continuation === 'propagate';
|
|
194
|
+
// For 'propagate' mode, update myIndent for children so nested structures get proper indent
|
|
195
|
+
const savedMyIndent = this.cursor.messages.get("myIndent");
|
|
196
|
+
if (shouldPropagate) {
|
|
197
|
+
this.cursor.messages.set("myIndent", parentIndent + this.singleIndent);
|
|
198
|
+
}
|
|
177
199
|
const ret = yield _super.visitLeftPadded.call(this, left, p);
|
|
178
|
-
|
|
200
|
+
// Restore myIndent
|
|
201
|
+
if (savedMyIndent !== undefined) {
|
|
202
|
+
this.cursor.messages.set("myIndent", savedMyIndent);
|
|
203
|
+
}
|
|
204
|
+
else if (shouldPropagate) {
|
|
205
|
+
this.cursor.messages.delete("myIndent");
|
|
206
|
+
}
|
|
207
|
+
if (ret === undefined || !hasNewline) {
|
|
179
208
|
return ret;
|
|
180
209
|
}
|
|
181
|
-
const parentIndent = (_a = this.cursor.messages.get("myIndent")) !== null && _a !== void 0 ? _a : "";
|
|
182
210
|
return (0, immer_1.produce)(ret, draft => {
|
|
183
211
|
draft.before.whitespace = this.combineIndent(draft.before.whitespace, parentIndent + this.singleIndent);
|
|
184
212
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tabs-and-indents-visitor.js","sourceRoot":"","sources":["../../src/javascript/tabs-and-indents-visitor.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA;;;;;;;;;;;;;;GAcG;AACH,iCAA6C;AAC7C,uCAA4C;AAC5C,kCAAyE;AACzE,iCAA8B;AAC9B,kCAA8C;AAI9C,MAAa,qBAAyB,SAAQ,2BAAoB;IAG9D,YAA6B,mBAAwC,EAAU,SAAgB;QAC3F,KAAK,EAAE,CAAC;QADiB,wBAAmB,GAAnB,mBAAmB,CAAqB;QAAU,cAAS,GAAT,SAAS,CAAO;QAG3F,IAAI,IAAI,CAAC,mBAAmB,CAAC,eAAe,EAAE,CAAC;YAC3C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAC7B,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;QACxE,CAAC;IACL,CAAC;IAEe,QAAQ,CAAC,IAAO,EAAE,EAAK;;YACnC,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACnD,OAAO,IAAI,CAAC;QAChB,CAAC;KAAA;IAEO,0BAA0B,CAAC,MAAc,EAAE,IAAO
|
|
1
|
+
{"version":3,"file":"tabs-and-indents-visitor.js","sourceRoot":"","sources":["../../src/javascript/tabs-and-indents-visitor.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA;;;;;;;;;;;;;;GAcG;AACH,iCAA6C;AAC7C,uCAA4C;AAC5C,kCAAyE;AACzE,iCAA8B;AAC9B,kCAA8C;AAI9C,MAAa,qBAAyB,SAAQ,2BAAoB;IAG9D,YAA6B,mBAAwC,EAAU,SAAgB;QAC3F,KAAK,EAAE,CAAC;QADiB,wBAAmB,GAAnB,mBAAmB,CAAqB;QAAU,cAAS,GAAT,SAAS,CAAO;QAG3F,IAAI,IAAI,CAAC,mBAAmB,CAAC,eAAe,EAAE,CAAC;YAC3C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAC7B,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;QACxE,CAAC;IACL,CAAC;IAEe,QAAQ,CAAC,IAAO,EAAE,EAAK;;YACnC,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACnD,OAAO,IAAI,CAAC;QAChB,CAAC;KAAA;IAEO,0BAA0B,CAAC,MAAc,EAAE,IAAO;;QACtD,MAAM,CAAC,cAAc,EAAE,gBAAgB,CAAC,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;QAC/E,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,cAAc,EAAE,gBAAgB,CAAC,CAAC;QAC9E,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAE1C,8EAA8E;QAC9E,IAAI,IAAI,CAAC,IAAI,KAAK,QAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YAC9B,MAAM,UAAU,GAAG,CAAA,MAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,UAAU,0CAAE,QAAQ,CAAC,IAAI,CAAC;iBACtD,MAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,QAAQ,0CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA,CAAC;YAC9D,+EAA+E;YAC/E,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;YACzE,6DAA6D;YAC7D,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,wBAAwB,EAAE,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QACtF,CAAC;aAAM,CAAC;YACJ,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;YAChE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,wBAAwB,EAAE,WAAW,CAAC,CAAC;QAC/D,CAAC;IACL,CAAC;IAEO,sBAAsB,CAAC,MAAc;;QACzC,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;YAClD,MAAM,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAuB,CAAC;YAChE,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACvB,MAAM,IAAI,GAAG,MAAA,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAe,mCAAI,cAAc,CAAC;gBAC1E,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAC1B,CAAC;QACL,CAAC;QACD,OAAO,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;IAChC,CAAC;IAEO,eAAe,CAAC,IAAO,EAAE,cAAsB,EAAE,gBAA4B;;QACjF,IAAI,IAAI,CAAC,IAAI,KAAK,QAAC,CAAC,IAAI,CAAC,MAAM,IAAI,gBAAgB,KAAK,OAAO,EAAE,CAAC;YAC9D,OAAO,cAAc,CAAC;QAC1B,CAAC;QACD,IAAI,gBAAgB,KAAK,OAAO,EAAE,CAAC;YAC/B,OAAO,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC;QAC9C,CAAC;QACD,MAAM,UAAU,GAAG,CAAA,MAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,UAAU,0CAAE,QAAQ,CAAC,IAAI,CAAC;aACtD,MAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,QAAQ,0CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA,CAAC;QAC9D,OAAO,UAAU,CAAC,CAAC,CAAC,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC;IAC5E,CAAC;IAEO,iBAAiB,CAAC,IAAO;QAC7B,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAChB,KAAK,QAAC,CAAC,IAAI,CAAC,KAAK,CAAC;YAClB,KAAK,QAAC,CAAC,IAAI,CAAC,IAAI;gBACZ,OAAO,OAAO,CAAC;YACnB,KAAK,SAAE,CAAC,IAAI,CAAC,eAAe;gBACxB,OAAO,OAAO,CAAC;YACnB;gBACI,OAAO,cAAc,CAAC;QAC9B,CAAC;IACL,CAAC;IAEc,SAAS,CAAC,IAAO,EAAE,EAAK;;;YACnC,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,IAAI,IAAA,cAAO,EAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC;gBAC1D,MAAA,IAAI,CAAC,MAAM,0CAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACjD,CAAC;YAED,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAuB,CAAC;YAC5E,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBACzB,OAAO,IAAI,CAAC;YAChB,CAAC;YAED,IAAI,MAAM,GAAG,IAAI,CAAC;YAClB,IAAI,MAAA,MAAA,MAAM,CAAC,MAAM,0CAAE,UAAU,0CAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC5C,MAAM,GAAG,IAAA,eAAO,EAAC,MAAM,EAAE,KAAK,CAAC,EAAE;oBAC7B,KAAK,CAAC,MAAO,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,MAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;gBACtF,CAAC,CAAC,CAAC;YACP,CAAC;YAED,IAAI,MAAM,CAAC,IAAI,KAAK,QAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;gBAC/B,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAiB,EAAE,QAAQ,CAAC,CAAC;YACjE,CAAC;iBAAM,IAAI,MAAM,CAAC,IAAI,KAAK,SAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACxC,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAiB,EAAE,QAAQ,CAAC,CAAC;YAClE,CAAC;YAED,OAAO,MAAM,CAAC;QAClB,CAAC;KAAA;IAEO,iBAAiB,CAAC,KAAc,EAAE,QAAgB;QACtD,MAAM,eAAe,GAAG,IAAA,qBAAc,EAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAClD,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,IAAA,eAAO,EAAC,KAAK,EAAE,KAAK,CAAC,EAAE;YAC1B,KAAK,CAAC,GAAG,GAAG,IAAA,4BAAqB,EAAC,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC;QACzF,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,kBAAkB,CAAC,GAAY,EAAE,QAAgB;QACrD,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7C,OAAO,GAAG,CAAC;QACf,CAAC;QACD,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACxD,IAAI,SAAS,CAAC,IAAI,KAAK,QAAC,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACnF,OAAO,GAAG,CAAC;QACf,CAAC;QACD,OAAO,IAAA,eAAO,EAAC,GAAG,EAAE,KAAK,CAAC,EAAE;YACxB,MAAM,cAAc,GAAG,KAAK,CAAC,QAAS,CAAC,KAAK,CAAC,QAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACnE,cAAc,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QACtG,CAAC,CAAC,CAAC;IACP,CAAC;IAEY,cAAc,CAAc,SAAyB,EAAE,CAAI;;;;;;YACpE,MAAM,YAAY,GAAG,MAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAW,mCAAI,EAAE,CAAC;YAC1E,MAAM,cAAc,GAAG,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAC7D,CAAC,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY;gBAClC,CAAC,CAAC,YAAY,CAAC;YAEnB,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC3D,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;YACrD,IAAI,GAAG,GAAG,MAAM,OAAM,cAAc,YAAC,SAAS,EAAE,CAAC,CAAC,CAAC;YACnD,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;gBAC9B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;YACxD,CAAC;YAED,IAAI,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvC,GAAG,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE,KAAK,CAAC,EAAE;oBACvB,KAAK,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;gBAC1F,CAAC,CAAC,CAAC;YACP,CAAC;YAED,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1B,MAAM,eAAe,GAAG,IAAA,qBAAc,EAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBACpF,IAAI,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;oBACjC,GAAG,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE,KAAK,CAAC,EAAE;wBACvB,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;wBAC5D,SAAS,CAAC,KAAK,GAAG,IAAA,4BAAqB,EAAC,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC;oBACzG,CAAC,CAAC,CAAC;gBACP,CAAC;YACL,CAAC;YAED,OAAO,GAAG,CAAC;QACf,CAAC;KAAA;IAEY,eAAe,CACxB,IAAqB,EACrB,CAAI;;;;;;YAEJ,MAAM,YAAY,GAAG,MAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAW,mCAAI,EAAE,CAAC;YAC1E,MAAM,YAAY,GAAG,MAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,wBAAwB,CAAW,mCAAI,WAAW,CAAC;YACjG,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACzD,MAAM,eAAe,GAAG,UAAU,IAAI,YAAY,KAAK,WAAW,CAAC;YAEnE,4FAA4F;YAC5F,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC3D,IAAI,eAAe,EAAE,CAAC;gBAClB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;YAC3E,CAAC;YAED,MAAM,GAAG,GAAG,MAAM,OAAM,eAAe,YAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAEjD,mBAAmB;YACnB,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;gBAC9B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;YACxD,CAAC;iBAAM,IAAI,eAAe,EAAE,CAAC;gBACzB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAC5C,CAAC;YAED,IAAI,GAAG,KAAK,SAAS,IAAI,CAAC,UAAU,EAAE,CAAC;gBACnC,OAAO,GAAG,CAAC;YACf,CAAC;YACD,OAAO,IAAA,eAAO,EAAC,GAAG,EAAE,KAAK,CAAC,EAAE;gBACxB,KAAK,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;YAC5G,CAAC,CAAC,CAAC;QACP,CAAC;KAAA;IAEK,KAAK,CAAc,IAAU,EAAE,CAAI,EAAE,MAAe;;;;;;YACtD,IAAI,CAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,iBAAiB,CAAC,MAAM,CAAC,KAAI,IAAI,EAAE,CAAC;gBACjD,OAAO,IAAS,CAAC;YACrB,CAAC;YAED,IAAI,MAAM,EAAE,CAAC;gBACT,IAAI,CAAC,MAAM,GAAG,IAAI,aAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBACvC,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAChC,CAAC;YAED,OAAO,MAAM,OAAM,KAAK,YAAC,IAAI,EAAE,CAAC,CAAM,CAAC;QAC3C,CAAC;KAAA;IAEO,oBAAoB;QACxB,MAAM,IAAI,GAAa,EAAE,CAAC;QAC1B,IAAI,YAAgC,CAAC;QACrC,IAAI,YAAY,GAAG,EAAE,CAAC;QAEtB,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;YAC/C,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACb,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;YAElB,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;gBACrD,MAAM,EAAE,GAAG,IAAA,qBAAc,EAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gBACpC,MAAM,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBACjC,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;oBACb,YAAY,GAAG,CAAC,CAAC;oBACjB,YAAY,GAAG,EAAE,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;gBACzC,CAAC;YACL,CAAC;YAED,IAAI,CAAC,CAAC,IAAI,KAAK,SAAE,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;gBACrC,IAAI,CAAC,YAAY,EAAE,CAAC;oBAChB,YAAY,GAAG,CAAC,CAAC;oBACjB,YAAY,GAAG,EAAE,CAAC;gBACtB,CAAC;gBACD,MAAM;YACV,CAAC;QACL,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAC9B,IAAI,CAAC,OAAO,EAAE,CAAC;QAEf,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YACnB,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;YAClB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;gBAAE,SAAS;YAErC,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC;YAChC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;YAChB,IAAI,CAAC,KAAK,YAAY,EAAE,CAAC;gBACrB,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;gBACzC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5D,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,0BAA0B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1C,CAAC;YACD,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC;QAC9B,CAAC;IACL,CAAC;IAEO,aAAa,CAAC,CAAM;QACxB,OAAO,CAAC,IAAA,aAAM,EAAC,CAAC,CAAC,IAAI,IAAA,mBAAY,EAAC,CAAC,CAAC,CAAC;YACjC,CAAC,CAAC,IAAI,KAAK,QAAC,CAAC,IAAI,CAAC,SAAS;YAC3B,CAAC,CAAC,IAAI,KAAK,QAAC,CAAC,IAAI,CAAC,UAAU;YAC5B,CAAC,CAAC,IAAI,KAAK,QAAC,CAAC,IAAI,CAAC,WAAW,CAAC;IACtC,CAAC;IAEO,aAAa,CAAC,KAAa,EAAE,SAAiB;QAClD,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC5C,OAAO,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,WAAW,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC;IAC3D,CAAC;CACJ;AAhQD,sDAgQC"}
|
package/dist/json/parser.js
CHANGED
|
@@ -68,29 +68,44 @@ class ParseJsonReader extends parser_1.ParserSourceReader {
|
|
|
68
68
|
};
|
|
69
69
|
if (Array.isArray(parsed)) {
|
|
70
70
|
this.cursor++; // skip '['
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
71
|
+
const values = parsed.map((p, i) => {
|
|
72
|
+
const element = this.json(p);
|
|
73
|
+
const afterWhitespace = this.whitespace();
|
|
74
|
+
// Check if there's a comma after this element
|
|
75
|
+
const hasComma = this.source[this.cursor] === ',';
|
|
76
|
+
if (hasComma) {
|
|
77
|
+
this.cursor++; // skip ','
|
|
78
|
+
}
|
|
79
|
+
return {
|
|
80
|
+
kind: tree_1.Json.Kind.RightPadded,
|
|
81
|
+
element,
|
|
82
|
+
after: (0, tree_1.space)(afterWhitespace),
|
|
83
|
+
markers: markers_1.emptyMarkers
|
|
84
|
+
};
|
|
85
|
+
});
|
|
86
|
+
this.cursor++; // skip ']'
|
|
87
|
+
return Object.assign(Object.assign({ kind: tree_1.Json.Kind.Array }, base), { values });
|
|
81
88
|
}
|
|
82
89
|
else if (parsed !== null && typeof parsed === "object") {
|
|
83
90
|
this.cursor++; // skip '{'
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
this.cursor++;
|
|
92
|
-
|
|
93
|
-
|
|
91
|
+
const keys = Object.keys(parsed);
|
|
92
|
+
const members = keys.map((key, i) => {
|
|
93
|
+
const element = this.member(parsed, key);
|
|
94
|
+
const afterWhitespace = this.whitespace();
|
|
95
|
+
// Check if there's a comma after this element
|
|
96
|
+
const hasComma = this.source[this.cursor] === ',';
|
|
97
|
+
if (hasComma) {
|
|
98
|
+
this.cursor++; // skip ','
|
|
99
|
+
}
|
|
100
|
+
return {
|
|
101
|
+
kind: tree_1.Json.Kind.RightPadded,
|
|
102
|
+
element,
|
|
103
|
+
after: (0, tree_1.space)(afterWhitespace),
|
|
104
|
+
markers: markers_1.emptyMarkers
|
|
105
|
+
};
|
|
106
|
+
});
|
|
107
|
+
this.cursor++; // skip '}'
|
|
108
|
+
return Object.assign(Object.assign({ kind: tree_1.Json.Kind.Object }, base), { members });
|
|
94
109
|
}
|
|
95
110
|
else if (typeof parsed === "string") {
|
|
96
111
|
// Extract original source to preserve escape sequences
|
package/dist/json/parser.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/json/parser.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;GAcG;AACH,wCAAwC;AACxC,sCAAkE;AAClE,kCAAiC;AAEjC,iCAA+C;AAE/C,MAAa,UAAW,SAAQ,eAAM;IAE3B,KAAK,CAAC,GAAG,WAA0B;;YACtC,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;gBACnC,oDACO,IAAI,eAAe,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,KAC1C,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,IAC5C,CAAC;YACN,CAAC;QACL,CAAC;KAAA;CACJ;AAVD,gCAUC;AAED,MAAM,eAAgB,SAAQ,2BAAkB;IAC5C,YAAY,UAAuB;QAC/B,KAAK,CAAC,UAAU,CAAC,CAAC;IACtB,CAAC;IAEO,MAAM;QACV,OAAO,IAAA,YAAK,EAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IACpC,CAAC;IAED,KAAK;QACD,OAAO;YACH,IAAI,EAAE,WAAI,CAAC,IAAI,CAAC,QAAQ;YACxB,EAAE,EAAE,IAAA,eAAQ,GAAE;YACd,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;YACrB,OAAO,EAAE,sBAAY;YACrB,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAe;YACvD,GAAG,EAAE,IAAA,YAAK,EAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC7C,CAAA;IACL,CAAC;IAEO,IAAI,CAAC,MAAW;QACpB,MAAM,IAAI,GAAG;YACT,EAAE,EAAE,IAAA,eAAQ,GAAE;YACd,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;YACrB,OAAO,EAAE,sBAAY;SACxB,CAAA;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,WAAW;YAC1B,
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/json/parser.ts"],"names":[],"mappings":"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"}
|
package/dist/run.d.ts
CHANGED
|
@@ -11,11 +11,18 @@ export declare class Result {
|
|
|
11
11
|
diff(): Promise<string>;
|
|
12
12
|
}
|
|
13
13
|
export declare function scheduleRun(recipe: Recipe, before: SourceFile[], ctx: ExecutionContext): Promise<RecipeRun>;
|
|
14
|
+
export type ProgressCallback = (phase: 'parsing' | 'scanning' | 'processing', current: number, total: number, sourcePath: string) => void;
|
|
14
15
|
/**
|
|
15
16
|
* Streaming version of scheduleRun that yields results as soon as each file is processed.
|
|
16
17
|
* This allows callers to print diffs immediately and free memory earlier.
|
|
17
18
|
*
|
|
19
|
+
* Accepts either an array or an async iterable of source files. When the recipe is not
|
|
20
|
+
* a scanning recipe, files are processed immediately as they're yielded from the iterable,
|
|
21
|
+
* avoiding the need to collect all files into memory first.
|
|
22
|
+
*
|
|
18
23
|
* For scanning recipes, the scan phase completes on all files before yielding any results.
|
|
24
|
+
*
|
|
25
|
+
* @param onProgress Optional callback for progress updates during parsing, scanning, and processing phases.
|
|
19
26
|
*/
|
|
20
|
-
export declare function scheduleRunStreaming(recipe: Recipe, before: SourceFile[]
|
|
27
|
+
export declare function scheduleRunStreaming(recipe: Recipe, before: SourceFile[] | AsyncIterable<SourceFile>, ctx: ExecutionContext, onProgress?: ProgressCallback): AsyncGenerator<Result, void, undefined>;
|
|
21
28
|
//# sourceMappingURL=run.d.ts.map
|
package/dist/run.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"AAeA,OAAO,EAAC,gBAAgB,EAAC,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAa,UAAU,EAAC,MAAM,QAAQ,CAAC;AAG9C,OAAO,EAAC,MAAM,EAAiB,MAAM,UAAU,CAAC;AAEhD,MAAM,WAAW,SAAS;IACtB,SAAS,EAAE,MAAM,EAAE,CAAA;CACtB;AAED,qBAAa,MAAM;aACa,MAAM,CAAC,EAAE,UAAU;aAAkB,KAAK,CAAC,EAAE,UAAU;gBAAvD,MAAM,CAAC,EAAE,UAAU,YAAA,EAAkB,KAAK,CAAC,EAAE,UAAU,YAAA;IAG7E,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC;CAWhC;AAsBD,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,SAAS,CAAC,CAMjH;AAED
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"AAeA,OAAO,EAAC,gBAAgB,EAAC,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAa,UAAU,EAAC,MAAM,QAAQ,CAAC;AAG9C,OAAO,EAAC,MAAM,EAAiB,MAAM,UAAU,CAAC;AAEhD,MAAM,WAAW,SAAS;IACtB,SAAS,EAAE,MAAM,EAAE,CAAA;CACtB;AAED,qBAAa,MAAM;aACa,MAAM,CAAC,EAAE,UAAU;aAAkB,KAAK,CAAC,EAAE,UAAU;gBAAvD,MAAM,CAAC,EAAE,UAAU,YAAA,EAAkB,KAAK,CAAC,EAAE,UAAU,YAAA;IAG7E,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC;CAWhC;AAsBD,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,SAAS,CAAC,CAMjH;AAED,MAAM,MAAM,gBAAgB,GAAG,CAAC,KAAK,EAAE,SAAS,GAAG,UAAU,GAAG,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;AAE1I;;;;;;;;;;;GAWG;AACH,wBAAuB,oBAAoB,CACvC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,UAAU,EAAE,GAAG,aAAa,CAAC,UAAU,CAAC,EAChD,GAAG,EAAE,gBAAgB,EACrB,UAAU,CAAC,EAAE,gBAAgB,GAC9B,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,CAkEzC"}
|
package/dist/run.js
CHANGED
|
@@ -98,40 +98,97 @@ function scheduleRun(recipe, before, ctx) {
|
|
|
98
98
|
* Streaming version of scheduleRun that yields results as soon as each file is processed.
|
|
99
99
|
* This allows callers to print diffs immediately and free memory earlier.
|
|
100
100
|
*
|
|
101
|
+
* Accepts either an array or an async iterable of source files. When the recipe is not
|
|
102
|
+
* a scanning recipe, files are processed immediately as they're yielded from the iterable,
|
|
103
|
+
* avoiding the need to collect all files into memory first.
|
|
104
|
+
*
|
|
101
105
|
* For scanning recipes, the scan phase completes on all files before yielding any results.
|
|
106
|
+
*
|
|
107
|
+
* @param onProgress Optional callback for progress updates during parsing, scanning, and processing phases.
|
|
102
108
|
*/
|
|
103
|
-
function scheduleRunStreaming(recipe, before, ctx) {
|
|
109
|
+
function scheduleRunStreaming(recipe, before, ctx, onProgress) {
|
|
104
110
|
return __asyncGenerator(this, arguments, function* scheduleRunStreaming_1() {
|
|
111
|
+
var _a, e_2, _b, _c, _d, e_3, _e, _f;
|
|
105
112
|
const cursor = (0, tree_1.rootCursor)();
|
|
106
|
-
|
|
107
|
-
if (
|
|
108
|
-
|
|
113
|
+
const isScanning = yield __await(hasScanningRecipe(recipe));
|
|
114
|
+
if (isScanning) {
|
|
115
|
+
// For scanning recipes, we need to collect all files first for the scan phase
|
|
116
|
+
const files = Array.isArray(before) ? [...before] : [];
|
|
117
|
+
if (!Array.isArray(before)) {
|
|
118
|
+
let parseCount = 0;
|
|
119
|
+
try {
|
|
120
|
+
for (var _g = true, before_1 = __asyncValues(before), before_1_1; before_1_1 = yield __await(before_1.next()), _a = before_1_1.done, !_a; _g = true) {
|
|
121
|
+
_c = before_1_1.value;
|
|
122
|
+
_g = false;
|
|
123
|
+
const sf = _c;
|
|
124
|
+
files.push(sf);
|
|
125
|
+
parseCount++;
|
|
126
|
+
onProgress === null || onProgress === void 0 ? void 0 : onProgress('parsing', parseCount, -1, sf.sourcePath); // -1 = unknown total
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
130
|
+
finally {
|
|
131
|
+
try {
|
|
132
|
+
if (!_g && !_a && (_b = before_1.return)) yield __await(_b.call(before_1));
|
|
133
|
+
}
|
|
134
|
+
finally { if (e_2) throw e_2.error; }
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
const totalFiles = files.length;
|
|
138
|
+
// Phase 1: Run scanners on all files
|
|
139
|
+
for (let i = 0; i < files.length; i++) {
|
|
140
|
+
const b = files[i];
|
|
141
|
+
onProgress === null || onProgress === void 0 ? void 0 : onProgress('scanning', i + 1, totalFiles, b.sourcePath);
|
|
109
142
|
yield __await(recurseRecipeList(recipe, b, (recipe, b2) => __awaiter(this, void 0, void 0, function* () {
|
|
110
143
|
if (recipe instanceof recipe_1.ScanningRecipe) {
|
|
111
144
|
return (yield recipe.scanner(recipe.accumulator(cursor, ctx))).visit(b2, ctx, cursor);
|
|
112
145
|
}
|
|
113
146
|
})));
|
|
114
147
|
}
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
148
|
+
// Phase 2: Collect generated files
|
|
149
|
+
const generated = (yield __await(recurseRecipeList(recipe, [], (recipe, generated) => __awaiter(this, void 0, void 0, function* () {
|
|
150
|
+
if (recipe instanceof recipe_1.ScanningRecipe) {
|
|
151
|
+
generated.push(...yield recipe.generate(recipe.accumulator(cursor, ctx), ctx));
|
|
152
|
+
}
|
|
153
|
+
return generated;
|
|
154
|
+
}))));
|
|
155
|
+
// Phase 3: Edit existing files and yield results immediately
|
|
156
|
+
for (let i = 0; i < files.length; i++) {
|
|
157
|
+
const b = files[i];
|
|
158
|
+
onProgress === null || onProgress === void 0 ? void 0 : onProgress('processing', i + 1, totalFiles, b.sourcePath);
|
|
159
|
+
const editedB = yield __await(recurseRecipeList(recipe, b, (recipe, b2) => __awaiter(this, void 0, void 0, function* () { return (yield recipe.editor()).visit(b2, ctx, cursor); })));
|
|
160
|
+
// Always yield a result so the caller knows when each file is processed
|
|
161
|
+
yield yield __await(new Result(b, editedB !== b ? editedB : b));
|
|
162
|
+
// Clear array entry to allow GC to free memory for this file
|
|
163
|
+
files[i] = null;
|
|
120
164
|
}
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
yield yield __await(new Result(b, editedB));
|
|
165
|
+
// Phase 4: Edit generated files and yield results
|
|
166
|
+
for (const g of generated) {
|
|
167
|
+
const editedG = yield __await(recurseRecipeList(recipe, g, (recipe, g2) => __awaiter(this, void 0, void 0, function* () { return (yield recipe.editor()).visit(g2, ctx, cursor); })));
|
|
168
|
+
if (editedG) {
|
|
169
|
+
yield yield __await(new Result(undefined, editedG));
|
|
170
|
+
}
|
|
128
171
|
}
|
|
129
172
|
}
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
const
|
|
133
|
-
|
|
134
|
-
|
|
173
|
+
else {
|
|
174
|
+
// For non-scanning recipes, process files immediately as they come in
|
|
175
|
+
const iterable = Array.isArray(before) ? before : before;
|
|
176
|
+
try {
|
|
177
|
+
for (var _h = true, iterable_1 = __asyncValues(iterable), iterable_1_1; iterable_1_1 = yield __await(iterable_1.next()), _d = iterable_1_1.done, !_d; _h = true) {
|
|
178
|
+
_f = iterable_1_1.value;
|
|
179
|
+
_h = false;
|
|
180
|
+
const b = _f;
|
|
181
|
+
const editedB = yield __await(recurseRecipeList(recipe, b, (recipe, b2) => __awaiter(this, void 0, void 0, function* () { return (yield recipe.editor()).visit(b2, ctx, cursor); })));
|
|
182
|
+
// Always yield a result so the caller knows when each file is processed
|
|
183
|
+
yield yield __await(new Result(b, editedB !== b ? editedB : b));
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
187
|
+
finally {
|
|
188
|
+
try {
|
|
189
|
+
if (!_h && !_d && (_e = iterable_1.return)) yield __await(_e.call(iterable_1));
|
|
190
|
+
}
|
|
191
|
+
finally { if (e_3) throw e_3.error; }
|
|
135
192
|
}
|
|
136
193
|
}
|
|
137
194
|
yield __await(recursiveOnComplete(recipe, ctx));
|
package/dist/run.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8DA,kCAMC;
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}
|
package/dist/version.txt
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
8.69.0-
|
|
1
|
+
8.69.0-20251207-092603
|
package/package.json
CHANGED
package/src/cli/cli-utils.ts
CHANGED
|
@@ -454,16 +454,21 @@ export function isAcceptedFile(filePath: string): boolean {
|
|
|
454
454
|
|
|
455
455
|
export type ProgressCallback = (current: number, total: number, filePath: string) => void;
|
|
456
456
|
|
|
457
|
+
export interface ParseFilesOptions {
|
|
458
|
+
verbose?: boolean;
|
|
459
|
+
onProgress?: ProgressCallback;
|
|
460
|
+
}
|
|
461
|
+
|
|
457
462
|
/**
|
|
458
|
-
* Parse source files using appropriate parsers
|
|
463
|
+
* Parse source files using appropriate parsers (streaming version).
|
|
464
|
+
* Yields source files as they are parsed, allowing immediate processing.
|
|
459
465
|
*/
|
|
460
|
-
export async function
|
|
466
|
+
export async function* parseFilesStreaming(
|
|
461
467
|
filePaths: string[],
|
|
462
468
|
projectRoot: string,
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
const parsed: SourceFile[] = [];
|
|
469
|
+
options: ParseFilesOptions = {}
|
|
470
|
+
): AsyncGenerator<SourceFile, void, undefined> {
|
|
471
|
+
const { verbose = false, onProgress } = options;
|
|
467
472
|
const total = filePaths.length;
|
|
468
473
|
let current = 0;
|
|
469
474
|
|
|
@@ -494,7 +499,7 @@ export async function parseFiles(
|
|
|
494
499
|
for await (const sf of jsParser.parse(...jsFiles)) {
|
|
495
500
|
current++;
|
|
496
501
|
onProgress?.(current, total, sf.sourcePath);
|
|
497
|
-
|
|
502
|
+
yield sf;
|
|
498
503
|
}
|
|
499
504
|
}
|
|
500
505
|
|
|
@@ -507,7 +512,7 @@ export async function parseFiles(
|
|
|
507
512
|
for await (const sf of pkgParser.parse(...packageJsonFiles)) {
|
|
508
513
|
current++;
|
|
509
514
|
onProgress?.(current, total, sf.sourcePath);
|
|
510
|
-
|
|
515
|
+
yield sf;
|
|
511
516
|
}
|
|
512
517
|
}
|
|
513
518
|
|
|
@@ -520,9 +525,23 @@ export async function parseFiles(
|
|
|
520
525
|
for await (const sf of jsonParser.parse(...jsonFiles)) {
|
|
521
526
|
current++;
|
|
522
527
|
onProgress?.(current, total, sf.sourcePath);
|
|
523
|
-
|
|
528
|
+
yield sf;
|
|
524
529
|
}
|
|
525
530
|
}
|
|
531
|
+
}
|
|
526
532
|
|
|
533
|
+
/**
|
|
534
|
+
* Parse source files using appropriate parsers.
|
|
535
|
+
* Collects all parsed files into an array.
|
|
536
|
+
*/
|
|
537
|
+
export async function parseFiles(
|
|
538
|
+
filePaths: string[],
|
|
539
|
+
projectRoot: string,
|
|
540
|
+
options: ParseFilesOptions = {}
|
|
541
|
+
): Promise<SourceFile[]> {
|
|
542
|
+
const parsed: SourceFile[] = [];
|
|
543
|
+
for await (const sf of parseFilesStreaming(filePaths, projectRoot, options)) {
|
|
544
|
+
parsed.push(sf);
|
|
545
|
+
}
|
|
527
546
|
return parsed;
|
|
528
547
|
}
|