miniread 1.60.1 → 1.61.0

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.
@@ -244,6 +244,10 @@ const manifestData = {
244
244
  notes: "Measured with baseline none: 0.00%. Added to recommended for readability.",
245
245
  evaluations: { "legacy:evaluation": { "evaluatedAt": "2026-01-25T20:13:48.297Z", "changedLines": 154, "durationSeconds": 0, "stableNames": 0, "diffSizePercent": 99.99622028196697 }, "claude-code-2.1.10:claude-code-2.1.11": { "diffSizePercent": 99.99622028196697, "evaluatedAt": "2026-01-25T23:31:54.696Z", "changedLines": 154, "durationSeconds": 53.15604825, "stableNames": 1358 } },
246
246
  },
247
+ "rename-to-buffer-results": {
248
+ recommended: true,
249
+ evaluations: { "claude-code-2.1.10:claude-code-2.1.11": { "diffSizePercent": 100, "evaluatedAt": "2026-02-04T13:06:29.691Z", "changedLines": 56, "durationSeconds": 171.52518661899998, "stableNames": 1359 } },
250
+ },
247
251
  "rename-typeof-variables": {
248
252
  recommended: true,
249
253
  evaluations: { "legacy:evaluation": { "evaluatedAt": "2026-01-25T20:14:40.653Z", "changedLines": 372, "durationSeconds": 0, "stableNames": 0, "diffSizePercent": 100 }, "claude-code-2.1.10:claude-code-2.1.11": { "diffSizePercent": 100, "evaluatedAt": "2026-01-25T23:32:45.594Z", "changedLines": 372, "durationSeconds": 48.026398584, "stableNames": 1358 } },
@@ -353,6 +357,7 @@ export const recommendedTransformIds = [
353
357
  "rename-asap-wrappers",
354
358
  "rename-awaiter-parameters",
355
359
  "rename-buffer-variables",
360
+ "rename-to-buffer-results",
356
361
  "rename-catch-parameters",
357
362
  "rename-promise-catch-parameters",
358
363
  "rename-char-code-at",
@@ -48,6 +48,7 @@ import { renameStringSplitVariablesTransform } from "../rename-string-split-vari
48
48
  import { renameThisAliasesTransform } from "../rename-this-aliases/rename-this-aliases-transform.js";
49
49
  import { renameTimeoutDurationParametersTransform } from "../rename-timeout-duration-parameters/rename-timeout-duration-parameters-transform.js";
50
50
  import { renameTimeoutIdsTransform } from "../rename-timeout-ids/rename-timeout-ids-transform.js";
51
+ import { renameToBufferResultsTransform } from "../rename-to-buffer-results/rename-to-buffer-results-transform.js";
51
52
  import { renameTypeofVariablesTransform } from "../rename-typeof-variables/rename-typeof-variables-transform.js";
52
53
  import { renameTypescriptHelperAliasesTransform } from "../rename-typescript-helper-aliases/rename-typescript-helper-aliases-transform.js";
53
54
  import { renameUint8arrayConcatVariablesTransform } from "../rename-uint8array-concat-variables/rename-uint8array-concat-variables-transform.js";
@@ -114,6 +115,7 @@ export const transformRegistry = {
114
115
  [renameThisAliasesTransform.id]: renameThisAliasesTransform,
115
116
  [renameTimeoutDurationParametersTransform.id]: renameTimeoutDurationParametersTransform,
116
117
  [renameTimeoutIdsTransform.id]: renameTimeoutIdsTransform,
118
+ [renameToBufferResultsTransform.id]: renameToBufferResultsTransform,
117
119
  [renameTypeofVariablesTransform.id]: renameTypeofVariablesTransform,
118
120
  [renameTypescriptHelperAliasesTransform.id]: renameTypescriptHelperAliasesTransform,
119
121
  [renameUint8arrayConcatVariablesTransform.id]: renameUint8arrayConcatVariablesTransform,
@@ -4,4 +4,4 @@
4
4
  * This lets us tune transform interactions intentionally instead of relying on
5
5
  * alphabetical ID sorting.
6
6
  */
7
- export declare const recommendedTransformOrder: readonly ["stabilize-top-level-bindings", "expand-boolean-literals", "expand-sequence-expressions-v5", "expand-special-number-literals", "expand-typeof-undefined-comparisons", "expand-undefined-literals", "remove-redundant-else", "rename-arguments-length-flags", "rename-asap-wrappers", "rename-awaiter-parameters", "rename-buffer-variables", "rename-catch-parameters", "rename-promise-catch-parameters", "rename-char-code-at", "rename-charcode-variables-v2", "rename-client-aliases", "rename-comparison-flags", "rename-date-now-start-times", "rename-default-options-parameters", "rename-deferred-resolve-parameters", "rename-destructured-aliases", "rename-error-first-callback-parameters", "rename-error-variables", "rename-event-parameters", "rename-fs-sync-variables", "rename-interval-ids", "rename-loop-index-variables-v3", "rename-loop-length-variables", "rename-object-keys-variables", "rename-parameters-to-match-properties-v2", "rename-promise-executor-parameters-v2", "rename-range-parameters", "rename-read-file-lines", "rename-regex-builders", "rename-rest-parameters", "rename-search-parameters-variables", "rename-string-split-variables", "rename-this-aliases", "rename-timeout-ids", "rename-typeof-variables", "rename-typescript-helper-aliases", "rename-uint8array-concat-variables", "rename-url-parameters", "rename-url-variables", "rename-use-reference-guards-v2", "rename-use-reference-sets", "rename-worker-handles", "simplify-boolean-negations", "simplify-string-trim", "split-variable-declarations", "use-optional-chaining", "use-object-property-shorthand", "use-object-shorthand", "replace-dynamic-require-eval"];
7
+ export declare const recommendedTransformOrder: readonly ["stabilize-top-level-bindings", "expand-boolean-literals", "expand-sequence-expressions-v5", "expand-special-number-literals", "expand-typeof-undefined-comparisons", "expand-undefined-literals", "remove-redundant-else", "rename-arguments-length-flags", "rename-asap-wrappers", "rename-awaiter-parameters", "rename-buffer-variables", "rename-to-buffer-results", "rename-catch-parameters", "rename-promise-catch-parameters", "rename-char-code-at", "rename-charcode-variables-v2", "rename-client-aliases", "rename-comparison-flags", "rename-date-now-start-times", "rename-default-options-parameters", "rename-deferred-resolve-parameters", "rename-destructured-aliases", "rename-error-first-callback-parameters", "rename-error-variables", "rename-event-parameters", "rename-fs-sync-variables", "rename-interval-ids", "rename-loop-index-variables-v3", "rename-loop-length-variables", "rename-object-keys-variables", "rename-parameters-to-match-properties-v2", "rename-promise-executor-parameters-v2", "rename-range-parameters", "rename-read-file-lines", "rename-regex-builders", "rename-rest-parameters", "rename-search-parameters-variables", "rename-string-split-variables", "rename-this-aliases", "rename-timeout-ids", "rename-typeof-variables", "rename-typescript-helper-aliases", "rename-uint8array-concat-variables", "rename-url-parameters", "rename-url-variables", "rename-use-reference-guards-v2", "rename-use-reference-sets", "rename-worker-handles", "simplify-boolean-negations", "simplify-string-trim", "split-variable-declarations", "use-optional-chaining", "use-object-property-shorthand", "use-object-shorthand", "replace-dynamic-require-eval"];
@@ -18,6 +18,7 @@ export const recommendedTransformOrder = [
18
18
  "rename-asap-wrappers",
19
19
  "rename-awaiter-parameters",
20
20
  "rename-buffer-variables",
21
+ "rename-to-buffer-results",
21
22
  "rename-catch-parameters",
22
23
  "rename-promise-catch-parameters",
23
24
  "rename-char-code-at",
@@ -0,0 +1,12 @@
1
+ {
2
+ "recommended": true,
3
+ "evaluations": {
4
+ "claude-code-2.1.10:claude-code-2.1.11": {
5
+ "diffSizePercent": 100,
6
+ "evaluatedAt": "2026-02-04T13:06:29.691Z",
7
+ "changedLines": 56,
8
+ "durationSeconds": 171.52518661899998,
9
+ "stableNames": 1359
10
+ }
11
+ }
12
+ }
@@ -0,0 +1,2 @@
1
+ import { type Transform } from "../../core/types.js";
2
+ export declare const renameToBufferResultsTransform: Transform;
@@ -0,0 +1,83 @@
1
+ import { createRequire } from "node:module";
2
+ import { RenameGroup, isStableRenamed } from "../../core/stable-naming.js";
3
+ import { getFilesToProcess, } from "../../core/types.js";
4
+ const require = createRequire(import.meta.url);
5
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
6
+ const traverse = require("@babel/traverse").default;
7
+ const isToBufferCall = (callee) => {
8
+ if (callee.type !== "MemberExpression" &&
9
+ callee.type !== "OptionalMemberExpression") {
10
+ return false;
11
+ }
12
+ if (callee.computed) {
13
+ if (callee.property.type === "StringLiteral") {
14
+ return callee.property.value === "toBuffer";
15
+ }
16
+ if (callee.property.type === "TemplateLiteral" &&
17
+ callee.property.expressions.length === 0 &&
18
+ callee.property.quasis.length === 1) {
19
+ const quasi = callee.property.quasis[0];
20
+ return quasi?.value.cooked === "toBuffer";
21
+ }
22
+ return false;
23
+ }
24
+ return (callee.property.type === "Identifier" && callee.property.name === "toBuffer");
25
+ };
26
+ export const renameToBufferResultsTransform = {
27
+ id: "rename-to-buffer-results",
28
+ description: "Renames variables assigned from toBuffer() results to buffer",
29
+ scope: "file",
30
+ parallelizable: true,
31
+ transform(context) {
32
+ let nodesVisited = 0;
33
+ let transformationsApplied = 0;
34
+ for (const fileInfo of getFilesToProcess(context)) {
35
+ const renameGroup = new RenameGroup();
36
+ traverse(fileInfo.ast, {
37
+ VariableDeclarator(path) {
38
+ nodesVisited++;
39
+ const { id, init } = path.node;
40
+ if (!init || id.type !== "Identifier") {
41
+ return;
42
+ }
43
+ let callExpression;
44
+ if (init.type === "CallExpression" ||
45
+ init.type === "OptionalCallExpression") {
46
+ callExpression = init;
47
+ }
48
+ else if (init.type === "AwaitExpression") {
49
+ if (init.argument.type !== "CallExpression" &&
50
+ init.argument.type !== "OptionalCallExpression") {
51
+ return;
52
+ }
53
+ callExpression = init.argument;
54
+ }
55
+ else {
56
+ return;
57
+ }
58
+ if (!isToBufferCall(callExpression.callee)) {
59
+ return;
60
+ }
61
+ const currentName = id.name;
62
+ if (isStableRenamed(currentName)) {
63
+ return;
64
+ }
65
+ if (currentName.toLowerCase().includes("buffer")) {
66
+ return;
67
+ }
68
+ const binding = path.scope.getBinding(currentName);
69
+ if (!binding?.constant) {
70
+ return;
71
+ }
72
+ renameGroup.add({
73
+ scope: path.scope,
74
+ currentName,
75
+ baseName: "buffer",
76
+ });
77
+ },
78
+ });
79
+ transformationsApplied += renameGroup.apply();
80
+ }
81
+ return Promise.resolve({ nodesVisited, transformationsApplied });
82
+ },
83
+ };
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "miniread",
3
3
  "author": "Łukasz Jerciński",
4
4
  "license": "MIT",
5
- "version": "1.60.1",
5
+ "version": "1.61.0",
6
6
  "description": "Transform minified JavaScript/TypeScript into a more readable form using deterministic AST-based transforms.",
7
7
  "repository": {
8
8
  "type": "git",