@openrewrite/rewrite 8.68.0 → 8.69.0-20251204-195759

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.
@@ -38,11 +38,6 @@ export declare function loadLocalRecipes(localPath: string, registry: RecipeRegi
38
38
  * Install a recipe package from NPM and load its recipes into the registry
39
39
  */
40
40
  export declare function installRecipePackage(packageName: string, installDir: string, registry: RecipeRegistry, verbose?: boolean): Promise<void>;
41
- /**
42
- * Set up shared dependencies to avoid instanceof failures when loading recipes
43
- * from a separate node_modules directory
44
- */
45
- export declare function setupSharedDependencies(targetModulePath: string): void;
46
41
  /**
47
42
  * Find a recipe by name in the registry
48
43
  *
@@ -1 +1 @@
1
- {"version":3,"file":"cli-utils.d.ts","sourceRoot":"","sources":["../../src/cli/cli-utils.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,MAAM,EAAE,cAAc,EAAC,MAAM,WAAW,CAAC;AACjD,OAAO,EAAC,UAAU,EAAC,MAAM,SAAS,CAAC;AAYnC;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAqBjD;AAED,MAAM,WAAW,UAAU;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;CACxB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAqB9D;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAsBzE;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAClC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,cAAc,EACxB,OAAO,GAAE,OAAe,GACzB,OAAO,CAAC,IAAI,CAAC,CA2Df;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACtC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,cAAc,EACxB,OAAO,GAAE,OAAe,GACzB,OAAO,CAAC,IAAI,CAAC,CA8Df;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAgEtE;AAED;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CACtB,QAAQ,EAAE,cAAc,EACxB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC7B,MAAM,GAAG,IAAI,CA8Cf;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,GAAE,OAAe,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAmEpG;AAED;;GAEG;AACH,wBAAsB,aAAa,CAC/B,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EAAE,EACf,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,EACpB,WAAW,EAAE,MAAM,GACpB,OAAO,CAAC,IAAI,CAAC,CAsBf;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAcxD;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC5B,SAAS,EAAE,MAAM,EAAE,EACnB,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,OAAe,GACzB,OAAO,CAAC,UAAU,EAAE,CAAC,CAuDvB"}
1
+ {"version":3,"file":"cli-utils.d.ts","sourceRoot":"","sources":["../../src/cli/cli-utils.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,MAAM,EAAE,cAAc,EAAC,MAAM,WAAW,CAAC;AACjD,OAAO,EAAC,UAAU,EAAC,MAAM,SAAS,CAAC;AAYnC;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAqBjD;AAED,MAAM,WAAW,UAAU;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;CACxB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAqB9D;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAsBzE;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAClC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,cAAc,EACxB,OAAO,GAAE,OAAe,GACzB,OAAO,CAAC,IAAI,CAAC,CA8Df;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACtC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,cAAc,EACxB,OAAO,GAAE,OAAe,GACzB,OAAO,CAAC,IAAI,CAAC,CA0Df;AAED;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CACtB,QAAQ,EAAE,cAAc,EACxB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC7B,MAAM,GAAG,IAAI,CA8Cf;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,GAAE,OAAe,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAmEpG;AAED;;GAEG;AACH,wBAAsB,aAAa,CAC/B,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EAAE,EACf,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,EACpB,WAAW,EAAE,MAAM,GACpB,OAAO,CAAC,IAAI,CAAC,CAsBf;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAcxD;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC5B,SAAS,EAAE,MAAM,EAAE,EACnB,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,OAAe,GACzB,OAAO,CAAC,UAAU,EAAE,CAAC,CAuDvB"}
@@ -54,7 +54,6 @@ exports.parseRecipeSpec = parseRecipeSpec;
54
54
  exports.parseRecipeOptions = parseRecipeOptions;
55
55
  exports.loadLocalRecipes = loadLocalRecipes;
56
56
  exports.installRecipePackage = installRecipePackage;
57
- exports.setupSharedDependencies = setupSharedDependencies;
58
57
  exports.findRecipe = findRecipe;
59
58
  exports.discoverFiles = discoverFiles;
60
59
  exports.walkDirectory = walkDirectory;
@@ -190,22 +189,25 @@ function loadLocalRecipes(localPath_1, registry_1) {
190
189
  if (stat.isDirectory()) {
191
190
  // Look for package.json to find the main entry point
192
191
  const packageJsonPath = path.join(resolvedPath, 'package.json');
192
+ let mainFromPkg;
193
193
  if (fs.existsSync(packageJsonPath)) {
194
194
  const pkg = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
195
- // Use the main field, or default to dist/index.js
196
- const main = pkg.main || 'dist/index.js';
197
- modulePath = path.join(resolvedPath, main);
195
+ mainFromPkg = pkg.main;
196
+ }
197
+ // Try the main field first, then common fallbacks
198
+ const candidates = [
199
+ mainFromPkg,
200
+ 'dist/index.js',
201
+ 'dist/src/index.js',
202
+ 'index.js',
203
+ 'src/index.ts'
204
+ ].filter((c) => !!c);
205
+ const found = candidates.find(c => fs.existsSync(path.join(resolvedPath, c)));
206
+ if (found) {
207
+ modulePath = path.join(resolvedPath, found);
198
208
  }
199
209
  else {
200
- // Try common entry points
201
- const candidates = ['dist/index.js', 'index.js', 'src/index.ts'];
202
- const found = candidates.find(c => fs.existsSync(path.join(resolvedPath, c)));
203
- if (found) {
204
- modulePath = path.join(resolvedPath, found);
205
- }
206
- else {
207
- throw new Error(`Cannot find entry point in ${resolvedPath}. Expected package.json with main field or dist/index.js`);
208
- }
210
+ throw new Error(`Cannot find entry point in ${resolvedPath}. Tried: ${candidates.join(', ')}`);
209
211
  }
210
212
  }
211
213
  else {
@@ -217,8 +219,6 @@ function loadLocalRecipes(localPath_1, registry_1) {
217
219
  if (verbose) {
218
220
  console.log(`Loading recipes from ${modulePath}...`);
219
221
  }
220
- // Set up shared dependencies
221
- setupSharedDependencies(modulePath);
222
222
  const recipeModule = require(modulePath);
223
223
  if (typeof recipeModule.activate !== 'function') {
224
224
  throw new Error(`${localPath} does not export an 'activate' function`);
@@ -276,8 +276,6 @@ function installRecipePackage(packageName_1, installDir_1, registry_1) {
276
276
  });
277
277
  // Load the module and activate recipes
278
278
  const resolvedPath = require.resolve(path.join(installDir, 'node_modules', packageName));
279
- // Set up shared dependencies to avoid instanceof failures
280
- setupSharedDependencies(resolvedPath);
281
279
  const recipeModule = require(resolvedPath);
282
280
  if (typeof recipeModule.activate !== 'function') {
283
281
  throw new Error(`${packageName} does not export an 'activate' function`);
@@ -291,73 +289,6 @@ function installRecipePackage(packageName_1, installDir_1, registry_1) {
291
289
  }
292
290
  });
293
291
  }
294
- /**
295
- * Set up shared dependencies to avoid instanceof failures when loading recipes
296
- * from a separate node_modules directory
297
- */
298
- function setupSharedDependencies(targetModulePath) {
299
- const sharedDeps = ['@openrewrite/rewrite'];
300
- const targetDir = path.dirname(targetModulePath);
301
- for (const depName of sharedDeps) {
302
- try {
303
- const hostPackageEntry = require.resolve(depName);
304
- // Find host package root
305
- let hostPackageRoot = path.dirname(hostPackageEntry);
306
- while (hostPackageRoot !== path.dirname(hostPackageRoot)) {
307
- const pkgJsonPath = path.join(hostPackageRoot, 'package.json');
308
- if (fs.existsSync(pkgJsonPath)) {
309
- try {
310
- const pkg = JSON.parse(fs.readFileSync(pkgJsonPath, 'utf8'));
311
- if (pkg.name === depName) {
312
- break;
313
- }
314
- }
315
- catch (_a) {
316
- // Not a valid package.json
317
- }
318
- }
319
- hostPackageRoot = path.dirname(hostPackageRoot);
320
- }
321
- // Find target package root
322
- let targetPackageRoot;
323
- let searchDir = targetDir;
324
- while (searchDir !== path.dirname(searchDir)) {
325
- const nodeModulesPath = path.join(searchDir, 'node_modules', ...depName.split('/'));
326
- if (fs.existsSync(nodeModulesPath)) {
327
- const pkgJsonPath = path.join(nodeModulesPath, 'package.json');
328
- if (fs.existsSync(pkgJsonPath)) {
329
- try {
330
- const pkg = JSON.parse(fs.readFileSync(pkgJsonPath, 'utf8'));
331
- if (pkg.name === depName) {
332
- targetPackageRoot = nodeModulesPath;
333
- break;
334
- }
335
- }
336
- catch (_b) {
337
- // Not a valid package.json
338
- }
339
- }
340
- }
341
- searchDir = path.dirname(searchDir);
342
- }
343
- if (!targetPackageRoot || hostPackageRoot === targetPackageRoot) {
344
- continue;
345
- }
346
- // Map all cached modules
347
- const hostPrefix = hostPackageRoot + path.sep;
348
- for (const cachedPath of Object.keys(require.cache)) {
349
- if (cachedPath.startsWith(hostPrefix)) {
350
- const relativePath = cachedPath.substring(hostPrefix.length);
351
- const targetPath = path.join(targetPackageRoot, relativePath);
352
- require.cache[targetPath] = require.cache[cachedPath];
353
- }
354
- }
355
- }
356
- catch (_c) {
357
- // Failed to set up shared dependency
358
- }
359
- }
360
- }
361
292
  /**
362
293
  * Find a recipe by name in the registry
363
294
  *
@@ -1 +1 @@
1
- {"version":3,"file":"cli-utils.js","sourceRoot":"","sources":["../../src/cli/cli-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli-utils.js","sourceRoot":"","sources":["../../src/cli/cli-utils.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"rewrite.d.ts","sourceRoot":"","sources":["../../src/cli/rewrite.ts"],"names":[],"mappings":";AAoCA,OAAO,SAAS,CAAC;AACjB,OAAO,SAAS,CAAC;AACjB,OAAO,SAAS,CAAC;AACjB,OAAO,eAAe,CAAC"}
1
+ {"version":3,"file":"rewrite.d.ts","sourceRoot":"","sources":["../../src/cli/rewrite.ts"],"names":[],"mappings":";AAqCA,OAAO,SAAS,CAAC;AACjB,OAAO,SAAS,CAAC;AACjB,OAAO,SAAS,CAAC;AACjB,OAAO,eAAe,CAAC"}
@@ -42,6 +42,13 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
42
42
  step((generator = generator.apply(thisArg, _arguments || [])).next());
43
43
  });
44
44
  };
45
+ var __asyncValues = (this && this.__asyncValues) || function (o) {
46
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
47
+ var m = o[Symbol.asyncIterator], i;
48
+ return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
49
+ function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
50
+ function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
51
+ };
45
52
  Object.defineProperty(exports, "__esModule", { value: true });
46
53
  /*
47
54
  * Copyright 2025 the original author or authors.
@@ -61,6 +68,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
61
68
  const commander_1 = require("commander");
62
69
  const fsp = __importStar(require("fs/promises"));
63
70
  const path = __importStar(require("path"));
71
+ const child_process_1 = require("child_process");
64
72
  const recipe_1 = require("../recipe");
65
73
  const execution_1 = require("../execution");
66
74
  const run_1 = require("../run");
@@ -77,6 +85,7 @@ require('v8').setFlagsFromString('--stack-size=8000');
77
85
  const DEFAULT_RECIPE_DIR = path.join(process.env.HOME || '', '.rewrite', 'javascript', 'recipes');
78
86
  function main() {
79
87
  return __awaiter(this, void 0, void 0, function* () {
88
+ var _a, e_1, _b, _c;
80
89
  const program = new commander_1.Command();
81
90
  program
82
91
  .name('rewrite')
@@ -86,10 +95,20 @@ function main() {
86
95
  .option('-d, --recipe-dir <dir>', 'Directory for recipe installation', DEFAULT_RECIPE_DIR)
87
96
  .option('-o, --option <option...>', 'Recipe options in format "key=value"', [])
88
97
  .option('-v, --verbose', 'Enable verbose output', false)
98
+ .option('--debug', 'Start with Node.js debugger (--inspect-brk)', false)
89
99
  .parse();
90
100
  const recipeArg = program.args[0];
91
101
  const opts = program.opts();
92
102
  opts.option = opts.option || [];
103
+ // Handle --debug by re-spawning with --inspect-brk
104
+ if (opts.debug) {
105
+ const args = process.argv.slice(2).filter(arg => arg !== '--debug');
106
+ const child = (0, child_process_1.spawn)(process.execPath, ['--inspect-brk', process.argv[1], ...args], {
107
+ stdio: 'inherit'
108
+ });
109
+ child.on('exit', (code) => process.exit(code !== null && code !== void 0 ? code : 0));
110
+ return;
111
+ }
93
112
  // Parse recipe specification
94
113
  const recipeSpec = (0, cli_utils_1.parseRecipeSpec)(recipeArg);
95
114
  if (!recipeSpec) {
@@ -147,45 +166,64 @@ function main() {
147
166
  console.log('No files could be parsed.');
148
167
  return;
149
168
  }
150
- // Run the recipe
169
+ // Run the recipe with streaming output
151
170
  const ctx = new execution_1.ExecutionContext();
152
- const { changeset } = yield (0, run_1.scheduleRun)(recipe, parsedFiles, ctx);
153
- if (changeset.length === 0) {
154
- console.log('No changes to make.');
155
- return;
156
- }
157
- console.log(`\n${changeset.length} file(s) ${opts.dryRun ? 'would be ' : ''}changed:\n`);
158
- // Handle results
159
- for (const result of changeset) {
160
- if (opts.dryRun) {
161
- // Print colorized diff
162
- const diff = yield result.diff();
163
- console.log((0, cli_utils_1.colorizeDiff)(diff));
164
- }
165
- else {
166
- // Apply changes
167
- if (result.after) {
168
- const filePath = path.join(projectRoot, result.after.sourcePath);
169
- const content = yield print_1.TreePrinters.print(result.after);
170
- // Ensure directory exists
171
- yield fsp.mkdir(path.dirname(filePath), { recursive: true });
172
- yield fsp.writeFile(filePath, content);
173
- if (result.before) {
174
- console.log(` Modified: ${result.after.sourcePath}`);
175
- }
176
- else {
177
- console.log(` Created: ${result.after.sourcePath}`);
171
+ let changeCount = 0;
172
+ try {
173
+ for (var _d = true, _e = __asyncValues((0, run_1.scheduleRunStreaming)(recipe, parsedFiles, ctx)), _f; _f = yield _e.next(), _a = _f.done, !_a; _d = true) {
174
+ _c = _f.value;
175
+ _d = false;
176
+ const result = _c;
177
+ if (opts.dryRun) {
178
+ // Print colorized diff immediately (skip empty diffs)
179
+ const diff = yield result.diff();
180
+ const hasChanges = diff.split('\n').some(line => (line.startsWith('+') || line.startsWith('-')) &&
181
+ !line.startsWith('+++') && !line.startsWith('---'));
182
+ if (hasChanges) {
183
+ changeCount++;
184
+ console.log((0, cli_utils_1.colorizeDiff)(diff));
178
185
  }
179
186
  }
180
- else if (result.before) {
181
- const filePath = path.join(projectRoot, result.before.sourcePath);
182
- yield fsp.unlink(filePath);
183
- console.log(` Deleted: ${result.before.sourcePath}`);
187
+ else {
188
+ // Apply changes immediately
189
+ if (result.after) {
190
+ const filePath = path.join(projectRoot, result.after.sourcePath);
191
+ const content = yield print_1.TreePrinters.print(result.after);
192
+ // Ensure directory exists
193
+ yield fsp.mkdir(path.dirname(filePath), { recursive: true });
194
+ yield fsp.writeFile(filePath, content);
195
+ changeCount++;
196
+ if (result.before) {
197
+ console.log(` Modified: ${result.after.sourcePath}`);
198
+ }
199
+ else {
200
+ console.log(` Created: ${result.after.sourcePath}`);
201
+ }
202
+ }
203
+ else if (result.before) {
204
+ const filePath = path.join(projectRoot, result.before.sourcePath);
205
+ yield fsp.unlink(filePath);
206
+ changeCount++;
207
+ console.log(` Deleted: ${result.before.sourcePath}`);
208
+ }
184
209
  }
185
210
  }
186
211
  }
187
- if (!opts.dryRun) {
188
- console.log('\nChanges applied successfully.');
212
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
213
+ finally {
214
+ try {
215
+ if (!_d && !_a && (_b = _e.return)) yield _b.call(_e);
216
+ }
217
+ finally { if (e_1) throw e_1.error; }
218
+ }
219
+ if (changeCount === 0) {
220
+ console.log('No changes to make.');
221
+ }
222
+ else if (opts.dryRun) {
223
+ console.log(`\n${changeCount} file(s) would be changed.`);
224
+ }
225
+ else {
226
+ console.log(`\n${changeCount} file(s) changed.`);
189
227
  }
190
228
  });
191
229
  }
@@ -1 +1 @@
1
- {"version":3,"file":"rewrite.js","sourceRoot":"","sources":["../../src/cli/rewrite.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rewrite.js","sourceRoot":"","sources":["../../src/cli/rewrite.ts"],"names":[],"mappings":"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"}
package/dist/run.d.ts CHANGED
@@ -11,4 +11,11 @@ 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
+ /**
15
+ * Streaming version of scheduleRun that yields results as soon as each file is processed.
16
+ * This allows callers to print diffs immediately and free memory earlier.
17
+ *
18
+ * For scanning recipes, the scan phase completes on all files before yielding any results.
19
+ */
20
+ export declare function scheduleRunStreaming(recipe: Recipe, before: SourceFile[], ctx: ExecutionContext): AsyncGenerator<Result, void, undefined>;
14
21
  //# 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,CAwCjH"}
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;;;;;GAKG;AACH,wBAAuB,oBAAoB,CACvC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,UAAU,EAAE,EACpB,GAAG,EAAE,gBAAgB,GACtB,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,CAuCzC"}
package/dist/run.js CHANGED
@@ -8,9 +8,30 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
+ var __asyncValues = (this && this.__asyncValues) || function (o) {
12
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
13
+ var m = o[Symbol.asyncIterator], i;
14
+ return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
15
+ function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
16
+ function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
17
+ };
18
+ var __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }
19
+ var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {
20
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
21
+ var g = generator.apply(thisArg, _arguments || []), i, q = [];
22
+ return i = Object.create((typeof AsyncIterator === "function" ? AsyncIterator : Object).prototype), verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;
23
+ function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }
24
+ function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }
25
+ function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
26
+ function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
27
+ function fulfill(value) { resume("next", value); }
28
+ function reject(value) { resume("throw", value); }
29
+ function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
30
+ };
11
31
  Object.defineProperty(exports, "__esModule", { value: true });
