ts-repo-utils 10.6.0 → 10.6.1

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.
@@ -28,12 +28,33 @@ import { Result } from 'ts-data-forge';
28
28
  * unaffected.
29
29
  * - An import binding that nothing outside the removed code refers to any
30
30
  * more, and the whole `import` declaration when it has no bindings left.
31
+ * This is one rule and there is no other: an unwrapped identity call's own
32
+ * binding is removed by it, and so stays when the file also uses that name
33
+ * somewhere the pass does not unwrap (`xs.map(castMutable)`). Which is why
34
+ * the pass has to see what an unwrapped call's argument refers to, even
35
+ * though the argument itself is none of its business.
31
36
  * - Every comment, when `options.removeComments` is set. The compiler copies
32
37
  * the JSDoc of each declaration into the JavaScript as well as into the
33
38
  * `.d.mts`, where an editor reads it from; the copy in the JavaScript is
34
39
  * read by nobody and is most of the file. A `#!` line and the pragma
35
40
  * comments (`//# sourceMappingURL=`) are kept.
36
41
  *
42
+ * The pass never rewrites the tree. It walks it, collects `[start, end)`
43
+ * ranges of text to erase, and erases them all at the end. Two kinds of range
44
+ * come out of that walk, and the difference between them matters to anything
45
+ * that goes on to ask whether a node survived:
46
+ *
47
+ * - A **whole-node** range covers a node completely. Every removed statement
48
+ * is one of these.
49
+ * - A **partial** range covers part of a node and keeps the rest. Unwrapping
50
+ * `castMutable(x)` erases the callee and the parentheses and keeps `x`, so
51
+ * the call node is half erased — and the erased half is the half it starts
52
+ * with.
53
+ *
54
+ * So "does this node begin in erased text" and "is this node gone" are
55
+ * different questions, and only the second one is safe to prune imports by.
56
+ * See {@link isErasedBy} and {@link isNodeErasedBy}.
57
+ *
37
58
  * Every line break is kept when a range is removed, so the line numbers of
38
59
  * the output are the line numbers of the input and the source map the
39
60
  * compiler emitted for the file stays valid line for line. What follows a
@@ -1 +1 @@
1
- {"version":3,"file":"strip-dev-only-code.d.mts","sourceRoot":"","sources":["../../src/functions/strip-dev-only-code.mts"],"names":[],"mappings":"AAEA,OAAO,EAAuB,MAAM,EAAmB,MAAM,eAAe,CAAC;AAK7E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2DG;AACH,eAAO,MAAM,gBAAgB,WACnB,MAAM,YACJ,MAAM,WACP,uBAAuB,KAC/B,MAAM,CAAC,MAAM,EAAE,MAAM,CAqDvB,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB,QAC3B,MAAM,WACF,uBAAuB,KAC/B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC,EAAE,MAAM,CAAC,CA4C5D,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,QAAQ,CAAC;IAC7C;;;;;OAKG;IACH,oBAAoB,EAAE,SAAS,MAAM,EAAE,CAAC;IAExC;;;;;OAKG;IACH,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC;IAEvC;;;;;;;;;;;OAWG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC,CAAC"}
1
+ {"version":3,"file":"strip-dev-only-code.d.mts","sourceRoot":"","sources":["../../src/functions/strip-dev-only-code.mts"],"names":[],"mappings":"AAEA,OAAO,EAAuB,MAAM,EAAmB,MAAM,eAAe,CAAC;AAK7E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgFG;AACH,eAAO,MAAM,gBAAgB,WACnB,MAAM,YACJ,MAAM,WACP,uBAAuB,KAC/B,MAAM,CAAC,MAAM,EAAE,MAAM,CA0DvB,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB,QAC3B,MAAM,WACF,uBAAuB,KAC/B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC,EAAE,MAAM,CAAC,CA4C5D,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,QAAQ,CAAC;IAC7C;;;;;OAKG;IACH,oBAAoB,EAAE,SAAS,MAAM,EAAE,CAAC;IAExC;;;;;OAKG;IACH,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC;IAEvC;;;;;;;;;;;OAWG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC,CAAC"}
@@ -42,6 +42,27 @@ import { glob } from './glob.mjs';
42
42
 
