@openrewrite/rewrite 8.64.0-20251015-185250 → 8.64.0-20251016-064729

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.
@@ -30,6 +30,8 @@ export declare class DependencyWorkspace {
30
30
  /**
31
31
  * Cleans up old workspace directories.
32
32
  * Removes workspaces older than the specified age.
33
+ * Also removes all temporary directories (*.tmp-*) regardless of age,
34
+ * as these indicate incomplete/crashed operations.
33
35
  *
34
36
  * @param maxAgeMs Maximum age in milliseconds (default: 24 hours)
35
37
  */
@@ -1 +1 @@
1
- {"version":3,"file":"dependency-workspace.d.ts","sourceRoot":"","sources":["../../src/javascript/dependency-workspace.ts"],"names":[],"mappings":"AAqBA;;;;GAIG;AACH,qBAAa,mBAAmB;IAC5B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAuD;IAC7F,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAA6B;IAE1D;;;;;;;;OAQG;WACU,oBAAoB,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA6F5G;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAO/B;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAoC/B;;;;;OAKG;IACH,MAAM,CAAC,oBAAoB,CAAC,QAAQ,GAAE,MAA4B,GAAG,IAAI;IAkCzE;;OAEG;IACH,MAAM,CAAC,UAAU,IAAI,IAAI;CAG5B"}
1
+ {"version":3,"file":"dependency-workspace.d.ts","sourceRoot":"","sources":["../../src/javascript/dependency-workspace.ts"],"names":[],"mappings":"AAqBA;;;;GAIG;AACH,qBAAa,mBAAmB;IAC5B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAuD;IAC7F,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAA6B;IAE1D;;;;;;;;OAQG;WACU,oBAAoB,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAqK5G;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAO/B;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAoC/B;;;;;;;OAOG;IACH,MAAM,CAAC,oBAAoB,CAAC,QAAQ,GAAE,MAA4B,GAAG,IAAI;IA8CzE;;OAEG;IACH,MAAM,CAAC,UAAU,IAAI,IAAI;CAG5B"}
@@ -113,19 +113,25 @@ class DependencyWorkspace {
113
113
  if (cached && fs.existsSync(cached) && this.isWorkspaceValid(cached, dependencies)) {
114
114
  return cached;
115
115
  }
116
- // Create new workspace
116
+ // Final workspace location
117
117
  const workspaceDir = path.join(this.WORKSPACE_BASE, hash);
118
+ // Check if valid workspace already exists on disk (cross-VM reuse)
119
+ if (fs.existsSync(workspaceDir) && this.isWorkspaceValid(workspaceDir, dependencies)) {
120
+ this.cache.set(hash, workspaceDir);
121
+ return workspaceDir;
122
+ }
118
123
  // Ensure base directory exists
119
124
  if (!fs.existsSync(this.WORKSPACE_BASE)) {
120
125
  fs.mkdirSync(this.WORKSPACE_BASE, { recursive: true });
121
126
  }
122
- // Remove existing workspace if it exists
123
- if (fs.existsSync(workspaceDir)) {
124
- fs.rmSync(workspaceDir, { recursive: true, force: true });
125
- }
126
- // Create workspace directory
127
- fs.mkdirSync(workspaceDir, { recursive: true });
127
+ // Create workspace in temporary location to ensure atomicity
128
+ // This prevents reusing partially created workspaces from crashes
129
+ // and handles concurrency with other Node processes
130
+ const tempSuffix = `.tmp-${process.pid}-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`;
131
+ const tempWorkspaceDir = path.join(this.WORKSPACE_BASE, hash + tempSuffix);
128
132
  try {
133
+ // Create temporary workspace directory
134
+ fs.mkdirSync(tempWorkspaceDir, { recursive: true });
129
135
  // Create package.json
130
136
  const packageJson = {
131
137
  name: "openrewrite-template-workspace",
@@ -133,20 +139,90 @@ class DependencyWorkspace {
133
139
  private: true,
134
140
  dependencies: dependencies
135
141
  };
136
- fs.writeFileSync(path.join(workspaceDir, 'package.json'), JSON.stringify(packageJson, null, 2));
142
+ fs.writeFileSync(path.join(tempWorkspaceDir, 'package.json'), JSON.stringify(packageJson, null, 2));
137
143
  // Run npm install
138
144
  (0, child_process_1.execSync)('npm install --silent', {
139
- cwd: workspaceDir,
145
+ cwd: tempWorkspaceDir,
140
146
  stdio: 'pipe' // Suppress output
141
147
  });
148
+ // Atomically move to final location with retry logic for concurrency
149
+ let moved = false;
150
+ let retries = 3;
151
+ while (!moved && retries > 0) {
152
+ try {
153
+ // Attempt atomic rename (works on POSIX, fails on Windows if target exists)
154
+ fs.renameSync(tempWorkspaceDir, workspaceDir);
155
+ moved = true;
156
+ }
157
+ catch (error) {
158
+ // Handle concurrent creation by another process
159
+ if (error.code === 'EEXIST' || error.code === 'ENOTEMPTY' || error.code === 'EISDIR' ||
160
+ (error.code === 'EPERM' && fs.existsSync(workspaceDir))) {
161
+ // Target exists - check if it's valid
162
+ if (this.isWorkspaceValid(workspaceDir, dependencies)) {
163
+ // Another process created a valid workspace - use theirs
164
+ moved = true; // Don't try again
165
+ }
166
+ else {
167
+ // Invalid workspace exists - try to remove and retry
168
+ try {
169
+ fs.rmSync(workspaceDir, { recursive: true, force: true });
170
+ retries--;
171
+ }
172
+ catch (removeError) {
173
+ // Another process might be using it, give up
174
+ retries = 0;
175
+ }
176
+ }
177
+ }
178
+ else if (error.code === 'EXDEV') {
179
+ // Cross-device link - fallback to copy+remove (not atomic, but rare)
180
+ try {
181
+ fs.cpSync(tempWorkspaceDir, workspaceDir, { recursive: true });
182
+ moved = true;
183
+ }
184
+ catch (copyError) {
185
+ // Check if another process created it while we were copying
186
+ if (this.isWorkspaceValid(workspaceDir, dependencies)) {
187
+ moved = true;
188
+ }
189
+ else {
190
+ throw error;
191
+ }
192
+ }
193
+ }
194
+ else {
195
+ // Unexpected error
196
+ throw error;
197
+ }
198
+ }
199
+ }
200
+ // Clean up temp directory
201
+ try {
202
+ if (fs.existsSync(tempWorkspaceDir)) {
203
+ fs.rmSync(tempWorkspaceDir, { recursive: true, force: true });
204
+ }
205
+ }
206
+ catch (_a) {
207
+ // Ignore cleanup errors
208
+ }
209
+ // Verify final workspace is valid (might be from another process)
210
+ if (!this.isWorkspaceValid(workspaceDir, dependencies)) {
211
+ throw new Error('Failed to create valid workspace due to concurrent modifications');
212
+ }
142
213
  // Cache the workspace
143
214
  this.cache.set(hash, workspaceDir);
144
215
  return workspaceDir;
145
216
  }
146
217
  catch (error) {
147
- // Clean up on failure
148
- if (fs.existsSync(workspaceDir)) {
149
- fs.rmSync(workspaceDir, { recursive: true, force: true });
218
+ // Clean up temporary workspace on failure
219
+ try {
220
+ if (fs.existsSync(tempWorkspaceDir)) {
221
+ fs.rmSync(tempWorkspaceDir, { recursive: true, force: true });
222
+ }
223
+ }
224
+ catch (_b) {
225
+ // Ignore cleanup errors
150
226
  }
151
227
  throw new Error(`Failed to create dependency workspace: ${error}`);
152
228
  }
@@ -200,6 +276,8 @@ class DependencyWorkspace {
200
276
  /**
201
277
  * Cleans up old workspace directories.
202
278
  * Removes workspaces older than the specified age.
279
+ * Also removes all temporary directories (*.tmp-*) regardless of age,
280
+ * as these indicate incomplete/crashed operations.
203
281
  *
204
282
  * @param maxAgeMs Maximum age in milliseconds (default: 24 hours)
205
283
  */
@@ -214,6 +292,17 @@ class DependencyWorkspace {
214
292
  continue;
215
293
  }
216
294
  const workspaceDir = path.join(this.WORKSPACE_BASE, entry.name);
295
+ // Always clean up temporary directories (incomplete operations)
296
+ if (entry.name.includes('.tmp-')) {
297
+ try {
298
+ fs.rmSync(workspaceDir, { recursive: true, force: true });
299
+ }
300
+ catch (error) {
301
+ // Ignore errors, might be in use by another process
302
+ }
303
+ continue;
304
+ }
305
+ // Clean up old regular workspaces
217
306
  try {
218
307
  const stats = fs.statSync(workspaceDir);
219
308
  const age = now - stats.mtimeMs;
@@ -1 +1 @@
1
- {"version":3,"file":"dependency-workspace.js","sourceRoot":"","sources":["../../src/javascript/dependency-workspace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dependency-workspace.js","sourceRoot":"","sources":["../../src/javascript/dependency-workspace.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"templating.d.ts","sourceRoot":"","sources":["../../src/javascript/templating.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"templating.d.ts","sourceRoot":"","sources":["../../src/javascript/templating.ts"],"names":[],"mappings":"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"}
@@ -36,6 +36,8 @@ const __1 = require("..");
36
36
  const java_1 = require("../java");
37
37
  const immer_1 = require("immer");
38
38
  const comparator_1 = require("./comparator");
39
+ const dependency_workspace_1 = require("./dependency-workspace");
40
+ const uuid_1 = require("../uuid");
39
41
  /**
40
42
  * Cache for compiled templates and patterns.
41
43
  * Stores parsed ASTs to avoid expensive re-parsing and dependency resolution.
@@ -73,8 +75,7 @@ class TemplateCache {
73
75
  // the same dependencies will automatically share the same workspace
74
76
  let workspaceDir;
75
77
  if (dependencies && Object.keys(dependencies).length > 0) {
76
- const { DependencyWorkspace } = yield import('./dependency-workspace.js');
77
- workspaceDir = yield DependencyWorkspace.getOrCreateWorkspace(dependencies);
78
+ workspaceDir = yield dependency_workspace_1.DependencyWorkspace.getOrCreateWorkspace(dependencies);
78
79
  }
79
80
  // Prepend imports for type attribution context
80
81
  const fullTemplateString = imports.length > 0
@@ -97,6 +98,17 @@ class TemplateCache {
97
98
  }
98
99
  // Global cache instance
99
100
  const templateCache = new TemplateCache();
101
+ /**
102
+ * Marker that stores capture metadata on pattern AST nodes.
103
+ * This avoids the need to parse capture names from identifiers during matching.
104
+ */
105
+ class CaptureMarker {
106
+ constructor(captureName) {
107
+ this.captureName = captureName;
108
+ this.kind = 'org.openrewrite.javascript.CaptureMarker';
109
+ this.id = (0, uuid_1.randomId)();
110
+ }
111
+ }
100
112
  class CaptureImpl {
101
113
  constructor(name) {
102
114
  this.name = name;
@@ -255,6 +267,7 @@ class JavaScriptTemplateSemanticallyEqualVisitor extends comparator_1.JavaScript
255
267
  // Check basic structural equality first
256
268
  if (method.name.simpleName !== otherMethod.name.simpleName ||
257
269
  method.arguments.elements.length !== otherMethod.arguments.elements.length) {
270
+ this.abort();
258
271
  return method;
259
272
  }
260
273
  // Check type attribution
@@ -362,8 +375,8 @@ class Matcher {
362
375
  matches() {
363
376
  return __awaiter(this, void 0, void 0, function* () {
364
377
  if (!this.patternAst) {
365
- this.templateProcessor = new TemplateProcessor(this.pattern.templateParts, this.pattern.captures, this.pattern.options.imports || []);
366
- this.patternAst = yield this.templateProcessor.toAstPattern();
378
+ const templateProcessor = new TemplateProcessor(this.pattern.templateParts, this.pattern.captures, this.pattern.options.imports || [], this.pattern.options.dependencies || {});
379
+ this.patternAst = yield templateProcessor.toAstPattern();
367
380
  }
368
381
  return this.matchNode(this.patternAst, this.ast);
369
382
  });
@@ -407,8 +420,7 @@ class Matcher {
407
420
  });
408
421
  }
409
422
  matchesParameter(identifier, other) {
410
- return PlaceholderUtils.isCapture(identifier) &&
411
- matcher.handleCapture(identifier, other);
423
+ return PlaceholderUtils.isCapture(identifier) && matcher.handleCapture(identifier, other);
412
424
  }
413
425
  }).compare(pattern, target));
414
426
  });
@@ -421,13 +433,12 @@ class Matcher {
421
433
  * @returns true if the capture is successful, false otherwise
422
434
  */
423
435
  handleCapture(pattern, target) {
424
- const id = pattern;
425
- const captureInfo = PlaceholderUtils.parseCapture(id.simpleName);
426
- if (!captureInfo) {
436
+ const captureName = PlaceholderUtils.getCaptureName(pattern);
437
+ if (!captureName) {
427
438
  return false;
428
439
  }
429
440
  // Store the binding
430
- this.bindings.set(captureInfo.name, target);
441
+ this.bindings.set(captureName, target);
431
442
  return true;
432
443
  }
433
444
  }
@@ -515,7 +526,7 @@ class Template {
515
526
  return TemplateEngine.applyTemplate(this.templateParts, this.parameters, cursor, {
516
527
  tree,
517
528
  mode: JavaCoordinates.Mode.Replace
518
- }, values, this.options.imports || []);
529
+ }, values, this.options.imports || [], this.options.dependencies || {});
519
530
  });
520
531
  }
521
532
  }
@@ -542,10 +553,11 @@ class TemplateEngine {
542
553
  * @param coordinates The coordinates specifying where and how to insert the generated AST
543
554
  * @param values Map of capture names to values to replace the parameters with
544
555
  * @param imports Import statements to prepend for type attribution
556
+ * @param dependencies NPM dependencies for type attribution
545
557
  * @returns A Promise resolving to the generated AST node
546
558
  */
547
559
  static applyTemplate(templateParts_1, parameters_1, cursor_1, coordinates_1) {
548
- return __awaiter(this, arguments, void 0, function* (templateParts, parameters, cursor, coordinates, values = new Map(), imports = []) {
560
+ return __awaiter(this, arguments, void 0, function* (templateParts, parameters, cursor, coordinates, values = new Map(), imports = [], dependencies = {}) {
549
561
  // Build the template string with parameter placeholders
550
562
  const templateString = TemplateEngine.buildTemplateString(templateParts, parameters);
551
563
  // If the template string is empty, return undefined
@@ -555,8 +567,7 @@ class TemplateEngine {
555
567
  // Use cache to get or parse the compilation unit
556
568
  // For templates, we don't have captures, so use empty array
557
569
  const cu = yield templateCache.getOrParse(templateString, [], // templates don't have captures in the cache key
558
- imports, {} // dependencies not used yet
559
- );
570
+ imports, dependencies);
560
571
  // Check if there are any statements
561
572
  if (!cu.statements || cu.statements.length === 0) {
562
573
  return undefined;
@@ -625,12 +636,29 @@ class PlaceholderUtils {
625
636
  * @returns true if the node is a capture placeholder, false otherwise
626
637
  */
627
638
  static isCapture(node) {
628
- if (node.kind === java_1.J.Kind.Identifier) {
629
- const id = node;
630
- return id.simpleName.startsWith(this.CAPTURE_PREFIX);
639
+ // Check for CaptureMarker first (efficient)
640
+ for (const marker of node.markers.markers) {
641
+ if (marker instanceof CaptureMarker) {
642
+ return true;
643
+ }
631
644
  }
632
645
  return false;
633
646
  }
647
+ /**
648
+ * Gets the capture name from a node with a CaptureMarker.
649
+ *
650
+ * @param node The node to extract capture name from
651
+ * @returns The capture name, or null if not a capture
652
+ */
653
+ static getCaptureName(node) {
654
+ // Check for CaptureMarker
655
+ for (const marker of node.markers.markers) {
656
+ if (marker instanceof CaptureMarker) {
657
+ return marker.captureName;
658
+ }
659
+ }
660
+ return undefined;
661
+ }
634
662
  /**
635
663
  * Parses a capture placeholder to extract name and type constraint.
636
664
  *
@@ -853,11 +881,13 @@ class TemplateProcessor {
853
881
  * @param templateParts The string parts of the template
854
882
  * @param captures The captures between the string parts
855
883
  * @param imports Import statements to prepend for type attribution
884
+ * @param dependencies NPM dependencies for type attribution
856
885
  */
857
- constructor(templateParts, captures, imports = []) {
886
+ constructor(templateParts, captures, imports = [], dependencies = {}) {
858
887
  this.templateParts = templateParts;
859
888
  this.captures = captures;
860
889
  this.imports = imports;
890
+ this.dependencies = dependencies;
861
891
  }
862
892
  /**
863
893
  * Converts the template to an AST pattern.
@@ -869,8 +899,7 @@ class TemplateProcessor {
869
899
  // Combine template parts and placeholders
870
900
  const templateString = this.buildTemplateString();
871
901
  // Use cache to get or parse the compilation unit
872
- const cu = yield templateCache.getOrParse(templateString, this.captures, this.imports, {} // dependencies not used in pattern matching yet
873
- );
902
+ const cu = yield templateCache.getOrParse(templateString, this.captures, this.imports, this.dependencies);
874
903
  // Extract the relevant part of the AST
875
904
  return this.extractPatternFromAst(cu);
876
905
  });
@@ -911,8 +940,62 @@ class TemplateProcessor {
911
940
  // Otherwise, return the statement itself
912
941
  extracted = firstStatement;
913
942
  }
914
- // Return a copy to avoid sharing cached AST instances
915
- return (0, immer_1.produce)(extracted, draft => { });
943
+ // Attach CaptureMarkers to capture identifiers
944
+ return this.attachCaptureMarkers(extracted);
945
+ }
946
+ /**
947
+ * Attaches CaptureMarkers to capture identifiers in the AST.
948
+ * This allows efficient capture detection without string parsing.
949
+ *
950
+ * @param ast The AST to process
951
+ * @returns The AST with CaptureMarkers attached
952
+ */
953
+ attachCaptureMarkers(ast) {
954
+ const visited = new Set();
955
+ return (0, immer_1.produce)(ast, draft => {
956
+ this.visitAndAttachMarkers(draft, visited);
957
+ });
958
+ }
959
+ /**
960
+ * Recursively visits AST nodes and attaches CaptureMarkers to capture identifiers.
961
+ *
962
+ * @param node The node to visit
963
+ * @param visited Set of already visited nodes to avoid cycles
964
+ */
965
+ visitAndAttachMarkers(node, visited) {
966
+ var _a;
967
+ if (!node || typeof node !== 'object' || visited.has(node)) {
968
+ return;
969
+ }
970
+ // Mark as visited to avoid cycles
971
+ visited.add(node);
972
+ // If this is an identifier that looks like a capture, attach a marker
973
+ if (node.kind === java_1.J.Kind.Identifier && ((_a = node.simpleName) === null || _a === void 0 ? void 0 : _a.startsWith(PlaceholderUtils.CAPTURE_PREFIX))) {
974
+ const captureInfo = PlaceholderUtils.parseCapture(node.simpleName);
975
+ if (captureInfo) {
976
+ // Initialize markers if needed
977
+ if (!node.markers) {
978
+ node.markers = { kind: 'org.openrewrite.marker.Markers', id: (0, uuid_1.randomId)(), markers: [] };
979
+ }
980
+ if (!node.markers.markers) {
981
+ node.markers.markers = [];
982
+ }
983
+ // Add CaptureMarker
984
+ node.markers.markers.push(new CaptureMarker(captureInfo.name));
985
+ }
986
+ }
987
+ // Recursively visit all properties
988
+ for (const key in node) {
989
+ if (node.hasOwnProperty(key)) {
990
+ const value = node[key];
991
+ if (Array.isArray(value)) {
992
+ value.forEach(item => this.visitAndAttachMarkers(item, visited));
993
+ }
994
+ else if (typeof value === 'object' && value !== null) {
995
+ this.visitAndAttachMarkers(value, visited);
996
+ }
997
+ }
998
+ }
916
999
  }
917
1000
  }
918
1001
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"templating.js","sourceRoot":"","sources":["../../src/javascript/templating.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"templating.js","sourceRoot":"","sources":["../../src/javascript/templating.ts"],"names":[],"mappings":"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"}
package/dist/version.txt CHANGED
@@ -1 +1 @@
1
- 8.64.0-20251015-184856
1
+ 8.64.0-20251016-064327
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openrewrite/rewrite",
3
- "version": "8.64.0-20251015-185250",
3
+ "version": "8.64.0-20251016-064729",
4
4
  "license": "Moderne Source Available License",
5
5
  "description": "OpenRewrite JavaScript.",
6
6
  "homepage": "https://github.com/openrewrite/rewrite",
@@ -81,23 +81,30 @@ export class DependencyWorkspace {
81
81
  return cached;
82
82
  }
83
83
 
84
- // Create new workspace
84
+ // Final workspace location
85
85
  const workspaceDir = path.join(this.WORKSPACE_BASE, hash);
86
86
 
87
+ // Check if valid workspace already exists on disk (cross-VM reuse)
88
+ if (fs.existsSync(workspaceDir) && this.isWorkspaceValid(workspaceDir, dependencies)) {
89
+ this.cache.set(hash, workspaceDir);
90
+ return workspaceDir;
91
+ }
92
+
87
93
  // Ensure base directory exists
88
94
  if (!fs.existsSync(this.WORKSPACE_BASE)) {
89
95
  fs.mkdirSync(this.WORKSPACE_BASE, {recursive: true});
90
96
  }
91
97
 
92
- // Remove existing workspace if it exists
93
- if (fs.existsSync(workspaceDir)) {
94
- fs.rmSync(workspaceDir, {recursive: true, force: true});
95
- }
96
-
97
- // Create workspace directory
98
- fs.mkdirSync(workspaceDir, {recursive: true});
98
+ // Create workspace in temporary location to ensure atomicity
99
+ // This prevents reusing partially created workspaces from crashes
100
+ // and handles concurrency with other Node processes
101
+ const tempSuffix = `.tmp-${process.pid}-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`;
102
+ const tempWorkspaceDir = path.join(this.WORKSPACE_BASE, hash + tempSuffix);
99
103
 
100
104
  try {
105
+ // Create temporary workspace directory
106
+ fs.mkdirSync(tempWorkspaceDir, {recursive: true});
107
+
101
108
  // Create package.json
102
109
  const packageJson = {
103
110
  name: "openrewrite-template-workspace",
@@ -107,24 +114,89 @@ export class DependencyWorkspace {
107
114
  };
108
115
 
109
116
  fs.writeFileSync(
110
- path.join(workspaceDir, 'package.json'),
117
+ path.join(tempWorkspaceDir, 'package.json'),
111
118
  JSON.stringify(packageJson, null, 2)
112
119
  );
113
120
 
114
121
  // Run npm install
115
122
  execSync('npm install --silent', {
116
- cwd: workspaceDir,
123
+ cwd: tempWorkspaceDir,
117
124
  stdio: 'pipe' // Suppress output
118
125
  });
119
126
 
127
+ // Atomically move to final location with retry logic for concurrency
128
+ let moved = false;
129
+ let retries = 3;
130
+
131
+ while (!moved && retries > 0) {
132
+ try {
133
+ // Attempt atomic rename (works on POSIX, fails on Windows if target exists)
134
+ fs.renameSync(tempWorkspaceDir, workspaceDir);
135
+ moved = true;
136
+ } catch (error: any) {
137
+ // Handle concurrent creation by another process
138
+ if (error.code === 'EEXIST' || error.code === 'ENOTEMPTY' || error.code === 'EISDIR' ||
139
+ (error.code === 'EPERM' && fs.existsSync(workspaceDir))) {
140
+ // Target exists - check if it's valid
141
+ if (this.isWorkspaceValid(workspaceDir, dependencies)) {
142
+ // Another process created a valid workspace - use theirs
143
+ moved = true; // Don't try again
144
+ } else {
145
+ // Invalid workspace exists - try to remove and retry
146
+ try {
147
+ fs.rmSync(workspaceDir, {recursive: true, force: true});
148
+ retries--;
149
+ } catch (removeError) {
150
+ // Another process might be using it, give up
151
+ retries = 0;
152
+ }
153
+ }
154
+ } else if (error.code === 'EXDEV') {
155
+ // Cross-device link - fallback to copy+remove (not atomic, but rare)
156
+ try {
157
+ fs.cpSync(tempWorkspaceDir, workspaceDir, {recursive: true});
158
+ moved = true;
159
+ } catch (copyError) {
160
+ // Check if another process created it while we were copying
161
+ if (this.isWorkspaceValid(workspaceDir, dependencies)) {
162
+ moved = true;
163
+ } else {
164
+ throw error;
165
+ }
166
+ }
167
+ } else {
168
+ // Unexpected error
169
+ throw error;
170
+ }
171
+ }
172
+ }
173
+
174
+ // Clean up temp directory
175
+ try {
176
+ if (fs.existsSync(tempWorkspaceDir)) {
177
+ fs.rmSync(tempWorkspaceDir, {recursive: true, force: true});
178
+ }
179
+ } catch {
180
+ // Ignore cleanup errors
181
+ }
182
+
183
+ // Verify final workspace is valid (might be from another process)
184
+ if (!this.isWorkspaceValid(workspaceDir, dependencies)) {
185
+ throw new Error('Failed to create valid workspace due to concurrent modifications');
186
+ }
187
+
120
188
  // Cache the workspace
121
189
  this.cache.set(hash, workspaceDir);
122
190
 
123
191
  return workspaceDir;
124
192
  } catch (error) {
125
- // Clean up on failure
126
- if (fs.existsSync(workspaceDir)) {
127
- fs.rmSync(workspaceDir, {recursive: true, force: true});
193
+ // Clean up temporary workspace on failure
194
+ try {
195
+ if (fs.existsSync(tempWorkspaceDir)) {
196
+ fs.rmSync(tempWorkspaceDir, {recursive: true, force: true});
197
+ }
198
+ } catch {
199
+ // Ignore cleanup errors
128
200
  }
129
201
  throw new Error(`Failed to create dependency workspace: ${error}`);
130
202
  }
@@ -185,6 +257,8 @@ export class DependencyWorkspace {
185
257
  /**
186
258
  * Cleans up old workspace directories.
187
259
  * Removes workspaces older than the specified age.
260
+ * Also removes all temporary directories (*.tmp-*) regardless of age,
261
+ * as these indicate incomplete/crashed operations.
188
262
  *
189
263
  * @param maxAgeMs Maximum age in milliseconds (default: 24 hours)
190
264
  */
@@ -202,6 +276,18 @@ export class DependencyWorkspace {
202
276
  }
203
277
 
204
278
  const workspaceDir = path.join(this.WORKSPACE_BASE, entry.name);
279
+
280
+ // Always clean up temporary directories (incomplete operations)
281
+ if (entry.name.includes('.tmp-')) {
282
+ try {
283
+ fs.rmSync(workspaceDir, {recursive: true, force: true});
284
+ } catch (error) {
285
+ // Ignore errors, might be in use by another process
286
+ }
287
+ continue;
288
+ }
289
+
290
+ // Clean up old regular workspaces
205
291
  try {
206
292
  const stats = fs.statSync(workspaceDir);
207
293
  const age = now - stats.mtimeMs;
@@ -20,6 +20,9 @@ import {Cursor, isTree, Tree} from '..';
20
20
  import {J, Type} from '../java';
21
21
  import {produce} from "immer";
22
22
  import {JavaScriptComparatorVisitor} from "./comparator";
23
+ import {DependencyWorkspace} from './dependency-workspace';
24
+ import {Marker} from '../markers';
25
+ import {randomId} from '../uuid';
23
26
 
24
27
  /**
25
28
  * Cache for compiled templates and patterns.
@@ -73,7 +76,6 @@ class TemplateCache {
73
76
  // the same dependencies will automatically share the same workspace
74
77
  let workspaceDir: string | undefined;
75
78
  if (dependencies && Object.keys(dependencies).length > 0) {
76
- const {DependencyWorkspace} = await import('./dependency-workspace.js');
77
79
  workspaceDir = await DependencyWorkspace.getOrCreateWorkspace(dependencies);
78
80
  }
79
81
 
@@ -102,6 +104,20 @@ class TemplateCache {
102
104
  // Global cache instance
103
105
  const templateCache = new TemplateCache();
104
106
 
107
+ /**
108
+ * Marker that stores capture metadata on pattern AST nodes.
109
+ * This avoids the need to parse capture names from identifiers during matching.
110
+ */
111
+ class CaptureMarker implements Marker {
112
+ readonly kind = 'org.openrewrite.javascript.CaptureMarker';
113
+ readonly id = randomId();
114
+
115
+ constructor(
116
+ public readonly captureName: string
117
+ ) {
118
+ }
119
+ }
120
+
105
121
  /**
106
122
  * Capture specification for pattern matching.
107
123
  * Represents a placeholder in a template pattern that can capture a part of the AST.
@@ -303,6 +319,7 @@ class JavaScriptTemplateSemanticallyEqualVisitor extends JavaScriptComparatorVis
303
319
  // Check basic structural equality first
304
320
  if (method.name.simpleName !== otherMethod.name.simpleName ||
305
321
  method.arguments.elements.length !== otherMethod.arguments.elements.length) {
322
+ this.abort();
306
323
  return method;
307
324
  }
308
325
 
@@ -397,7 +414,6 @@ class JavaScriptTemplateSemanticallyEqualVisitor extends JavaScriptComparatorVis
397
414
  class Matcher {
398
415
  private readonly bindings = new Map<string, J>();
399
416
  private patternAst?: J;
400
- private templateProcessor?: TemplateProcessor;
401
417
 
402
418
  /**
403
419
  * Creates a new matcher for a pattern against an AST node.
@@ -418,12 +434,13 @@ class Matcher {
418
434
  */
419
435
  async matches(): Promise<boolean> {
420
436
  if (!this.patternAst) {
421
- this.templateProcessor = new TemplateProcessor(
437
+ const templateProcessor = new TemplateProcessor(
422
438
  this.pattern.templateParts,
423
439
  this.pattern.captures,
424
- this.pattern.options.imports || []
440
+ this.pattern.options.imports || [],
441
+ this.pattern.options.dependencies || {}
425
442
  );
426
- this.patternAst = await this.templateProcessor.toAstPattern();
443
+ this.patternAst = await templateProcessor.toAstPattern();
427
444
  }
428
445
 
429
446
  return this.matchNode(this.patternAst, this.ast);
@@ -467,8 +484,7 @@ class Matcher {
467
484
  }
468
485
 
469
486
  private matchesParameter(identifier: J.Identifier, other: J): boolean {
470
- return PlaceholderUtils.isCapture(identifier) &&
471
- matcher.handleCapture(identifier, other);
487
+ return PlaceholderUtils.isCapture(identifier) && matcher.handleCapture(identifier, other);
472
488
  }
473
489
  }).compare(pattern, target));
474
490
  }
@@ -481,15 +497,14 @@ class Matcher {
481
497
  * @returns true if the capture is successful, false otherwise
482
498
  */
483
499
  private handleCapture(pattern: J, target: J): boolean {
484
- const id = pattern as J.Identifier;
485
- const captureInfo = PlaceholderUtils.parseCapture(id.simpleName);
500
+ const captureName = PlaceholderUtils.getCaptureName(pattern);
486
501
 
487
- if (!captureInfo) {
502
+ if (!captureName) {
488
503
  return false;
489
504
  }
490
505
 
491
506
  // Store the binding
492
- this.bindings.set(captureInfo.name, target);
507
+ this.bindings.set(captureName, target);
493
508
  return true;
494
509
  }
495
510
  }
@@ -613,10 +628,18 @@ export class Template {
613
628
  * @returns A Promise resolving to the generated AST node
614
629
  */
615
630
  async apply(cursor: Cursor, tree: J, values?: Pick<Map<string, J>, 'get'>): Promise<J | undefined> {
616
- return TemplateEngine.applyTemplate(this.templateParts, this.parameters, cursor, {
617
- tree,
618
- mode: JavaCoordinates.Mode.Replace
619
- }, values, this.options.imports || []);
631
+ return TemplateEngine.applyTemplate(
632
+ this.templateParts,
633
+ this.parameters,
634
+ cursor,
635
+ {
636
+ tree,
637
+ mode: JavaCoordinates.Mode.Replace
638
+ },
639
+ values,
640
+ this.options.imports || [],
641
+ this.options.dependencies || {}
642
+ );
620
643
  }
621
644
  }
622
645
 
@@ -655,6 +678,7 @@ class TemplateEngine {
655
678
  * @param coordinates The coordinates specifying where and how to insert the generated AST
656
679
  * @param values Map of capture names to values to replace the parameters with
657
680
  * @param imports Import statements to prepend for type attribution
681
+ * @param dependencies NPM dependencies for type attribution
658
682
  * @returns A Promise resolving to the generated AST node
659
683
  */
660
684
  static async applyTemplate(
@@ -663,7 +687,8 @@ class TemplateEngine {
663
687
  cursor: Cursor,
664
688
  coordinates: JavaCoordinates,
665
689
  values: Pick<Map<string, J>, 'get'> = new Map(),
666
- imports: string[] = []
690
+ imports: string[] = [],
691
+ dependencies: Record<string, string> = {}
667
692
  ): Promise<J | undefined> {
668
693
  // Build the template string with parameter placeholders
669
694
  const templateString = TemplateEngine.buildTemplateString(templateParts, parameters);
@@ -679,7 +704,7 @@ class TemplateEngine {
679
704
  templateString,
680
705
  [], // templates don't have captures in the cache key
681
706
  imports,
682
- {} // dependencies not used yet
707
+ dependencies
683
708
  );
684
709
 
685
710
  // Check if there are any statements
@@ -762,13 +787,32 @@ class PlaceholderUtils {
762
787
  * @returns true if the node is a capture placeholder, false otherwise
763
788
  */
764
789
  static isCapture(node: J): boolean {
765
- if (node.kind === J.Kind.Identifier) {
766
- const id = node as J.Identifier;
767
- return id.simpleName.startsWith(this.CAPTURE_PREFIX);
790
+ // Check for CaptureMarker first (efficient)
791
+ for (const marker of node.markers.markers) {
792
+ if (marker instanceof CaptureMarker) {
793
+ return true;
794
+ }
768
795
  }
769
796
  return false;
770
797
  }
771
798
 
799
+ /**
800
+ * Gets the capture name from a node with a CaptureMarker.
801
+ *
802
+ * @param node The node to extract capture name from
803
+ * @returns The capture name, or null if not a capture
804
+ */
805
+ static getCaptureName(node: J): string | undefined {
806
+ // Check for CaptureMarker
807
+ for (const marker of node.markers.markers) {
808
+ if (marker instanceof CaptureMarker) {
809
+ return marker.captureName;
810
+ }
811
+ }
812
+
813
+ return undefined;
814
+ }
815
+
772
816
  /**
773
817
  * Parses a capture placeholder to extract name and type constraint.
774
818
  *
@@ -1000,11 +1044,13 @@ class TemplateProcessor {
1000
1044
  * @param templateParts The string parts of the template
1001
1045
  * @param captures The captures between the string parts
1002
1046
  * @param imports Import statements to prepend for type attribution
1047
+ * @param dependencies NPM dependencies for type attribution
1003
1048
  */
1004
1049
  constructor(
1005
1050
  private readonly templateParts: TemplateStringsArray,
1006
1051
  private readonly captures: Capture[],
1007
- private readonly imports: string[] = []
1052
+ private readonly imports: string[] = [],
1053
+ private readonly dependencies: Record<string, string> = {}
1008
1054
  ) {
1009
1055
  }
1010
1056
 
@@ -1022,7 +1068,7 @@ class TemplateProcessor {
1022
1068
  templateString,
1023
1069
  this.captures,
1024
1070
  this.imports,
1025
- {} // dependencies not used in pattern matching yet
1071
+ this.dependencies
1026
1072
  );
1027
1073
 
1028
1074
  // Extract the relevant part of the AST
@@ -1068,8 +1114,66 @@ class TemplateProcessor {
1068
1114
  extracted = firstStatement;
1069
1115
  }
1070
1116
 
1071
- // Return a copy to avoid sharing cached AST instances
1072
- return produce(extracted, draft => {});
1117
+ // Attach CaptureMarkers to capture identifiers
1118
+ return this.attachCaptureMarkers(extracted);
1119
+ }
1120
+
1121
+ /**
1122
+ * Attaches CaptureMarkers to capture identifiers in the AST.
1123
+ * This allows efficient capture detection without string parsing.
1124
+ *
1125
+ * @param ast The AST to process
1126
+ * @returns The AST with CaptureMarkers attached
1127
+ */
1128
+ private attachCaptureMarkers(ast: J): J {
1129
+ const visited = new Set<any>();
1130
+ return produce(ast, draft => {
1131
+ this.visitAndAttachMarkers(draft, visited);
1132
+ });
1133
+ }
1134
+
1135
+ /**
1136
+ * Recursively visits AST nodes and attaches CaptureMarkers to capture identifiers.
1137
+ *
1138
+ * @param node The node to visit
1139
+ * @param visited Set of already visited nodes to avoid cycles
1140
+ */
1141
+ private visitAndAttachMarkers(node: any, visited: Set<any>): void {
1142
+ if (!node || typeof node !== 'object' || visited.has(node)) {
1143
+ return;
1144
+ }
1145
+
1146
+ // Mark as visited to avoid cycles
1147
+ visited.add(node);
1148
+
1149
+ // If this is an identifier that looks like a capture, attach a marker
1150
+ if (node.kind === J.Kind.Identifier && node.simpleName?.startsWith(PlaceholderUtils.CAPTURE_PREFIX)) {
1151
+ const captureInfo = PlaceholderUtils.parseCapture(node.simpleName);
1152
+ if (captureInfo) {
1153
+ // Initialize markers if needed
1154
+ if (!node.markers) {
1155
+ node.markers = { kind: 'org.openrewrite.marker.Markers', id: randomId(), markers: [] };
1156
+ }
1157
+ if (!node.markers.markers) {
1158
+ node.markers.markers = [];
1159
+ }
1160
+
1161
+ // Add CaptureMarker
1162
+ node.markers.markers.push(new CaptureMarker(captureInfo.name));
1163
+ }
1164
+ }
1165
+
1166
+ // Recursively visit all properties
1167
+ for (const key in node) {
1168
+ if (node.hasOwnProperty(key)) {
1169
+ const value = node[key];
1170
+ if (Array.isArray(value)) {
1171
+ value.forEach(item => this.visitAndAttachMarkers(item, visited));
1172
+ } else if (typeof value === 'object' && value !== null) {
1173
+ this.visitAndAttachMarkers(value, visited);
1174
+ }
1175
+ }
1176
+ }
1073
1177
  }
1074
1178
  }
1075
1179
 
@@ -1110,7 +1214,6 @@ class RewriteRuleImpl implements RewriteRule {
1110
1214
  async tryOn(cursor: Cursor, node: J): Promise<J | undefined> {
1111
1215
  for (const pattern of this.before) {
1112
1216
  const match = await pattern.match(node);
1113
-
1114
1217
  if (match) {
1115
1218
  const result = await this.after.apply(cursor, node, match);
1116
1219
  if (result) {