12
32
  exports.Result = void 0;
13
33
  exports.scheduleRun = scheduleRun;
34
+ exports.scheduleRunStreaming = scheduleRunStreaming;
14
35
  const tree_1 = require("./tree");
15
36
  const diff_1 = require("diff");
16
37
  const print_1 = require("./print");
@@ -53,39 +74,67 @@ function recursiveOnComplete(recipe, ctx) {
53
74
  }
54
75
  function scheduleRun(recipe, before, ctx) {
55
76
  return __awaiter(this, void 0, void 0, function* () {
77
+ var _a, e_1, _b, _c;
78
+ const changeset = [];
79
+ try {
80
+ for (var _d = true, _e = __asyncValues(scheduleRunStreaming(recipe, before, ctx)), _f; _f = yield _e.next(), _a = _f.done, !_a; _d = true) {
81
+ _c = _f.value;
82
+ _d = false;
83
+ const result = _c;
84
+ changeset.push(result);
85
+ }
86
+ }
87
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
88
+ finally {
89
+ try {
90
+ if (!_d && !_a && (_b = _e.return)) yield _b.call(_e);
91
+ }
92
+ finally { if (e_1) throw e_1.error; }
93
+ }
94
+ return { changeset };
95
+ });
96
+ }
97
+ /**
98
+ * Streaming version of scheduleRun that yields results as soon as each file is processed.
99
+ * This allows callers to print diffs immediately and free memory earlier.
100
+ *
101
+ * For scanning recipes, the scan phase completes on all files before yielding any results.
102
+ */
103
+ function scheduleRunStreaming(recipe, before, ctx) {
104
+ return __asyncGenerator(this, arguments, function* scheduleRunStreaming_1() {
56
105
  const cursor = (0, tree_1.rootCursor)();
57
- if (yield hasScanningRecipe(recipe)) {
106
+ // Phase 1: Run scanners on all files (if any scanning recipes exist)
107
+ if (yield __await(hasScanningRecipe(recipe))) {
58
108
  for (const b of before) {
59
- yield recurseRecipeList(recipe, b, (recipe, b2) => __awaiter(this, void 0, void 0, function* () {
109
+ yield __await(recurseRecipeList(recipe, b, (recipe, b2) => __awaiter(this, void 0, void 0, function* () {
60
110
  if (recipe instanceof recipe_1.ScanningRecipe) {
61
111
  return (yield recipe.scanner(recipe.accumulator(cursor, ctx))).visit(b2, ctx, cursor);
62
112
  }
63
- }));
113
+ })));
64
114
  }
65
115
  }
66
- const generated = (yield recurseRecipeList(recipe, [], (recipe, generated) => __awaiter(this, void 0, void 0, function* () {
116
+ // Phase 2: Collect generated files
117
+ const generated = (yield __await(recurseRecipeList(recipe, [], (recipe, generated) => __awaiter(this, void 0, void 0, function* () {
67
118
  if (recipe instanceof recipe_1.ScanningRecipe) {
68
119
  generated.push(...yield recipe.generate(recipe.accumulator(cursor, ctx), ctx));
69
120
  }
70
121
  return generated;
71
- })));
72
- const changeset = [];
122
+ }))));
123
+ // Phase 3: Edit existing files and yield results immediately
73
124
  for (const b of before) {
74
- const editedB = yield recurseRecipeList(recipe, b, (recipe, b2) => __awaiter(this, void 0, void 0, function* () { return (yield recipe.editor()).visit(b2, ctx, cursor); }));
125
+ const editedB = yield __await(recurseRecipeList(recipe, b, (recipe, b2) => __awaiter(this, void 0, void 0, function* () { return (yield recipe.editor()).visit(b2, ctx, cursor); })));
75
126
  if (editedB !== b) {
76
- changeset.push(new Result(b, editedB));
127
+ yield yield __await(new Result(b, editedB));
77
128
  }
78
129
  }
130
+ // Phase 4: Edit generated files and yield results
79
131
  for (const g of generated) {
80
- const editedG = yield recurseRecipeList(recipe, g, (recipe, g2) => __awaiter(this, void 0, void 0, function* () { return (yield recipe.editor()).visit(g2, ctx, cursor); }));
132
+ const editedG = yield __await(recurseRecipeList(recipe, g, (recipe, g2) => __awaiter(this, void 0, void 0, function* () { return (yield recipe.editor()).visit(g2, ctx, cursor); })));
81
133
  if (editedG) {
82
- changeset.push(new Result(undefined, editedG));
134
+ yield yield __await(new Result(undefined, editedG));
83
135
  }
84
136
  }
85
- yield recursiveOnComplete(recipe, ctx);
86
- return {
87
- changeset: changeset
88
- };
137
+ yield __await(recursiveOnComplete(recipe, ctx));
89
138
  });
90
139
  }
91
140
  //# sourceMappingURL=run.js.map
package/dist/run.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}
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.68.0
1
+ 8.69.0-20251204-195759
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openrewrite/rewrite",
3
- "version": "8.68.0",
3
+ "version": "8.69.0-20251204-195759",
4
4
  "license": "Moderne Source Available License",