43
43
 
44
44
 
45
+
46
+
47
+
48
+
49
+
50
+
51
+
52
+
53
+
54
+
55
+
56
+
57
+
58
+
59
+
60
+
61
+
62
+
63
+
64
+
65
+
45
66
 
46
67
 
47
68
 
@@ -72,8 +93,13 @@ export const stripDevOnlyCode = (source, fileName, options) => {
72
93
  if (leftover !== undefined) {
73
94
  return Result.err(leftover);
74
95
  }
96
+
97
+
98
+
75
99
  const calleeRanges = collectUnwrappedCallees(sourceFile, unwrapIdentityCalls, isErasedBy(statementRanges));
76
- const importRanges = collectUnusedImports(sourceFile, isErasedBy([...statementRanges, ...calleeRanges]));
100
+
101
+
102
+ const importRanges = collectUnusedImports(sourceFile, isNodeErasedBy([...statementRanges, ...calleeRanges]));
77
103
  const commentRanges = options.removeComments === true
78
104
  ? collectComments(sourceFile, source)
79
105
  : [];
@@ -120,12 +146,46 @@ export const stripDevOnlyCodeInDir = async (dir, options) => {
120
146
  };
121
147
 
122
148
  const importMetaVitest = ['import.meta', 'vitest'].join('.');
149
+
150
+
151
+
152
+
153
+
154
+
155
+
123
156
  const isErasedBy = (ranges) => (pos) => ranges.some(([start, end]) => start <= pos && pos < end);
124
157
 
125
158
 
126
159
 
127
160
 
128
161
 
162
+
163
+
164
+
165
+
166
+
167
+
168
+
169
+
170
+
171
+
172
+
173
+
174
+
175
+
176
+
177
+
178
+
179
+
180
+
181
+
182
+
183
+ const isNodeErasedBy = (ranges) => (start, end) => ranges.some(([from, to]) => from <= start && end <= to);
184
+
185
+
186
+
187
+
188
+
129
189
  const createIsRemovable = (removeCallStatements) => {
130
190
  const isRemovable = (statement) => {
131
191
  if (isVitestGuard(statement)) {
@@ -247,6 +307,11 @@ const describeLeftover = (message, node, sourceFile, fileName) => {
247
307
 
248
308
 
249
309
 
310
+
311
+
312
+
313
+
314
+
250
315
  const collectUnwrappedCallees = (sourceFile, unwrapIdentityCalls, isErased) => {
251
316
  const mut_ranges = [];
252
317
  const visit = (node) => {
@@ -381,13 +446,20 @@ const specifierEraseRange = (specifier, neighbors, sourceFile) => {
381
446
 
382
447
 
383
448
 
449
+
450
+
451
+
452
+
453
+
454
+
455
+
384
456
  const collectReferencedNames = (sourceFile, isErased) => {
385
457
  const mut_names = new Set();
386
458
  const visit = (node) => {
387
459
  if (ts.isImportDeclaration(node)) {
388
460
  return;
389
461
  }
390
- if (isErased(node.getStart(sourceFile))) {
462
+ if (isErased(node.getStart(sourceFile), node.getEnd())) {
391
463
  return;
392
464
  }
393
465
  if (ts.isIdentifier(node) && !isPropertyName(node)) {
@@ -1 +1 @@
1
- {"version":3,"file":"strip-dev-only-code.mjs","sourceRoot":"","sources":["../../src/functions/strip-dev-only-code.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"strip-dev-only-code.mjs","sourceRoot":"","sources":["../../src/functions/strip-dev-only-code.mts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ts-repo-utils",
3
- "version": "10.6.0",
3
+ "version": "10.6.1",
4
4
  "private": false,
5
5
  "keywords": [
6
6
  "typescript"
@@ -49,7 +49,7 @@
49
49
  "cmd-ts": "^0.15.0",
50
50
  "fast-glob": "^3.3.3",
51
51
  "micromatch": "^4.0.8",
52
- "ts-data-forge": "^14.6.3",
52
+ "ts-data-forge": "^14.6.4",
53
53
  "ts-type-forge": "^9.2.2",
54
54
  "typescript": ">=5.0.0 <7.0.0"
55
55
  },
@@ -62,7 +62,7 @@
62
62
  "esbuild": "0.28.2",
63
63
  "eslint": "10.9.1",
64
64
  "eslint-config-typed": "5.11.2",
65
- "eslint-plugin-ts-data-forge": "0.7.0",
65
+ "eslint-plugin-ts-data-forge": "0.7.1",
66
66
  "eslint-plugin-ts-fortress": "1.2.0",
67
67
  "eslint-plugin-ts-type-forge": "0.8.1",
68
68
  "jiti": "2.7.0",
@@ -70,7 +70,7 @@
70
70
  "prettier": "3.9.6",
71
71
  "prettier-plugin-organize-imports": "4.3.0",
72
72
  "prettier-plugin-packagejson": "3.0.2",
73
- "tsx": "4.23.12",
73
+ "tsx": "4.23.13",
74
74
  "typedoc": "0.28.20",
75
75
  "typedoc-github-theme": "0.4.0",
76
76
  "typescript-native": "npm:typescript@7.0.2",
@@ -34,12 +34,33 @@ import { glob } from './glob.mjs';
34
34
  * unaffected.
35
35
  * - An import binding that nothing outside the removed code refers to any
36
36
  * more, and the whole `import` declaration when it has no bindings left.
37
+ * This is one rule and there is no other: an unwrapped identity call's own
38
+ * binding is removed by it, and so stays when the file also uses that name
39
+ * somewhere the pass does not unwrap (`xs.map(castMutable)`). Which is why
40
+ * the pass has to see what an unwrapped call's argument refers to, even
41
+ * though the argument itself is none of its business.
37
42
  * - Every comment, when `options.removeComments` is set. The compiler copies
38
43
  * the JSDoc of each declaration into the JavaScript as well as into the
39
44
  * `.d.mts`, where an editor reads it from; the copy in the JavaScript is
40
45
  * read by nobody and is most of the file. A `#!` line and the pragma
41
46
  * comments (`//# sourceMappingURL=`) are kept.
42
47
  *
48
+ * The pass never rewrites the tree. It walks it, collects `[start, end)`
49
+ * ranges of text to erase, and erases them all at the end. Two kinds of range
50
+ * come out of that walk, and the difference between them matters to anything
51
+ * that goes on to ask whether a node survived:
52
+ *
53
+ * - A **whole-node** range covers a node completely. Every removed statement
54
+ * is one of these.
55
+ * - A **partial** range covers part of a node and keeps the rest. Unwrapping
56
+ * `castMutable(x)` erases the callee and the parentheses and keeps `x`, so
57
+ * the call node is half erased — and the erased half is the half it starts
58
+ * with.
59
+ *
60
+ * So "does this node begin in erased text" and "is this node gone" are
61
+ * different questions, and only the second one is safe to prune imports by.
62
+ * See {@link isErasedBy} and {@link isNodeErasedBy}.
63
+ *
43
64
  * Every line break is kept when a range is removed, so the line numbers of
44
65
  * the output are the line numbers of the input and the source map the
45
66
  * compiler emitted for the file stays valid line for line. What follows a
@@ -98,15 +119,20 @@ export const stripDevOnlyCode = (
98
119
  return Result.err(leftover);
99
120
  }
100
121
 
122
+ // Only the statement ranges here: a call inside a removed statement needs
123
+ // no unwrapping, and every one of those ranges covers a whole node, so a
124
+ // position test answers the question.
101
125
  const calleeRanges = collectUnwrappedCallees(
102
126
  sourceFile,
103
127
  unwrapIdentityCalls,
104
128
  isErasedBy(statementRanges),
105
129
  );
106
130
 
131
+ // `isNodeErasedBy`, not `isErasedBy`: `calleeRanges` are partial, and a name
132
+ // inside an unwrapped call's argument is still referenced by the output.
107
133
  const importRanges = collectUnusedImports(
108
134
  sourceFile,
109
- isErasedBy([...statementRanges, ...calleeRanges]),
135
+ isNodeErasedBy([...statementRanges, ...calleeRanges]),
110
136
  );
111
137
 
112
138
  const commentRanges =
@@ -221,13 +247,55 @@ type EraseRange = readonly [start: number, end: number];
221
247
 
222
248
  type IsRemovable = (statement: DeepReadonly<ts.Statement>) => boolean;
223
249
 
250
+ /** Whether a single position falls in erased text. */
224
251
  type IsErased = (pos: number) => boolean;
225
252
 
253
+ /** Whether a node is erased in its entirety. */
254
+ type IsNodeErased = (start: number, end: number) => boolean;
255
+
256
+ /**
257
+ * Whether the character at `pos` is erased.
258
+ *
259
+ * Read as "is this node gone?" this is only correct where every range covers
260
+ * a whole node, which is true of the statement ranges and of nothing else.
261
+ * {@link isNodeErasedBy} is the one to reach for otherwise.
262
+ */
226
263
  const isErasedBy =
227
264
  (ranges: readonly EraseRange[]): IsErased =>
228
265
  (pos) =>
229
266
  ranges.some(([start, end]) => start <= pos && pos < end);
230
267
 
268
+ /**
269
+ * Whether a node is erased in its entirety, rather than merely beginning in
270
+ * erased text.
271
+ *
272
+ * Unwrapping an identity call is what makes the two different, because the
273
+ * part it erases is the part the node starts with. Written out with the
274
+ * positions of `castMutable(newArray(n))`:
275
+ *
276
+ * ```text
277
+ * castMutable(newArray(n))
278
+ * ~~~~~~~~~~~~ ~ ~ erased: [0, 12) and [23, 24)
279
+ * ^^^^^^^^^^^ ^ kept, and emitted as the whole expression
280
+ * ```
281
+ *
282
+ * The call node spans `[0, 24)` and so begins at 0, inside the first erased
283
+ * range — while `newArray` at 12 goes on to the output untouched. A walk that
284
+ * skips a subtree whenever the subtree *starts* in erased text therefore
285
+ * never reaches the argument, and every name the argument uses comes back
286
+ * unreferenced.
287
+ *
288
+ * That is precisely how the pruning below deleted the `newArray` import out
289
+ * from under the call that still made it. Nothing downstream noticed: the
290
+ * type check reads `src/`, where the import is still written, and only the
291
+ * built module is missing it, so the first `Arr.scan` call at run time threw
292
+ * `ReferenceError: newArray is not defined`.
293
+ */
294
+ const isNodeErasedBy =
295
+ (ranges: readonly EraseRange[]): IsNodeErased =>
296
+ (start, end) =>
297
+ ranges.some(([from, to]) => from <= start && end <= to);
298
+
231
299
  /**
232
300
  * Decides whether a statement is removed as a whole. A compound statement is
233
301
  * removed when its body is: a block all of whose statements are removable, a
@@ -437,6 +505,11 @@ const describeLeftover = (
437
505
  * Erases `f(` and `)` around the argument of every identity function `f`,
438
506
  * or only the `f` when the argument needs the parentheses to keep its
439
507
  * meaning.
508
+ *
509
+ * The ranges this returns are **partial**: each one erases a piece of a call
510
+ * expression whose argument survives, and the piece starts where the call
511
+ * does. Anything that later asks "is this node gone?" against them has to ask
512
+ * by containment — see {@link isNodeErasedBy}.
440
513
  */
441
514
  const collectUnwrappedCallees = (
442
515
  sourceFile: DeepReadonly<ts.SourceFile>,
@@ -516,7 +589,7 @@ const standsAloneWithoutParentheses = (
516
589
  */
517
590
  const collectUnusedImports = (
518
591
  sourceFile: DeepReadonly<ts.SourceFile>,
519
- isErased: IsErased,
592
+ isErased: IsNodeErased,
520
593
  ): readonly EraseRange[] => {
521
594
  const referencedNames = collectReferencedNames(sourceFile, isErased);
522
595
 
@@ -633,9 +706,16 @@ const specifierEraseRange = (
633
706
  * Names of every identifier that reads as a reference: everything except
634
707
  * import bindings themselves and property names.
635
708
  */
709
+ /**
710
+ * The names the output still refers to.
711
+ *
712
+ * A subtree is skipped only when all of it is erased. Skipping one that merely
713
+ * begins in erased text would lose the argument of every unwrapped identity
714
+ * call, whose names the output goes on using.
715
+ */
636
716
  const collectReferencedNames = (
637
717
  sourceFile: DeepReadonly<ts.SourceFile>,
638
- isErased: IsErased,
718
+ isErased: IsNodeErased,
639
719
  ): ReadonlySet<string> => {
640
720
  const mut_names = new Set<string>();
641
721
 
@@ -644,7 +724,7 @@ const collectReferencedNames = (
644
724
  return;
645
725
  }
646
726
 
647
- if (isErased(node.getStart(sourceFile))) {
727
+ if (isErased(node.getStart(sourceFile), node.getEnd())) {
648
728
  return;
649
729
  }
650
730
 
@@ -207,6 +207,30 @@ describe(stripDevOnlyCode, () => {
207
207
  );
208
208
  });
209
209
 
210
+ test("keeps the imports an unwrapped cast's argument uses", () => {
211
+ // Unwrapping erases `castMutable(` and the closing `)`, and the first of
212
+ // those ranges starts where the call itself starts. So a walk that skips
213
+ // a subtree beginning in erased text skips the argument too, and the
214
+ // names it uses come back unreferenced — while the argument is exactly
215
+ // what the output keeps. `ts-data-forge@14.6.3` shipped `Arr.scan` and
216
+ // `Arr.fill` calling `newArray`, `asPositiveUint32` and `copy` with the
217
+ // imports for them deleted.
218
+ assert.deepStrictEqual(
219
+ stripKeepingLines(
220
+ dedent`
221
+ import { asPositiveUint32, castMutable, newArray } from 'x';
222
+ export const f = (xs, init) =>
223
+ castMutable(newArray(asPositiveUint32(xs.length + 1), init));
224
+ `,
225
+ ),
226
+ dedent`
227
+ import { asPositiveUint32, newArray } from 'x';
228
+ export const f = (xs, init) =>
229
+ newArray(asPositiveUint32(xs.length + 1), init);
230
+ `,
231
+ );
232
+ });
233
+
210
234
  test('leaves a member call, an optional call and a two-argument call alone', () => {
211
235
  const source = dedent`
212
236
  import { castMutable } from 'ts-data-forge';
@@ -219,6 +243,29 @@ describe(stripDevOnlyCode, () => {
219
243
  assert.deepStrictEqual(stripKeepingLines(source), source);
220
244
  });
221
245
 
246
+ test("keeps the cast's own import when another use of it survives", () => {
247
+ // There is no rule that removes an identity cast's import by name, and
248
+ // there could not be: `castMutable` is unwrapped in one place here and
249
+ // left alone in the other, so the name is still referenced and has to
250
+ // stay imported. What removes it in the ordinary case is the one general
251
+ // rule — an import binding nothing in the output refers to any more goes
252
+ // — which is also what removes `expectType`'s import above.
253
+ assert.deepStrictEqual(
254
+ stripKeepingLines(
255
+ dedent`
256
+ import { castMutable, newArray } from 'x';
257
+ export const f = (xs) => xs.map(castMutable);
258
+ export const g = (n) => castMutable(newArray(n));
259
+ `,
260
+ ),
261
+ dedent`
262
+ import { castMutable, newArray } from 'x';
263
+ export const f = (xs) => xs.map(castMutable);
264
+ export const g = (n) => newArray(n);
265
+ `,
266
+ );
267
+ });
268
+
222
269
  test('prunes a middle and a last import specifier', () => {
223
270
  assert.deepStrictEqual(
224
271
  stripKeepingLines(