@openrewrite/rewrite 8.81.4 → 8.81.6
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/rewrite-javascript-version.txt +1 -0
- package/dist/rpc/request/batch-visit.d.ts.map +1 -1
- package/dist/rpc/request/batch-visit.js +11 -1
- package/dist/rpc/request/batch-visit.js.map +1 -1
- package/dist/rpc/server.js +28 -0
- package/dist/rpc/server.js.map +1 -1
- package/package.json +2 -1
- package/src/rpc/request/batch-visit.ts +14 -1
- package/src/rpc/server.ts +29 -0
- package/src/java/s.js~ +0 -48
- package/src/javascript/s.js~ +0 -48
- package/src/javascript/s2.js~ +0 -68
|
@@ -0,0 +1 @@
|
|
|
1
|
+
8.81.6
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"batch-visit.d.ts","sourceRoot":"","sources":["../../../src/rpc/request/batch-visit.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAC3C,OAAO,EAAC,MAAM,EAAC,MAAM,cAAc,CAAC;AACpC,OAAO,EAAC,MAAM,EAAO,MAAM,YAAY,CAAC;AAMxC,MAAM,WAAW,cAAc;IAC3B,OAAO,EAAE,MAAM,CAAA;IACf,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CACpC;AAED,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,EAAE,OAAO,CAAA;IACjB,OAAO,EAAE,OAAO,CAAA;IAChB,cAAc,EAAE,OAAO,CAAA;IACvB,eAAe,EAAE,MAAM,EAAE,CAAA;CAC5B;AAED,MAAM,WAAW,kBAAkB;IAC/B,OAAO,EAAE,gBAAgB,EAAE,CAAA;CAC9B;AAED,MAAM,WAAW,iBAAiB;IAC9B,cAAc,EAAE,MAAM,CAAA;IACtB,MAAM,EAAE,MAAM,CAAA;IACd,CAAC,EAAE,MAAM,CAAA;IACT,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,QAAQ,EAAE,cAAc,EAAE,CAAA;CAC7B;AAiBD,qBAAa,UAAU;IACnB,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC,iBAAiB,EACjC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,EAC9B,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,aAAa,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,EACtC,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,KAAK,GAAG,EACvD,SAAS,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,cAAc,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,EACxF,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"batch-visit.d.ts","sourceRoot":"","sources":["../../../src/rpc/request/batch-visit.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAC3C,OAAO,EAAC,MAAM,EAAC,MAAM,cAAc,CAAC;AACpC,OAAO,EAAC,MAAM,EAAO,MAAM,YAAY,CAAC;AAMxC,MAAM,WAAW,cAAc;IAC3B,OAAO,EAAE,MAAM,CAAA;IACf,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CACpC;AAED,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,EAAE,OAAO,CAAA;IACjB,OAAO,EAAE,OAAO,CAAA;IAChB,cAAc,EAAE,OAAO,CAAA;IACvB,eAAe,EAAE,MAAM,EAAE,CAAA;CAC5B;AAED,MAAM,WAAW,kBAAkB;IAC/B,OAAO,EAAE,gBAAgB,EAAE,CAAA;CAC9B;AAED,MAAM,WAAW,iBAAiB;IAC9B,cAAc,EAAE,MAAM,CAAA;IACtB,MAAM,EAAE,MAAM,CAAA;IACd,CAAC,EAAE,MAAM,CAAA;IACT,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,QAAQ,EAAE,cAAc,EAAE,CAAA;CAC7B;AAiBD,qBAAa,UAAU;IACnB,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC,iBAAiB,EACjC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,EAC9B,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,aAAa,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,EACtC,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,KAAK,GAAG,EACvD,SAAS,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,cAAc,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,EACxF,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI;CAwE3C"}
|
|
@@ -79,9 +79,19 @@ class BatchVisit {
|
|
|
79
79
|
for (const item of request.visitors) {
|
|
80
80
|
// Instantiate and run visitor
|
|
81
81
|
const visitor = await visit_1.Visit.instantiateVisitor({ visitor: item.visitor, visitorOptions: item.visitorOptions }, preparedRecipes, recipeCursors, p);
|
|
82
|
+
// Snapshot ctx message keys so we can flag whether
|
|
83
|
+
// the visitor put anything new into the context.
|
|
84
|
+
const preKeys = new Set(Reflect.ownKeys(p.messages));
|
|
82
85
|
const after = await visitor.visit(tree, p, cursor);
|
|
83
86
|
const modified = after !== tree;
|
|
84
87
|
const deleted = after == null;
|
|
88
|
+
let hasNewMessages = false;
|
|
89
|
+
for (const k of Reflect.ownKeys(p.messages)) {
|
|
90
|
+
if (!preKeys.has(k)) {
|
|
91
|
+
hasNewMessages = true;
|
|
92
|
+
break;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
85
95
|
// Diff SearchResult IDs against the running set
|
|
86
96
|
let searchResultIds;
|
|
87
97
|
if (deleted) {
|
|
@@ -93,7 +103,7 @@ class BatchVisit {
|
|
|
93
103
|
for (const id of searchResultIds)
|
|
94
104
|
knownIds.add(id);
|
|
95
105
|
}
|
|
96
|
-
results.push({ modified, deleted, hasNewMessages
|
|
106
|
+
results.push({ modified, deleted, hasNewMessages, searchResultIds });
|
|
97
107
|
if (deleted) {
|
|
98
108
|
localObjects.delete(request.treeId);
|
|
99
109
|
break;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"batch-visit.js","sourceRoot":"","sources":["../../../src/rpc/request/batch-visit.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"batch-visit.js","sourceRoot":"","sources":["../../../src/rpc/request/batch-visit.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;GAcG;AACH,yDAA2C;AAG3C,2CAA0C;AAC1C,2CAAwD;AACxD,mCAA8B;AAC9B,uCAAsC;AA0BtC,KAAK,UAAU,sBAAsB,CAAC,IAA6B;IAC/D,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,IAAI,CAAC,IAAI;QAAE,OAAO,GAAG,CAAC;IAEtB,MAAM,IAAI,KAAM,SAAQ,qBAA6B;QACvC,KAAK,CAAC,WAAW,CAAC,MAAW,EAAE,GAAgB;YACrD,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,qBAAW,CAAC,YAAY,EAAE,CAAC;gBACrD,GAAG,CAAC,GAAG,CAAE,MAAuB,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;YACpD,CAAC;YACD,OAAO,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC1C,CAAC;KACJ,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACrB,OAAO,GAAG,CAAC;AACf,CAAC;AAED,MAAa,UAAU;IACnB,MAAM,CAAC,MAAM,CAAC,UAAiC,EACjC,YAA8B,EAC9B,eAAoC,EACpC,aAAsC,EACtC,SAAuD,EACvD,SAAwF,EACxF,UAAmB;QAC7B,UAAU,CAAC,SAAS,CAChB,IAAI,GAAG,CAAC,WAAW,CAA+C,YAAY,CAAC,EAC/E,IAAA,qBAAW,EACP,YAAY,EACZ,UAAU,EACV,CAAC,QAAQ,EAAE,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YAC5B,MAAM,CAAC,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;YAChD,IAAI,IAAI,GAAS,MAAM,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;YACzE,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;YAEvE,MAAM,OAAO,GAAuB,EAAE,CAAC;YACvC,MAAM,QAAQ,GAAG,MAAM,sBAAsB,CAAC,IAAI,CAAC,CAAC;YAEpD,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;gBAClC,8BAA8B;gBAC9B,MAAM,OAAO,GAAG,MAAM,aAAK,CAAC,kBAAkB,CAC1C,EAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAC,EAC5D,eAAe,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;gBACvC,mDAAmD;gBACnD,iDAAiD;gBACjD,MAAM,OAAO,GAAG,IAAI,GAAG,CACnB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAwB,CACrD,CAAC;gBACF,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;gBAEnD,MAAM,QAAQ,GAAG,KAAK,KAAK,IAAI,CAAC;gBAChC,MAAM,OAAO,GAAG,KAAK,IAAI,IAAI,CAAC;gBAE9B,IAAI,cAAc,GAAG,KAAK,CAAC;gBAC3B,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC1C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;wBAClB,cAAc,GAAG,IAAI,CAAC;wBACtB,MAAM;oBACV,CAAC;gBACL,CAAC;gBAED,gDAAgD;gBAChD,IAAI,eAAyB,CAAC;gBAC9B,IAAI,OAAO,EAAE,CAAC;oBACV,eAAe,GAAG,EAAE,CAAC;gBACzB,CAAC;qBAAM,CAAC;oBACJ,MAAM,QAAQ,GAAG,MAAM,sBAAsB,CAAC,KAAK,CAAC,CAAC;oBACrD,eAAe,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;oBAChE,KAAK,MAAM,EAAE,IAAI,eAAe;wBAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACvD,CAAC;gBAED,OAAO,CAAC,IAAI,CAAC,EAAC,QAAQ,EAAE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAC,CAAC,CAAC;gBAEnE,IAAI,OAAO,EAAE,CAAC;oBACV,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;oBACpC,MAAM;gBACV,CAAC;gBAED,IAAI,QAAQ,EAAE,CAAC;oBACX,IAAI,GAAG,KAAK,CAAC;gBACjB,CAAC;YACL,CAAC;YAED,mCAAmC;YACnC,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;gBACf,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,CAAC;gBAC3C,IAAI,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC;oBACxC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBAC3C,CAAC;YACL,CAAC;YAED,OAAO,EAAC,OAAO,EAAC,CAAC;QACrB,CAAC,CACJ,CACJ,CAAC;IACN,CAAC;CACJ;AA/ED,gCA+EC"}
|
package/dist/rpc/server.js
CHANGED
|
@@ -63,6 +63,33 @@ require("../java");
|
|
|
63
63
|
require("../javascript");
|
|
64
64
|
// Not possible to set the stack size when executing from npx for security reasons
|
|
65
65
|
require('v8').setFlagsFromString('--stack-size=8000');
|
|
66
|
+
function initPyroscope(logger) {
|
|
67
|
+
const server = process.env.PYROSCOPE_SERVER_ADDRESS;
|
|
68
|
+
if (!server) {
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
let Pyroscope;
|
|
72
|
+
try {
|
|
73
|
+
Pyroscope = require('@pyroscope/nodejs');
|
|
74
|
+
}
|
|
75
|
+
catch (_a) {
|
|
76
|
+
logger.warn('PYROSCOPE_SERVER_ADDRESS set but @pyroscope/nodejs not installed; profiling disabled');
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
const tags = { runtime: 'node' };
|
|
80
|
+
for (const pair of (process.env.PYROSCOPE_TAGS || '').split(',')) {
|
|
81
|
+
const eq = pair.indexOf('=');
|
|
82
|
+
if (eq > 0) {
|
|
83
|
+
tags[pair.slice(0, eq).trim()] = pair.slice(eq + 1).trim();
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
Pyroscope.init({
|
|
87
|
+
appName: process.env.PYROSCOPE_APPLICATION_NAME || 'modcli',
|
|
88
|
+
serverAddress: server,
|
|
89
|
+
tags,
|
|
90
|
+
});
|
|
91
|
+
Pyroscope.start();
|
|
92
|
+
}
|
|
66
93
|
async function main() {
|
|
67
94
|
const program = new commander_1.Command();
|
|
68
95
|
program
|
|
@@ -113,6 +140,7 @@ async function main() {
|
|
|
113
140
|
// because the Tracer type has a log method on it that matches this signature.
|
|
114
141
|
log: (msg) => log && options.traceRpcMessages && log.write(`[js trace] ${msg}\n`)
|
|
115
142
|
};
|
|
143
|
+
initPyroscope(logger);
|
|
116
144
|
// Create the connection with the custom logger
|
|
117
145
|
const connection = rpc.createMessageConnection(new rpc.StreamMessageReader(process.stdin), new rpc.StreamMessageWriter(process.stdout), logger);
|
|
118
146
|
if (options.traceRpcMessages) {
|
package/dist/rpc/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/rpc/server.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;;;;;;;;;;;;;;GAcG;AACH,yDAA2C;AAC3C,+CAAyC;AACzC,uCAAyB;AACzB,yCAAkC;AAClC,6CAAgC;AAChC,6EAAuE;AAEvE,yDAAyD;AACzD,mBAAiB;AACjB,mBAAiB;AACjB,mBAAiB;AACjB,mBAAiB;AACjB,yBAAuB;AAEvB,kFAAkF;AAClF,OAAO,CAAC,IAAI,CAAC,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/rpc/server.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openrewrite/rewrite",
|
|
3
|
-
"version": "8.81.
|
|
3
|
+
"version": "8.81.6",
|
|
4
4
|
"license": "Moderne Source Available License",
|
|
5
5
|
"description": "OpenRewrite JavaScript.",
|
|
6
6
|
"repository": {
|
|
@@ -86,6 +86,7 @@
|
|
|
86
86
|
"vitest": "^4.0.18"
|
|
87
87
|
},
|
|
88
88
|
"optionalDependencies": {
|
|
89
|
+
"@pyroscope/nodejs": "^0.4.0",
|
|
89
90
|
"prettier": "^3.7.4"
|
|
90
91
|
},
|
|
91
92
|
"bin": {
|
|
@@ -86,11 +86,24 @@ export class BatchVisit {
|
|
|
86
86
|
const visitor = await Visit.instantiateVisitor(
|
|
87
87
|
{visitor: item.visitor, visitorOptions: item.visitorOptions},
|
|
88
88
|
preparedRecipes, recipeCursors, p);
|
|
89
|
+
// Snapshot ctx message keys so we can flag whether
|
|
90
|
+
// the visitor put anything new into the context.
|
|
91
|
+
const preKeys = new Set<string | symbol>(
|
|
92
|
+
Reflect.ownKeys(p.messages) as (string | symbol)[]
|
|
93
|
+
);
|
|
89
94
|
const after = await visitor.visit(tree, p, cursor);
|
|
90
95
|
|
|
91
96
|
const modified = after !== tree;
|
|
92
97
|
const deleted = after == null;
|
|
93
98
|
|
|
99
|
+
let hasNewMessages = false;
|
|
100
|
+
for (const k of Reflect.ownKeys(p.messages)) {
|
|
101
|
+
if (!preKeys.has(k)) {
|
|
102
|
+
hasNewMessages = true;
|
|
103
|
+
break;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
|
|
94
107
|
// Diff SearchResult IDs against the running set
|
|
95
108
|
let searchResultIds: string[];
|
|
96
109
|
if (deleted) {
|
|
@@ -101,7 +114,7 @@ export class BatchVisit {
|
|
|
101
114
|
for (const id of searchResultIds) knownIds.add(id);
|
|
102
115
|
}
|
|
103
116
|
|
|
104
|
-
results.push({modified, deleted, hasNewMessages
|
|
117
|
+
results.push({modified, deleted, hasNewMessages, searchResultIds});
|
|
105
118
|
|
|
106
119
|
if (deleted) {
|
|
107
120
|
localObjects.delete(request.treeId);
|
package/src/rpc/server.ts
CHANGED
|
@@ -31,6 +31,33 @@ import "../javascript";
|
|
|
31
31
|
// Not possible to set the stack size when executing from npx for security reasons
|
|
32
32
|
require('v8').setFlagsFromString('--stack-size=8000');
|
|
33
33
|
|
|
34
|
+
function initPyroscope(logger: rpc.Logger): void {
|
|
35
|
+
const server = process.env.PYROSCOPE_SERVER_ADDRESS;
|
|
36
|
+
if (!server) {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
let Pyroscope: any;
|
|
40
|
+
try {
|
|
41
|
+
Pyroscope = require('@pyroscope/nodejs');
|
|
42
|
+
} catch {
|
|
43
|
+
logger.warn('PYROSCOPE_SERVER_ADDRESS set but @pyroscope/nodejs not installed; profiling disabled');
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
const tags: Record<string, string> = {runtime: 'node'};
|
|
47
|
+
for (const pair of (process.env.PYROSCOPE_TAGS || '').split(',')) {
|
|
48
|
+
const eq = pair.indexOf('=');
|
|
49
|
+
if (eq > 0) {
|
|
50
|
+
tags[pair.slice(0, eq).trim()] = pair.slice(eq + 1).trim();
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
Pyroscope.init({
|
|
54
|
+
appName: process.env.PYROSCOPE_APPLICATION_NAME || 'modcli',
|
|
55
|
+
serverAddress: server,
|
|
56
|
+
tags,
|
|
57
|
+
});
|
|
58
|
+
Pyroscope.start();
|
|
59
|
+
}
|
|
60
|
+
|
|
34
61
|
interface ProgramOptions {
|
|
35
62
|
logFile?: string;
|
|
36
63
|
metricsCsv?: string;
|
|
@@ -97,6 +124,8 @@ async function main() {
|
|
|
97
124
|
log: (msg: string) => log && options.traceRpcMessages && log.write(`[js trace] ${msg}\n`)
|
|
98
125
|
};
|
|
99
126
|
|
|
127
|
+
initPyroscope(logger);
|
|
128
|
+
|
|
100
129
|
// Create the connection with the custom logger
|
|
101
130
|
const connection = rpc.createMessageConnection(
|
|
102
131
|
new rpc.StreamMessageReader(process.stdin),
|
package/src/java/s.js~
DELETED
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
const fs = require("fs");
|
|
2
|
-
const path = require("path");
|
|
3
|
-
|
|
4
|
-
const VISITOR_FILE = path.join(__dirname, "visitor.ts");
|
|
5
|
-
|
|
6
|
-
function addMiddleArgToVisitContainer(content) {
|
|
7
|
-
const lines = content.split("\n");
|
|
8
|
-
const updatedLines = [];
|
|
9
|
-
|
|
10
|
-
let currentMethod = null;
|
|
11
|
-
|
|
12
|
-
for (let i = 0; i < lines.length; i++) {
|
|
13
|
-
let line = lines[i];
|
|
14
|
-
|
|
15
|
-
const methodMatch = line.match(/^\s*(?:public\s+|private\s+|protected\s+)?(?:async\s+)?(\w+)\s*\(.*\)\s*{/);
|
|
16
|
-
if (methodMatch) {
|
|
17
|
-
currentMethod = methodMatch[1];
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
const callMatch = line.match(/(\bvisitContainer\s*\()\s*([^,]+)\s*,\s*([^)\n]+)\)/);
|
|
21
|
-
if (callMatch) {
|
|
22
|
-
// Derive context from variable name or some keyword around
|
|
23
|
-
const arg1 = callMatch[2].trim();
|
|
24
|
-
let context = "UNKNOWN";
|
|
25
|
-
if (/case/i.test(line)) context = "CASE_LABEL";
|
|
26
|
-
else if (/block/i.test(arg1)) context = "BLOCK";
|
|
27
|
-
else if (/param/i.test(arg1)) context = "PARAM";
|
|
28
|
-
else if (/arg/i.test(arg1)) context = "ARGUMENT";
|
|
29
|
-
else context = arg1.toUpperCase().replace(/[^A-Z0-9]+/g, "_").replace(/^_+|_+$/g, "");
|
|
30
|
-
|
|
31
|
-
const locationString = `"${currentMethod ? currentMethod.toUpperCase() + "_" + context : context}"`;
|
|
32
|
-
line = line.replace(callMatch[0], `${callMatch[1]}${callMatch[2]}, ${locationString}, ${callMatch[3]})`);
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
updatedLines.push(line);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
return updatedLines.join("\n");
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
function main() {
|
|
42
|
-
const original = fs.readFileSync(VISITOR_FILE, "utf8");
|
|
43
|
-
const updated = addMiddleArgToVisitContainer(original);
|
|
44
|
-
fs.writeFileSync(VISITOR_FILE, updated, "utf8");
|
|
45
|
-
console.log("✅ visitContainer calls amended.");
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
main();
|
package/src/javascript/s.js~
DELETED
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
const fs = require("fs");
|
|
2
|
-
const path = require("path");
|
|
3
|
-
|
|
4
|
-
const VISITOR_FILE = path.join(__dirname, "visitor.ts");
|
|
5
|
-
|
|
6
|
-
function addMiddleArgToVisitContainer(content) {
|
|
7
|
-
const lines = content.split("\n");
|
|
8
|
-
const updatedLines = [];
|
|
9
|
-
|
|
10
|
-
let currentMethod = null;
|
|
11
|
-
|
|
12
|
-
for (let i = 0; i < lines.length; i++) {
|
|
13
|
-
let line = lines[i];
|
|
14
|
-
|
|
15
|
-
const methodMatch = line.match(/^\s*(?:public\s+|private\s+|protected\s+)?(?:async\s+)?(\w+)\s*\(.*\)\s*{/);
|
|
16
|
-
if (methodMatch) {
|
|
17
|
-
currentMethod = methodMatch[1];
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
const callMatch = line.match(/(\bvisitContainer\s*\()\s*([^,]+)\s*,\s*([^)\n]+)\)/);
|
|
21
|
-
if (callMatch) {
|
|
22
|
-
// Derive context from variable name or some keyword around
|
|
23
|
-
const arg1 = callMatch[2].trim();
|
|
24
|
-
let context = "UNKNOWN";
|
|
25
|
-
if (/case/i.test(line)) context = "CASE_LABEL";
|
|
26
|
-
else if (/block/i.test(arg1)) context = "BLOCK";
|
|
27
|
-
else if (/param/i.test(arg1)) context = "PARAM";
|
|
28
|
-
else if (/arg/i.test(arg1)) context = "ARGUMENT";
|
|
29
|
-
else context = arg1.toUpperCase().replace(/[^A-Z0-9]+/g, "_").replace(/^_+|_+$/g, "");
|
|
30
|
-
|
|
31
|
-
const locationString = `"${currentMethod ? currentMethod.toUpperCase() + "_" + context : context}"`;
|
|
32
|
-
line = line.replace(callMatch[0], `${callMatch[1]}${callMatch[2]}, ${locationString}, ${callMatch[3]})`);
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
updatedLines.push(line);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
return updatedLines.join("\n");
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
function main() {
|
|
42
|
-
const original = fs.readFileSync(VISITOR_FILE, "utf8");
|
|
43
|
-
const updated = addMiddleArgToVisitContainer(original);
|
|
44
|
-
fs.writeFileSync(VISITOR_FILE, updated, "utf8");
|
|
45
|
-
console.log("✅ visitContainer calls amended.");
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
main();
|
package/src/javascript/s2.js~
DELETED
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
const fs = require("fs");
|
|
2
|
-
const path = require("path");
|
|
3
|
-
|
|
4
|
-
const VISITOR_FILE = path.join(__dirname, "visitor.ts");
|
|
5
|
-
|
|
6
|
-
function toUpperUnderscore(name) {
|
|
7
|
-
return name
|
|
8
|
-
.replace(/([a-z])([A-Z])/g, "$1_$2")
|
|
9
|
-
.replace(/[\W]+/g, "_")
|
|
10
|
-
.replace(/^_+|_+$/g, "")
|
|
11
|
-
.toUpperCase();
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
function extractPropertyFromLine(line) {
|
|
15
|
-
// Case 1: match property from lambda: el => el.property
|
|
16
|
-
let match = line.match(/el\s*=>\s*el\.([a-zA-Z0-9_]+)/);
|
|
17
|
-
if (match) return match[1];
|
|
18
|
-
|
|
19
|
-
// Case 2: match assignment target like: draft.valueType = await ...
|
|
20
|
-
match = line.match(/\b([a-zA-Z0-9_]+)\.([a-zA-Z0-9_]+)\s*=.*\s*await\b/);
|
|
21
|
-
if (match) return match[2];
|
|
22
|
-
|
|
23
|
-
return "UNKNOWN";
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
function addMiddleArgToVisitContainer(content) {
|
|
27
|
-
const lines = content.split("\n");
|
|
28
|
-
const updatedLines = [];
|
|
29
|
-
|
|
30
|
-
let currentMethod = null;
|
|
31
|
-
|
|
32
|
-
for (let i = 0; i < lines.length; i++) {
|
|
33
|
-
let line = lines[i];
|
|
34
|
-
|
|
35
|
-
const methodMatch = line.match(/^ +(?:public|protected|private)?\s*(?:override\s+)?(?:async\s+)?(visit[A-Z][A-Za-z0-9_]*)\s*\(/);
|
|
36
|
-
if (methodMatch) {
|
|
37
|
-
const fullMethod = methodMatch[1]; // e.g. visitExpressionWithTypeArguments
|
|
38
|
-
// Strip the "visit" prefix and convert to UPPER_UNDERSCORE
|
|
39
|
-
currentMethod = fullMethod.startsWith("visit") ? fullMethod.slice(5) : fullMethod;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
const visitCallMatch = line.match(/(\bvisitContainer\s*\()\s*([^,]+)\s*,\s*([^)\n]+)\)/);
|
|
43
|
-
if (visitCallMatch) {
|
|
44
|
-
const objectArg = visitCallMatch[2].trim();
|
|
45
|
-
const restArg = visitCallMatch[3].trim();
|
|
46
|
-
|
|
47
|
-
const property = extractPropertyFromLine(line);
|
|
48
|
-
const method = currentMethod || "UNKNOWN";
|
|
49
|
-
|
|
50
|
-
const locationValue = `"${toUpperUnderscore(method)}_${toUpperUnderscore(property)}"`;
|
|
51
|
-
|
|
52
|
-
line = line.replace(visitCallMatch[0], `${visitCallMatch[1]}${objectArg}, ${locationValue}, ${restArg})`);
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
updatedLines.push(line);
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
return updatedLines.join("\n");
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
function main() {
|
|
62
|
-
const original = fs.readFileSync(VISITOR_FILE, "utf8");
|
|
63
|
-
const updated = addMiddleArgToVisitContainer(original);
|
|
64
|
-
fs.writeFileSync(VISITOR_FILE, updated, "utf8");
|
|
65
|
-
console.log("✅ visitContainer calls amended with location strings.");
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
main();
|