5
5
  "description": "OpenRewrite JavaScript.",
6
6
  "homepage": "https://github.com/openrewrite/rewrite",
@@ -150,20 +150,26 @@ export async function loadLocalRecipes(
150
150
  if (stat.isDirectory()) {
151
151
  // Look for package.json to find the main entry point
152
152
  const packageJsonPath = path.join(resolvedPath, 'package.json');
153
+ let mainFromPkg: string | undefined;
153
154
  if (fs.existsSync(packageJsonPath)) {
154
155
  const pkg = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
155
- // Use the main field, or default to dist/index.js
156
- const main = pkg.main || 'dist/index.js';
157
- modulePath = path.join(resolvedPath, main);
156
+ mainFromPkg = pkg.main;
157
+ }
158
+
159
+ // Try the main field first, then common fallbacks
160
+ const candidates = [
161
+ mainFromPkg,
162
+ 'dist/index.js',
163
+ 'dist/src/index.js',
164
+ 'index.js',
165
+ 'src/index.ts'
166
+ ].filter((c): c is string => !!c);
167
+
168
+ const found = candidates.find(c => fs.existsSync(path.join(resolvedPath, c)));
169
+ if (found) {
170
+ modulePath = path.join(resolvedPath, found);
158
171
  } else {
159
- // Try common entry points
160
- const candidates = ['dist/index.js', 'index.js', 'src/index.ts'];
161
- const found = candidates.find(c => fs.existsSync(path.join(resolvedPath, c)));
162
- if (found) {
163
- modulePath = path.join(resolvedPath, found);
164
- } else {
165
- throw new Error(`Cannot find entry point in ${resolvedPath}. Expected package.json with main field or dist/index.js`);
166
- }
172
+ throw new Error(`Cannot find entry point in ${resolvedPath}. Tried: ${candidates.join(', ')}`);
167
173
  }
168
174
  } else {
169
175
  modulePath = resolvedPath;
@@ -177,9 +183,6 @@ export async function loadLocalRecipes(
177
183
  console.log(`Loading recipes from ${modulePath}...`);
178
184
  }
179
185
 
180
- // Set up shared dependencies
181
- setupSharedDependencies(modulePath);
182
-
183
186
  const recipeModule = require(modulePath);
184
187
 
185
188
  if (typeof recipeModule.activate !== 'function') {
@@ -248,10 +251,6 @@ export async function installRecipePackage(
248
251
 
249
252
  // Load the module and activate recipes
250
253
  const resolvedPath = require.resolve(path.join(installDir, 'node_modules', packageName));
251
-
252
- // Set up shared dependencies to avoid instanceof failures
253
- setupSharedDependencies(resolvedPath);
254
-
255
254
  const recipeModule = require(resolvedPath);
256
255
 
257
256
  if (typeof recipeModule.activate !== 'function') {
@@ -268,76 +267,6 @@ export async function installRecipePackage(
268
267
  }
269
268
  }
270
269
 
271
- /**
272
- * Set up shared dependencies to avoid instanceof failures when loading recipes
273
- * from a separate node_modules directory
274
- */
275
- export function setupSharedDependencies(targetModulePath: string): void {
276
- const sharedDeps = ['@openrewrite/rewrite'];
277
- const targetDir = path.dirname(targetModulePath);
278
-
279
- for (const depName of sharedDeps) {
280
- try {
281
- const hostPackageEntry = require.resolve(depName);
282
-
283
- // Find host package root
284
- let hostPackageRoot = path.dirname(hostPackageEntry);
285
- while (hostPackageRoot !== path.dirname(hostPackageRoot)) {
286
- const pkgJsonPath = path.join(hostPackageRoot, 'package.json');
287
- if (fs.existsSync(pkgJsonPath)) {
288
- try {
289
- const pkg = JSON.parse(fs.readFileSync(pkgJsonPath, 'utf8'));
290
- if (pkg.name === depName) {
291
- break;
292
- }
293
- } catch {
294
- // Not a valid package.json
295
- }
296
- }
297
- hostPackageRoot = path.dirname(hostPackageRoot);
298
- }
299
-
300
- // Find target package root
301
- let targetPackageRoot: string | undefined;
302
- let searchDir = targetDir;
303
- while (searchDir !== path.dirname(searchDir)) {
304
- const nodeModulesPath = path.join(searchDir, 'node_modules', ...depName.split('/'));
305
- if (fs.existsSync(nodeModulesPath)) {
306
- const pkgJsonPath = path.join(nodeModulesPath, 'package.json');
307
- if (fs.existsSync(pkgJsonPath)) {
308
- try {
309
- const pkg = JSON.parse(fs.readFileSync(pkgJsonPath, 'utf8'));
310
- if (pkg.name === depName) {
311
- targetPackageRoot = nodeModulesPath;
312
- break;
313
- }
314
- } catch {
315
- // Not a valid package.json
316
- }
317
- }
318
- }
319
- searchDir = path.dirname(searchDir);
320
- }
321
-
322
- if (!targetPackageRoot || hostPackageRoot === targetPackageRoot) {
323
- continue;
324
- }
325
-
326
- // Map all cached modules
327
- const hostPrefix = hostPackageRoot + path.sep;
328
- for (const cachedPath of Object.keys(require.cache)) {
329
- if (cachedPath.startsWith(hostPrefix)) {
330
- const relativePath = cachedPath.substring(hostPrefix.length);
331
- const targetPath = path.join(targetPackageRoot, relativePath);
332
- require.cache[targetPath] = require.cache[cachedPath];
333
- }
334
- }
335
- } catch {
336
- // Failed to set up shared dependency
337
- }
338
- }
339
- }
340
-
341
270
  /**
342
271
  * Find a recipe by name in the registry
343
272
  *
@@ -17,9 +17,10 @@
17
17
  import {Command} from 'commander';
18
18
  import * as fsp from 'fs/promises';
19
19
  import * as path from 'path';
20
+ import {spawn} from 'child_process';
20
21
  import {RecipeRegistry} from '../recipe';
21
22
  import {ExecutionContext} from '../execution';
22
- import {scheduleRun} from '../run';
23
+ import {scheduleRunStreaming} from '../run';
23
24
  import {TreePrinters} from '../print';
24
25
  import {activate} from '../index';
25
26
  import {
@@ -49,6 +50,7 @@ interface CliOptions {
49
50
  recipeDir?: string;
50
51
  option: string[];
51
52
  verbose: boolean;
53
+ debug: boolean;
52
54
  }
53
55
 
54
56
  async function main() {
@@ -61,12 +63,23 @@ async function main() {
61
63
  .option('-d, --recipe-dir <dir>', 'Directory for recipe installation', DEFAULT_RECIPE_DIR)
62
64
  .option('-o, --option <option...>', 'Recipe options in format "key=value"', [])
63
65
  .option('-v, --verbose', 'Enable verbose output', false)
66
+ .option('--debug', 'Start with Node.js debugger (--inspect-brk)', false)
64
67
  .parse();
65
68
 
66
69
  const recipeArg = program.args[0];
67
70
  const opts = program.opts() as CliOptions;
68
71
  opts.option = opts.option || [];
69
72
 
73
+ // Handle --debug by re-spawning with --inspect-brk
74
+ if (opts.debug) {
75
+ const args = process.argv.slice(2).filter(arg => arg !== '--debug');
76
+ const child = spawn(process.execPath, ['--inspect-brk', process.argv[1], ...args], {
77
+ stdio: 'inherit'
78
+ });
79
+ child.on('exit', (code) => process.exit(code ?? 0));
80
+ return;
81
+ }
82
+
70
83
  // Parse recipe specification
71
84
  const recipeSpec = parseRecipeSpec(recipeArg);
72
85
  if (!recipeSpec) {
@@ -135,25 +148,24 @@ async function main() {
135
148
  return;
136
149
  }
137
150
 
138
- // Run the recipe
151
+ // Run the recipe with streaming output
139
152
  const ctx = new ExecutionContext();
140
- const {changeset} = await scheduleRun(recipe, parsedFiles, ctx);
141
-
142
- if (changeset.length === 0) {
143
- console.log('No changes to make.');
144
- return;
145
- }
146
-
147
- console.log(`\n${changeset.length} file(s) ${opts.dryRun ? 'would be ' : ''}changed:\n`);
153
+ let changeCount = 0;
148
154
 
149
- // Handle results
150
- for (const result of changeset) {
155
+ for await (const result of scheduleRunStreaming(recipe, parsedFiles, ctx)) {
151
156
  if (opts.dryRun) {
152
- // Print colorized diff
157
+ // Print colorized diff immediately (skip empty diffs)
153
158
  const diff = await result.diff();
154
- console.log(colorizeDiff(diff));
159
+ const hasChanges = diff.split('\n').some(line =>
160
+ (line.startsWith('+') || line.startsWith('-')) &&
161
+ !line.startsWith('+++') && !line.startsWith('---')
162
+ );
163
+ if (hasChanges) {
164
+ changeCount++;
165
+ console.log(colorizeDiff(diff));
166
+ }
155
167
  } else {
156
- // Apply changes
168
+ // Apply changes immediately
157
169
  if (result.after) {
158
170
  const filePath = path.join(projectRoot, result.after.sourcePath);
159
171
  const content = await TreePrinters.print(result.after);
@@ -162,6 +174,7 @@ async function main() {
162
174
  await fsp.mkdir(path.dirname(filePath), {recursive: true});
163
175
  await fsp.writeFile(filePath, content);
164
176
 
177
+ changeCount++;
165
178
  if (result.before) {
166
179
  console.log(` Modified: ${result.after.sourcePath}`);
167
180
  } else {
@@ -170,13 +183,18 @@ async function main() {
170
183
  } else if (result.before) {
171
184
  const filePath = path.join(projectRoot, result.before.sourcePath);
172
185
  await fsp.unlink(filePath);
186
+ changeCount++;
173
187
  console.log(` Deleted: ${result.before.sourcePath}`);
174
188
  }
175
189
  }
176
190
  }
177
191
 
178
- if (!opts.dryRun) {
179
- console.log('\nChanges applied successfully.');
192
+ if (changeCount === 0) {
193
+ console.log('No changes to make.');
194
+ } else if (opts.dryRun) {
195
+ console.log(`\n${changeCount} file(s) would be changed.`);
196
+ } else {
197
+ console.log(`\n${changeCount} file(s) changed.`);
180
198
  }
181
199
  }
182
200
 
package/src/run.ts CHANGED
@@ -61,7 +61,27 @@ async function recursiveOnComplete(recipe: Recipe, ctx: ExecutionContext): Promi
61
61
  }
62
62
 
63
63
  export async function scheduleRun(recipe: Recipe, before: SourceFile[], ctx: ExecutionContext): Promise<RecipeRun> {
64
+ const changeset: Result[] = [];
65
+ for await (const result of scheduleRunStreaming(recipe, before, ctx)) {
66
+ changeset.push(result);
67
+ }
68
+ return { changeset };
69
+ }
70
+
71
+ /**
72
+ * Streaming version of scheduleRun that yields results as soon as each file is processed.
73
+ * This allows callers to print diffs immediately and free memory earlier.
74
+ *
75
+ * For scanning recipes, the scan phase completes on all files before yielding any results.
76
+ */
77
+ export async function* scheduleRunStreaming(
78
+ recipe: Recipe,
79
+ before: SourceFile[],
80
+ ctx: ExecutionContext
81
+ ): AsyncGenerator<Result, void, undefined> {
64
82
  const cursor = rootCursor();
83
+
84
+ // Phase 1: Run scanners on all files (if any scanning recipes exist)
65
85
  if (await hasScanningRecipe(recipe)) {
66
86
  for (const b of before) {
67
87
  await recurseRecipeList(recipe, b, async (recipe, b2) => {
@@ -72,6 +92,7 @@ export async function scheduleRun(recipe: Recipe, before: SourceFile[], ctx: Exe
72
92
  }
73
93
  }
74
94
 
95
+ // Phase 2: Collect generated files
75
96
  const generated = (await recurseRecipeList(recipe, [] as SourceFile[], async (recipe, generated) => {
76
97
  if (recipe instanceof ScanningRecipe) {
77
98
  generated.push(...await recipe.generate(recipe.accumulator(cursor, ctx), ctx));
@@ -79,25 +100,21 @@ export async function scheduleRun(recipe: Recipe, before: SourceFile[], ctx: Exe
79
100
  return generated;
80
101
  }))!;
81
102
 
82
- const changeset: Result[] = [];
83
-
103
+ // Phase 3: Edit existing files and yield results immediately
84
104
  for (const b of before) {
85
105
  const editedB = await recurseRecipeList(recipe, b, async (recipe, b2) => (await recipe.editor()).visit(b2, ctx, cursor));
86
106
  if (editedB !== b) {
87
- changeset.push(new Result(b, editedB));
107
+ yield new Result(b, editedB);
88
108
  }
89
109
  }
90
110
 
111
+ // Phase 4: Edit generated files and yield results
91
112
  for (const g of generated) {
92
113
  const editedG = await recurseRecipeList(recipe, g, async (recipe, g2) => (await recipe.editor()).visit(g2, ctx, cursor));
93
114
  if (editedG) {
94
- changeset.push(new Result(undefined, editedG));
115
+ yield new Result(undefined, editedG);
95
116
  }
96
117
  }
97
118
 
98
119
  await recursiveOnComplete(recipe, ctx);
99
-
100
- return {
101
- changeset: changeset
102
- };
103
120
  }