@openrewrite/rewrite 8.86.1 → 8.86.3
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/rpc/message-encoder.d.ts +27 -0
- package/dist/rpc/message-encoder.d.ts.map +1 -0
- package/dist/rpc/message-encoder.js +97 -0
- package/dist/rpc/message-encoder.js.map +1 -0
- package/dist/rpc/request/install-recipes.d.ts.map +1 -1
- package/dist/rpc/request/install-recipes.js +6 -10
- package/dist/rpc/request/install-recipes.js.map +1 -1
- package/dist/rpc/server.d.ts.map +1 -1
- package/dist/rpc/server.js +6 -1
- package/dist/rpc/server.js.map +1 -1
- package/package.json +5 -1
- package/src/java/s.js~ +48 -0
- package/src/javascript/s.js~ +48 -0
- package/src/javascript/s2.js~ +68 -0
- package/src/rpc/message-encoder.ts +121 -0
- package/src/rpc/request/install-recipes.ts +6 -10
- package/src/rpc/server.ts +5 -1
- package/dist/rewrite-javascript-version.txt +0 -1
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { MessageWriterOptions } from "vscode-jsonrpc/node";
|
|
2
|
+
/**
|
|
3
|
+
* The content-type encoder shape vscode-jsonrpc's {@link MessageWriterOptions} accepts. Derived
|
|
4
|
+
* from the writer options rather than deep-imported, because the concrete `ContentTypeEncoder`
|
|
5
|
+
* type is not re-exported from the package entrypoint.
|
|
6
|
+
*/
|
|
7
|
+
export type JsonRpcContentTypeEncoder = NonNullable<MessageWriterOptions["contentTypeEncoder"]>;
|
|
8
|
+
/**
|
|
9
|
+
* Yields a value as the sequence of JSON text fragments that concatenate to exactly
|
|
10
|
+
* {@code JSON.stringify(value)}, without ever building the whole document as one string. Every
|
|
11
|
+
* scalar and every object key is serialized by the engine's {@code JSON.stringify} — so escaping,
|
|
12
|
+
* number formatting, {@code undefined}/function/symbol handling, and {@code toJSON} all match it
|
|
13
|
+
* exactly — and only the structural punctuation is emitted here.
|
|
14
|
+
*/
|
|
15
|
+
export declare function jsonFragments(value: unknown): Generator<string>;
|
|
16
|
+
/**
|
|
17
|
+
* A drop-in replacement for vscode-jsonrpc's default `application/json` content-type encoder that
|
|
18
|
+
* serializes a message to UTF-8 bytes without ever materializing the whole document as a single JS
|
|
19
|
+
* string. The default encoder does {@code Buffer.from(JSON.stringify(msg))}; a large enough
|
|
20
|
+
* PrepareRecipe response (a deep recipe tree) overflows V8's single-string limit and throws
|
|
21
|
+
* "Cannot create a string longer than 0x1fffffe8 characters", hanging the RPC call. Streaming the
|
|
22
|
+
* fragments into a Buffer raises the ceiling to Node's Buffer.MAX_LENGTH (multiple GB) while
|
|
23
|
+
* producing byte-identical output. (True unbounded streaming needs chunked framing — Content-Length
|
|
24
|
+
* still requires the whole body up front — so this is a ceiling raise, not a removal.)
|
|
25
|
+
*/
|
|
26
|
+
export declare const chunkedJsonEncoder: JsonRpcContentTypeEncoder;
|
|
27
|
+
//# sourceMappingURL=message-encoder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message-encoder.d.ts","sourceRoot":"","sources":["../../src/rpc/message-encoder.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAU,oBAAoB,EAAC,MAAM,qBAAqB,CAAC;AAEvE;;;;GAIG;AACH,MAAM,MAAM,yBAAyB,GAAG,WAAW,CAAC,oBAAoB,CAAC,oBAAoB,CAAC,CAAC,CAAC;AAgBhG;;;;;;GAMG;AACH,wBAAiB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CA8ChE;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,kBAAkB,EAAE,yBAiBhC,CAAC"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.chunkedJsonEncoder = void 0;
|
|
4
|
+
exports.jsonFragments = jsonFragments;
|
|
5
|
+
// Flush the accumulated JSON text to a Buffer once it reaches this many UTF-16 code units. This
|
|
6
|
+
// keeps the transient string far below V8's ~512 MB String.kMaxLength while bounding how many
|
|
7
|
+
// intermediate Buffers we concatenate. A single scalar/key fragment is never split, so the pending
|
|
8
|
+
// string only ever exceeds the threshold by one whole fragment.
|
|
9
|
+
const FLUSH_THRESHOLD = 1 << 20; // 1 MiB
|
|
10
|
+
/**
|
|
11
|
+
* True for values that {@code JSON.stringify} drops: an object property with such a value is
|
|
12
|
+
* omitted, and such an array element serializes as {@code null}.
|
|
13
|
+
*/
|
|
14
|
+
function isJsonIgnored(value) {
|
|
15
|
+
return value === undefined || typeof value === "function" || typeof value === "symbol";
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Yields a value as the sequence of JSON text fragments that concatenate to exactly
|
|
19
|
+
* {@code JSON.stringify(value)}, without ever building the whole document as one string. Every
|
|
20
|
+
* scalar and every object key is serialized by the engine's {@code JSON.stringify} — so escaping,
|
|
21
|
+
* number formatting, {@code undefined}/function/symbol handling, and {@code toJSON} all match it
|
|
22
|
+
* exactly — and only the structural punctuation is emitted here.
|
|
23
|
+
*/
|
|
24
|
+
function* jsonFragments(value) {
|
|
25
|
+
// Mirror JSON.stringify's toJSON step before deciding container vs. scalar, so e.g. a Date
|
|
26
|
+
// collapses to its string form rather than being walked as an object.
|
|
27
|
+
if (value !== null && typeof value === "object" && typeof value.toJSON === "function") {
|
|
28
|
+
yield* jsonFragments(value.toJSON());
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
if (Array.isArray(value)) {
|
|
32
|
+
yield "[";
|
|
33
|
+
for (let i = 0; i < value.length; i++) {
|
|
34
|
+
if (i > 0) {
|
|
35
|
+
yield ",";
|
|
36
|
+
}
|
|
37
|
+
if (isJsonIgnored(value[i])) {
|
|
38
|
+
yield "null";
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
yield* jsonFragments(value[i]);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
yield "]";
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
if (value !== null && typeof value === "object") {
|
|
48
|
+
yield "{";
|
|
49
|
+
let first = true;
|
|
50
|
+
for (const key of Object.keys(value)) {
|
|
51
|
+
const propValue = value[key];
|
|
52
|
+
if (isJsonIgnored(propValue)) {
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
if (!first) {
|
|
56
|
+
yield ",";
|
|
57
|
+
}
|
|
58
|
+
first = false;
|
|
59
|
+
yield JSON.stringify(key);
|
|
60
|
+
yield ":";
|
|
61
|
+
yield* jsonFragments(propValue);
|
|
62
|
+
}
|
|
63
|
+
yield "}";
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
// Scalar: string, number, boolean, or null (a bigint throws here, exactly as JSON.stringify does).
|
|
67
|
+
yield JSON.stringify(value);
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* A drop-in replacement for vscode-jsonrpc's default `application/json` content-type encoder that
|
|
71
|
+
* serializes a message to UTF-8 bytes without ever materializing the whole document as a single JS
|
|
72
|
+
* string. The default encoder does {@code Buffer.from(JSON.stringify(msg))}; a large enough
|
|
73
|
+
* PrepareRecipe response (a deep recipe tree) overflows V8's single-string limit and throws
|
|
74
|
+
* "Cannot create a string longer than 0x1fffffe8 characters", hanging the RPC call. Streaming the
|
|
75
|
+
* fragments into a Buffer raises the ceiling to Node's Buffer.MAX_LENGTH (multiple GB) while
|
|
76
|
+
* producing byte-identical output. (True unbounded streaming needs chunked framing — Content-Length
|
|
77
|
+
* still requires the whole body up front — so this is a ceiling raise, not a removal.)
|
|
78
|
+
*/
|
|
79
|
+
exports.chunkedJsonEncoder = {
|
|
80
|
+
name: "application/json",
|
|
81
|
+
encode(msg, options) {
|
|
82
|
+
const buffers = [];
|
|
83
|
+
let pending = "";
|
|
84
|
+
for (const fragment of jsonFragments(msg)) {
|
|
85
|
+
pending += fragment;
|
|
86
|
+
if (pending.length >= FLUSH_THRESHOLD) {
|
|
87
|
+
buffers.push(Buffer.from(pending, options.charset));
|
|
88
|
+
pending = "";
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
if (pending.length > 0) {
|
|
92
|
+
buffers.push(Buffer.from(pending, options.charset));
|
|
93
|
+
}
|
|
94
|
+
return Promise.resolve(Buffer.concat(buffers));
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
//# sourceMappingURL=message-encoder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message-encoder.js","sourceRoot":"","sources":["../../src/rpc/message-encoder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-recipes.d.ts","sourceRoot":"","sources":["../../../src/rpc/request/install-recipes.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAM3C,OAAO,EAAC,iBAAiB,EAAC,MAAM,mBAAmB,CAAC;AAGpD,MAAM,WAAW,sBAAsB;IACnC,gBAAgB,EAAE,MAAM,CAAA;IACxB,OAAO,CAAC,EAAE,MAAM,CAAA;CACnB;AAqCD,qBAAa,cAAc;IAMX,OAAO,CAAC,QAAQ,CAAC,OAAO;IALpC;;;;OAIG;gBAC0B,OAAO,EAAE,MAAM,GAAG;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE;IAGxF,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC,iBAAiB,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,iBAAiB,EACrF,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"install-recipes.d.ts","sourceRoot":"","sources":["../../../src/rpc/request/install-recipes.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAM3C,OAAO,EAAC,iBAAiB,EAAC,MAAM,mBAAmB,CAAC;AAGpD,MAAM,WAAW,sBAAsB;IACnC,gBAAgB,EAAE,MAAM,CAAA;IACxB,OAAO,CAAC,EAAE,MAAM,CAAA;CACnB;AAqCD,qBAAa,cAAc;IAMX,OAAO,CAAC,QAAQ,CAAC,OAAO;IALpC;;;;OAIG;gBAC0B,OAAO,EAAE,MAAM,GAAG;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE;IAGxF,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC,iBAAiB,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,iBAAiB,EACrF,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI;CA+FnG"}
|
|
@@ -159,16 +159,12 @@ class InstallRecipes {
|
|
|
159
159
|
else {
|
|
160
160
|
throw new Error(`${recipesName} does not export an 'activate' function`);
|
|
161
161
|
}
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
for (const recipe of marketplace.allRecipes()) {
|
|
169
|
-
if (!beforeNames.has(recipe.name)) {
|
|
170
|
-
recipeOrigin.set(recipe.name, packageName);
|
|
171
|
-
}
|
|
162
|
+
const origin = typeof request.recipes === "object"
|
|
163
|
+
? request.recipes.packageName
|
|
164
|
+
: request.recipes;
|
|
165
|
+
for (const recipe of marketplace.allRecipes()) {
|
|
166
|
+
if (!beforeNames.has(recipe.name)) {
|
|
167
|
+
recipeOrigin.set(recipe.name, origin);
|
|
172
168
|
}
|
|
173
169
|
}
|
|
174
170
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-recipes.js","sourceRoot":"","sources":["../../../src/rpc/request/install-recipes.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"install-recipes.js","sourceRoot":"","sources":["../../../src/rpc/request/install-recipes.ts"],"names":[],"mappings":"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"}
|
package/dist/rpc/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/rpc/server.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/rpc/server.ts"],"names":[],"mappings":";AAyBA,OAAO,SAAS,CAAC;AACjB,OAAO,SAAS,CAAC;AACjB,OAAO,SAAS,CAAC;AACjB,OAAO,SAAS,CAAC;AACjB,OAAO,eAAe,CAAC"}
|
package/dist/rpc/server.js
CHANGED
|
@@ -51,6 +51,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
51
51
|
*/
|
|
52
52
|
const rpc = __importStar(require("vscode-jsonrpc/node"));
|
|
53
53
|
const rewrite_rpc_1 = require("./rewrite-rpc");
|
|
54
|
+
const message_encoder_1 = require("./message-encoder");
|
|
54
55
|
const fs = __importStar(require("fs"));
|
|
55
56
|
const commander_1 = require("commander");
|
|
56
57
|
const tmp_promise_1 = require("tmp-promise");
|
|
@@ -160,7 +161,11 @@ async function main() {
|
|
|
160
161
|
};
|
|
161
162
|
pyroscope = initPyroscope(logger);
|
|
162
163
|
// Create the connection with the custom logger
|
|
163
|
-
const connection = rpc.createMessageConnection(new rpc.StreamMessageReader(process.stdin),
|
|
164
|
+
const connection = rpc.createMessageConnection(new rpc.StreamMessageReader(process.stdin),
|
|
165
|
+
// Serialize outgoing messages without materializing the whole document as one JS string:
|
|
166
|
+
// a large PrepareRecipe response (a deep recipe tree) overflows V8's ~512 MB string limit
|
|
167
|
+
// in the default `Buffer.from(JSON.stringify(msg))` encoder and hangs the call.
|
|
168
|
+
new rpc.StreamMessageWriter(process.stdout, { contentTypeEncoder: message_encoder_1.chunkedJsonEncoder }), logger);
|
|
164
169
|
if (options.traceRpcMessages) {
|
|
165
170
|
await connection.trace(rpc.Trace.Verbose, logger).catch((err) => {
|
|
166
171
|
// Handle any unexpected errors during trace configuration
|
package/dist/rpc/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/rpc/server.ts"],"names":[],"mappings":"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
|
|
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.86.
|
|
3
|
+
"version": "8.86.3",
|
|
4
4
|
"license": "Moderne Source Available License",
|
|
5
5
|
"description": "OpenRewrite JavaScript.",
|
|
6
6
|
"repository": {
|
|
@@ -15,6 +15,10 @@
|
|
|
15
15
|
"dist/**",
|
|
16
16
|
"src/**"
|
|
17
17
|
],
|
|
18
|
+
"allowScripts": {
|
|
19
|
+
"bun": true,
|
|
20
|
+
"@datadog/pprof": true
|
|
21
|
+
},
|
|
18
22
|
"exports": {
|
|
19
23
|
".": {
|
|
20
24
|
"types": "./dist/index.d.ts",
|
package/src/java/s.js~
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
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();
|
|
@@ -0,0 +1,48 @@
|
|
|
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();
|
|
@@ -0,0 +1,68 @@
|
|
|
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();
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2025 the original author or authors.
|
|
3
|
+
* <p>
|
|
4
|
+
* Licensed under the Moderne Source Available License (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
* <p>
|
|
8
|
+
* https://docs.moderne.io/licensing/moderne-source-available-license
|
|
9
|
+
* <p>
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import type {Message, MessageWriterOptions} from "vscode-jsonrpc/node";
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* The content-type encoder shape vscode-jsonrpc's {@link MessageWriterOptions} accepts. Derived
|
|
20
|
+
* from the writer options rather than deep-imported, because the concrete `ContentTypeEncoder`
|
|
21
|
+
* type is not re-exported from the package entrypoint.
|
|
22
|
+
*/
|
|
23
|
+
export type JsonRpcContentTypeEncoder = NonNullable<MessageWriterOptions["contentTypeEncoder"]>;
|
|
24
|
+
|
|
25
|
+
// Flush the accumulated JSON text to a Buffer once it reaches this many UTF-16 code units. This
|
|
26
|
+
// keeps the transient string far below V8's ~512 MB String.kMaxLength while bounding how many
|
|
27
|
+
// intermediate Buffers we concatenate. A single scalar/key fragment is never split, so the pending
|
|
28
|
+
// string only ever exceeds the threshold by one whole fragment.
|
|
29
|
+
const FLUSH_THRESHOLD = 1 << 20; // 1 MiB
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* True for values that {@code JSON.stringify} drops: an object property with such a value is
|
|
33
|
+
* omitted, and such an array element serializes as {@code null}.
|
|
34
|
+
*/
|
|
35
|
+
function isJsonIgnored(value: unknown): boolean {
|
|
36
|
+
return value === undefined || typeof value === "function" || typeof value === "symbol";
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Yields a value as the sequence of JSON text fragments that concatenate to exactly
|
|
41
|
+
* {@code JSON.stringify(value)}, without ever building the whole document as one string. Every
|
|
42
|
+
* scalar and every object key is serialized by the engine's {@code JSON.stringify} — so escaping,
|
|
43
|
+
* number formatting, {@code undefined}/function/symbol handling, and {@code toJSON} all match it
|
|
44
|
+
* exactly — and only the structural punctuation is emitted here.
|
|
45
|
+
*/
|
|
46
|
+
export function* jsonFragments(value: unknown): Generator<string> {
|
|
47
|
+
// Mirror JSON.stringify's toJSON step before deciding container vs. scalar, so e.g. a Date
|
|
48
|
+
// collapses to its string form rather than being walked as an object.
|
|
49
|
+
if (value !== null && typeof value === "object" && typeof (value as { toJSON?: unknown }).toJSON === "function") {
|
|
50
|
+
yield* jsonFragments((value as { toJSON(): unknown }).toJSON());
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
if (Array.isArray(value)) {
|
|
55
|
+
yield "[";
|
|
56
|
+
for (let i = 0; i < value.length; i++) {
|
|
57
|
+
if (i > 0) {
|
|
58
|
+
yield ",";
|
|
59
|
+
}
|
|
60
|
+
if (isJsonIgnored(value[i])) {
|
|
61
|
+
yield "null";
|
|
62
|
+
} else {
|
|
63
|
+
yield* jsonFragments(value[i]);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
yield "]";
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
if (value !== null && typeof value === "object") {
|
|
71
|
+
yield "{";
|
|
72
|
+
let first = true;
|
|
73
|
+
for (const key of Object.keys(value as object)) {
|
|
74
|
+
const propValue = (value as Record<string, unknown>)[key];
|
|
75
|
+
if (isJsonIgnored(propValue)) {
|
|
76
|
+
continue;
|
|
77
|
+
}
|
|
78
|
+
if (!first) {
|
|
79
|
+
yield ",";
|
|
80
|
+
}
|
|
81
|
+
first = false;
|
|
82
|
+
yield JSON.stringify(key);
|
|
83
|
+
yield ":";
|
|
84
|
+
yield* jsonFragments(propValue);
|
|
85
|
+
}
|
|
86
|
+
yield "}";
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
// Scalar: string, number, boolean, or null (a bigint throws here, exactly as JSON.stringify does).
|
|
91
|
+
yield JSON.stringify(value) as string;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* A drop-in replacement for vscode-jsonrpc's default `application/json` content-type encoder that
|
|
96
|
+
* serializes a message to UTF-8 bytes without ever materializing the whole document as a single JS
|
|
97
|
+
* string. The default encoder does {@code Buffer.from(JSON.stringify(msg))}; a large enough
|
|
98
|
+
* PrepareRecipe response (a deep recipe tree) overflows V8's single-string limit and throws
|
|
99
|
+
* "Cannot create a string longer than 0x1fffffe8 characters", hanging the RPC call. Streaming the
|
|
100
|
+
* fragments into a Buffer raises the ceiling to Node's Buffer.MAX_LENGTH (multiple GB) while
|
|
101
|
+
* producing byte-identical output. (True unbounded streaming needs chunked framing — Content-Length
|
|
102
|
+
* still requires the whole body up front — so this is a ceiling raise, not a removal.)
|
|
103
|
+
*/
|
|
104
|
+
export const chunkedJsonEncoder: JsonRpcContentTypeEncoder = {
|
|
105
|
+
name: "application/json",
|
|
106
|
+
encode(msg: Message, options: { charset: BufferEncoding }): Promise<Uint8Array> {
|
|
107
|
+
const buffers: Buffer[] = [];
|
|
108
|
+
let pending = "";
|
|
109
|
+
for (const fragment of jsonFragments(msg)) {
|
|
110
|
+
pending += fragment;
|
|
111
|
+
if (pending.length >= FLUSH_THRESHOLD) {
|
|
112
|
+
buffers.push(Buffer.from(pending, options.charset));
|
|
113
|
+
pending = "";
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
if (pending.length > 0) {
|
|
117
|
+
buffers.push(Buffer.from(pending, options.charset));
|
|
118
|
+
}
|
|
119
|
+
return Promise.resolve(Buffer.concat(buffers));
|
|
120
|
+
}
|
|
121
|
+
};
|
|
@@ -150,16 +150,12 @@ export class InstallRecipes {
|
|
|
150
150
|
throw new Error(`${recipesName} does not export an 'activate' function`);
|
|
151
151
|
}
|
|
152
152
|
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
for (const recipe of marketplace.allRecipes()) {
|
|
160
|
-
if (!beforeNames.has(recipe.name)) {
|
|
161
|
-
recipeOrigin.set(recipe.name, packageName);
|
|
162
|
-
}
|
|
153
|
+
const origin = typeof request.recipes === "object"
|
|
154
|
+
? request.recipes.packageName
|
|
155
|
+
: request.recipes;
|
|
156
|
+
for (const recipe of marketplace.allRecipes()) {
|
|
157
|
+
if (!beforeNames.has(recipe.name)) {
|
|
158
|
+
recipeOrigin.set(recipe.name, origin);
|
|
163
159
|
}
|
|
164
160
|
}
|
|
165
161
|
|
package/src/rpc/server.ts
CHANGED
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
*/
|
|
17
17
|
import * as rpc from "vscode-jsonrpc/node";
|
|
18
18
|
import {RewriteRpc} from "./rewrite-rpc";
|
|
19
|
+
import {chunkedJsonEncoder} from "./message-encoder";
|
|
19
20
|
import * as fs from "fs";
|
|
20
21
|
import {Command} from 'commander';
|
|
21
22
|
import {dir} from 'tmp-promise';
|
|
@@ -142,7 +143,10 @@ async function main() {
|
|
|
142
143
|
// Create the connection with the custom logger
|
|
143
144
|
const connection = rpc.createMessageConnection(
|
|
144
145
|
new rpc.StreamMessageReader(process.stdin),
|
|
145
|
-
|
|
146
|
+
// Serialize outgoing messages without materializing the whole document as one JS string:
|
|
147
|
+
// a large PrepareRecipe response (a deep recipe tree) overflows V8's ~512 MB string limit
|
|
148
|
+
// in the default `Buffer.from(JSON.stringify(msg))` encoder and hangs the call.
|
|
149
|
+
new rpc.StreamMessageWriter(process.stdout, {contentTypeEncoder: chunkedJsonEncoder}),
|
|
146
150
|
logger
|
|
147
151
|
);
|
|
148
152
|
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
8.86.1
|