ts-codemod-lib 1.0.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.
Files changed (149) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +33 -0
  3. package/dist/cmd/convert-to-readonly.d.mts +3 -0
  4. package/dist/cmd/convert-to-readonly.d.mts.map +1 -0
  5. package/dist/cmd/convert-to-readonly.mjs +137 -0
  6. package/dist/cmd/convert-to-readonly.mjs.map +1 -0
  7. package/dist/entry-point.d.mts +2 -0
  8. package/dist/entry-point.d.mts.map +1 -0
  9. package/dist/entry-point.mjs +19 -0
  10. package/dist/entry-point.mjs.map +1 -0
  11. package/dist/functions/ast-transformers/convert-interface-to-type.d.mts +7 -0
  12. package/dist/functions/ast-transformers/convert-interface-to-type.d.mts.map +1 -0
  13. package/dist/functions/ast-transformers/convert-interface-to-type.mjs +83 -0
  14. package/dist/functions/ast-transformers/convert-interface-to-type.mjs.map +1 -0
  15. package/dist/functions/ast-transformers/convert-to-readonly-type.d.mts +29 -0
  16. package/dist/functions/ast-transformers/convert-to-readonly-type.d.mts.map +1 -0
  17. package/dist/functions/ast-transformers/convert-to-readonly-type.mjs +811 -0
  18. package/dist/functions/ast-transformers/convert-to-readonly-type.mjs.map +1 -0
  19. package/dist/functions/ast-transformers/index.d.mts +7 -0
  20. package/dist/functions/ast-transformers/index.d.mts.map +1 -0
  21. package/dist/functions/ast-transformers/index.mjs +9 -0
  22. package/dist/functions/ast-transformers/index.mjs.map +1 -0
  23. package/dist/functions/ast-transformers/readonly-transformer-helpers/compare-union-types.d.mts +3 -0
  24. package/dist/functions/ast-transformers/readonly-transformer-helpers/compare-union-types.d.mts.map +1 -0
  25. package/dist/functions/ast-transformers/readonly-transformer-helpers/compare-union-types.mjs +22 -0
  26. package/dist/functions/ast-transformers/readonly-transformer-helpers/compare-union-types.mjs.map +1 -0
  27. package/dist/functions/ast-transformers/readonly-transformer-helpers/constants.d.mts +2 -0
  28. package/dist/functions/ast-transformers/readonly-transformer-helpers/constants.d.mts.map +1 -0
  29. package/dist/functions/ast-transformers/readonly-transformer-helpers/constants.mjs +15 -0
  30. package/dist/functions/ast-transformers/readonly-transformer-helpers/constants.mjs.map +1 -0
  31. package/dist/functions/ast-transformers/readonly-transformer-helpers/group-union-types.d.mts +21 -0
  32. package/dist/functions/ast-transformers/readonly-transformer-helpers/group-union-types.d.mts.map +1 -0
  33. package/dist/functions/ast-transformers/readonly-transformer-helpers/group-union-types.mjs +72 -0
  34. package/dist/functions/ast-transformers/readonly-transformer-helpers/group-union-types.mjs.map +1 -0
  35. package/dist/functions/ast-transformers/readonly-transformer-helpers/index.d.mts +5 -0
  36. package/dist/functions/ast-transformers/readonly-transformer-helpers/index.d.mts.map +1 -0
  37. package/dist/functions/ast-transformers/readonly-transformer-helpers/index.mjs +5 -0
  38. package/dist/functions/ast-transformers/readonly-transformer-helpers/index.mjs.map +1 -0
  39. package/dist/functions/ast-transformers/readonly-transformer-helpers/readonly-context.d.mts +37 -0
  40. package/dist/functions/ast-transformers/readonly-transformer-helpers/readonly-context.d.mts.map +1 -0
  41. package/dist/functions/ast-transformers/readonly-transformer-helpers/readonly-context.mjs +19 -0
  42. package/dist/functions/ast-transformers/readonly-transformer-helpers/readonly-context.mjs.map +1 -0
  43. package/dist/functions/ast-transformers/replace-record-with-unknown-record.d.mts +7 -0
  44. package/dist/functions/ast-transformers/replace-record-with-unknown-record.d.mts.map +1 -0
  45. package/dist/functions/ast-transformers/replace-record-with-unknown-record.mjs +173 -0
  46. package/dist/functions/ast-transformers/replace-record-with-unknown-record.mjs.map +1 -0
  47. package/dist/functions/ast-transformers/transform-source-code.d.mts +3 -0
  48. package/dist/functions/ast-transformers/transform-source-code.d.mts.map +1 -0
  49. package/dist/functions/ast-transformers/transform-source-code.mjs +27 -0
  50. package/dist/functions/ast-transformers/transform-source-code.mjs.map +1 -0
  51. package/dist/functions/ast-transformers/types.d.mts +3 -0
  52. package/dist/functions/ast-transformers/types.d.mts.map +1 -0
  53. package/dist/functions/ast-transformers/types.mjs +2 -0
  54. package/dist/functions/ast-transformers/types.mjs.map +1 -0
  55. package/dist/functions/constants/ignore-comment-text.d.mts +3 -0
  56. package/dist/functions/constants/ignore-comment-text.d.mts.map +1 -0
  57. package/dist/functions/constants/ignore-comment-text.mjs +5 -0
  58. package/dist/functions/constants/ignore-comment-text.mjs.map +1 -0
  59. package/dist/functions/constants/index.d.mts +2 -0
  60. package/dist/functions/constants/index.d.mts.map +1 -0
  61. package/dist/functions/constants/index.mjs +2 -0
  62. package/dist/functions/constants/index.mjs.map +1 -0
  63. package/dist/functions/functions/has-disable-next-line-comment.d.mts +10 -0
  64. package/dist/functions/functions/has-disable-next-line-comment.d.mts.map +1 -0
  65. package/dist/functions/functions/has-disable-next-line-comment.mjs +47 -0
  66. package/dist/functions/functions/has-disable-next-line-comment.mjs.map +1 -0
  67. package/dist/functions/functions/index.d.mts +9 -0
  68. package/dist/functions/functions/index.d.mts.map +1 -0
  69. package/dist/functions/functions/index.mjs +9 -0
  70. package/dist/functions/functions/index.mjs.map +1 -0
  71. package/dist/functions/functions/is-as-const-node.d.mts +10 -0
  72. package/dist/functions/functions/is-as-const-node.d.mts.map +1 -0
  73. package/dist/functions/functions/is-as-const-node.mjs +30 -0
  74. package/dist/functions/functions/is-as-const-node.mjs.map +1 -0
  75. package/dist/functions/functions/is-primitive-type-node.d.mts +15 -0
  76. package/dist/functions/functions/is-primitive-type-node.d.mts.map +1 -0
  77. package/dist/functions/functions/is-primitive-type-node.mjs +46 -0
  78. package/dist/functions/functions/is-primitive-type-node.mjs.map +1 -0
  79. package/dist/functions/functions/is-readonly-node.d.mts +21 -0
  80. package/dist/functions/functions/is-readonly-node.d.mts.map +1 -0
  81. package/dist/functions/functions/is-readonly-node.mjs +30 -0
  82. package/dist/functions/functions/is-readonly-node.mjs.map +1 -0
  83. package/dist/functions/functions/is-spread-parameter-node.d.mts +4 -0
  84. package/dist/functions/functions/is-spread-parameter-node.d.mts.map +1 -0
  85. package/dist/functions/functions/is-spread-parameter-node.mjs +9 -0
  86. package/dist/functions/functions/is-spread-parameter-node.mjs.map +1 -0
  87. package/dist/functions/functions/remove-parentheses.d.mts +3 -0
  88. package/dist/functions/functions/remove-parentheses.d.mts.map +1 -0
  89. package/dist/functions/functions/remove-parentheses.mjs +9 -0
  90. package/dist/functions/functions/remove-parentheses.mjs.map +1 -0
  91. package/dist/functions/functions/unwrap-readonly.d.mts +3 -0
  92. package/dist/functions/functions/unwrap-readonly.d.mts.map +1 -0
  93. package/dist/functions/functions/unwrap-readonly.mjs +8 -0
  94. package/dist/functions/functions/unwrap-readonly.mjs.map +1 -0
  95. package/dist/functions/functions/wrap-with-parentheses.d.mts +2 -0
  96. package/dist/functions/functions/wrap-with-parentheses.d.mts.map +1 -0
  97. package/dist/functions/functions/wrap-with-parentheses.mjs +4 -0
  98. package/dist/functions/functions/wrap-with-parentheses.mjs.map +1 -0
  99. package/dist/functions/index.d.mts +5 -0
  100. package/dist/functions/index.d.mts.map +1 -0
  101. package/dist/functions/index.mjs +19 -0
  102. package/dist/functions/index.mjs.map +1 -0
  103. package/dist/functions/utils/index.d.mts +2 -0
  104. package/dist/functions/utils/index.d.mts.map +1 -0
  105. package/dist/functions/utils/index.mjs +2 -0
  106. package/dist/functions/utils/index.mjs.map +1 -0
  107. package/dist/functions/utils/replace-with-debug.d.mts +3 -0
  108. package/dist/functions/utils/replace-with-debug.d.mts.map +1 -0
  109. package/dist/functions/utils/replace-with-debug.mjs +7 -0
  110. package/dist/functions/utils/replace-with-debug.mjs.map +1 -0
  111. package/dist/globals.d.mts +1 -0
  112. package/dist/index.d.mts +2 -0
  113. package/dist/index.d.mts.map +1 -0
  114. package/dist/index.mjs +19 -0
  115. package/dist/index.mjs.map +1 -0
  116. package/dist/tsconfig.json +1 -0
  117. package/dist/types.d.mts +2 -0
  118. package/package.json +134 -0
  119. package/src/cmd/convert-to-readonly.mts +195 -0
  120. package/src/entry-point.mts +1 -0
  121. package/src/functions/ast-transformers/convert-interface-to-type.mts +119 -0
  122. package/src/functions/ast-transformers/convert-interface-to-type.test.mts +295 -0
  123. package/src/functions/ast-transformers/convert-to-readonly-type.mts +1391 -0
  124. package/src/functions/ast-transformers/convert-to-readonly-type.test.mts +3653 -0
  125. package/src/functions/ast-transformers/index.mts +6 -0
  126. package/src/functions/ast-transformers/readonly-transformer-helpers/compare-union-types.mts +24 -0
  127. package/src/functions/ast-transformers/readonly-transformer-helpers/constants.mts +12 -0
  128. package/src/functions/ast-transformers/readonly-transformer-helpers/group-union-types.mts +152 -0
  129. package/src/functions/ast-transformers/readonly-transformer-helpers/index.mts +4 -0
  130. package/src/functions/ast-transformers/readonly-transformer-helpers/readonly-context.mts +65 -0
  131. package/src/functions/ast-transformers/replace-record-with-unknown-record.mts +238 -0
  132. package/src/functions/ast-transformers/transform-source-code.mts +38 -0
  133. package/src/functions/ast-transformers/types.mts +6 -0
  134. package/src/functions/constants/ignore-comment-text.mts +3 -0
  135. package/src/functions/constants/index.mts +1 -0
  136. package/src/functions/functions/has-disable-next-line-comment.mts +56 -0
  137. package/src/functions/functions/index.mts +8 -0
  138. package/src/functions/functions/is-as-const-node.mts +47 -0
  139. package/src/functions/functions/is-primitive-type-node.mts +301 -0
  140. package/src/functions/functions/is-readonly-node.mts +247 -0
  141. package/src/functions/functions/is-spread-parameter-node.mts +13 -0
  142. package/src/functions/functions/remove-parentheses.mts +7 -0
  143. package/src/functions/functions/unwrap-readonly.mts +7 -0
  144. package/src/functions/functions/wrap-with-parentheses.mts +2 -0
  145. package/src/functions/index.mts +4 -0
  146. package/src/functions/utils/index.mts +1 -0
  147. package/src/functions/utils/replace-with-debug.mts +10 -0
  148. package/src/globals.d.mts +1 -0
  149. package/src/index.mts +1 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convert-to-readonly-type.mjs","sources":["../../../src/functions/ast-transformers/convert-to-readonly-type.mts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export * from './convert-interface-to-type.mjs';
2
+ export * from './convert-to-readonly-type.mjs';
3
+ export * from './readonly-transformer-helpers/index.mjs';
4
+ export * from './replace-record-with-unknown-record.mjs';
5
+ export * from './transform-source-code.mjs';
6
+ export * from './types.mjs';
7
+ //# sourceMappingURL=index.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../../src/functions/ast-transformers/index.mts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0CAA0C,CAAC;AACzD,cAAc,0CAA0C,CAAC;AACzD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,aAAa,CAAC"}
@@ -0,0 +1,9 @@
1
+ export { convertInterfaceToTypeTransformer } from './convert-interface-to-type.mjs';
2
+ export { convertToReadonlyTypeTransformer } from './convert-to-readonly-type.mjs';
3
+ export { compareUnionIntersectionTypes } from './readonly-transformer-helpers/compare-union-types.mjs';
4
+ export { invalidDeepReadonlyTypeName } from './readonly-transformer-helpers/constants.mjs';
5
+ export { groupUnionIntersectionTypes } from './readonly-transformer-helpers/group-union-types.mjs';
6
+ export { nextReadonlyContext } from './readonly-transformer-helpers/readonly-context.mjs';
7
+ export { replaceRecordWithUnknownRecordTransformer } from './replace-record-with-unknown-record.mjs';
8
+ export { transformSourceCode } from './transform-source-code.mjs';
9
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
@@ -0,0 +1,3 @@
1
+ import * as tsm from 'ts-morph';
2
+ export declare const compareUnionIntersectionTypes: (a: tsm.TypeNode, b: tsm.TypeNode) => number;
3
+ //# sourceMappingURL=compare-union-types.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compare-union-types.d.mts","sourceRoot":"","sources":["../../../../src/functions/ast-transformers/readonly-transformer-helpers/compare-union-types.mts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAMhC,eAAO,MAAM,6BAA6B,GAExC,GAAG,GAAG,CAAC,QAAQ,EAEf,GAAG,GAAG,CAAC,QAAQ,KACd,MAAiC,CAAC"}
@@ -0,0 +1,22 @@
1
+ import * as tsm from 'ts-morph';
2
+ import { isPrimitiveTypeNode } from '../../functions/is-primitive-type-node.mjs';
3
+ import { isReadonlyTupleOrArrayTypeNode } from '../../functions/is-readonly-node.mjs';
4
+
5
+ const compareUnionIntersectionTypes = (
6
+ // eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
7
+ a,
8
+ // eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
9
+ b) => mapRank(a) - mapRank(b);
10
+ // eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
11
+ const mapRank = (t) => isPrimitiveTypeNode(t)
12
+ ? 0
13
+ : t.isKind(tsm.SyntaxKind.ArrayType) ||
14
+ t.isKind(tsm.SyntaxKind.TupleType) ||
15
+ isReadonlyTupleOrArrayTypeNode(t)
16
+ ? 1
17
+ : t.isKind(tsm.SyntaxKind.TypeLiteral)
18
+ ? 2
19
+ : 3;
20
+
21
+ export { compareUnionIntersectionTypes };
22
+ //# sourceMappingURL=compare-union-types.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compare-union-types.mjs","sources":["../../../../src/functions/ast-transformers/readonly-transformer-helpers/compare-union-types.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAMO,MAAM,6BAA6B,GAAG;AAC3C;AACA,CAAe;AACf;AACA,CAAe,KACJ,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC;AAEnC;AACA,MAAM,OAAO,GAAG,CAAC,CAAe,KAC9B,mBAAmB,CAAC,CAAC;AACnB,MAAE;MACA,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC;QAChC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC;QAClC,8BAA8B,CAAC,CAAC;AAClC,UAAE;UACA,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW;AACnC,cAAE;cACA,CAAC;;;;"}
@@ -0,0 +1,2 @@
1
+ export declare const invalidDeepReadonlyTypeName: any;
2
+ //# sourceMappingURL=constants.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.mts","sourceRoot":"","sources":["../../../../src/functions/ast-transformers/readonly-transformer-helpers/constants.mts"],"names":[],"mappings":"AAEA,eAAO,MAAM,2BAA2B,KAStC,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { ISet } from 'ts-data-forge';
2
+
3
+ const invalidDeepReadonlyTypeName = ISet.create([
4
+ 'Readonly',
5
+ 'readonly',
6
+ 'ReadonlyArray',
7
+ 'Array',
8
+ 'Set',
9
+ 'Map',
10
+ 'ReadonlySet',
11
+ 'ReadonlyMap',
12
+ ]);
13
+
14
+ export { invalidDeepReadonlyTypeName };
15
+ //# sourceMappingURL=constants.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.mjs","sources":["../../../../src/functions/ast-transformers/readonly-transformer-helpers/constants.mts"],"sourcesContent":[null],"names":[],"mappings":";;AAEO,MAAM,2BAA2B,GAAG,IAAI,CAAC,MAAM,CAAC;IACrD,UAAU;IACV,UAAU;IACV,eAAe;IACf,OAAO;IACP,KAAK;IACL,KAAK;IACL,aAAa;IACb,aAAa;AACd,CAAA;;;;"}
@@ -0,0 +1,21 @@
1
+ import * as tsm from 'ts-morph';
2
+ import { type PrimitiveTypeNode, type ReadonlyArrayTypeNode, type ReadonlyTupleTypeNode, type ReadonlyTypeReferenceNode } from '../../functions/index.mjs';
3
+ export declare const groupUnionIntersectionTypes: (types: readonly tsm.TypeNode[]) => Readonly<{
4
+ primitives: Readonly<{
5
+ firstPosition: number;
6
+ nodes: readonly PrimitiveTypeNode[];
7
+ }> | undefined;
8
+ arraysAndTuples: Readonly<{
9
+ firstPosition: number;
10
+ nodes: readonly (tsm.ArrayTypeNode | tsm.TupleTypeNode | ReadonlyArrayTypeNode | ReadonlyTupleTypeNode)[];
11
+ }> | undefined;
12
+ typeLiterals: Readonly<{
13
+ firstPosition: number;
14
+ nodes: readonly (tsm.TypeLiteralNode | ReadonlyTypeReferenceNode)[];
15
+ }> | undefined;
16
+ others: Readonly<{
17
+ firstPosition: number;
18
+ nodes: readonly tsm.TypeNode[];
19
+ }> | undefined;
20
+ }>;
21
+ //# sourceMappingURL=group-union-types.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"group-union-types.d.mts","sourceRoot":"","sources":["../../../../src/functions/ast-transformers/readonly-transformer-helpers/group-union-types.mts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,OAAO,EAKL,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,yBAAyB,EAC/B,MAAM,2BAA2B,CAAC;AAEnC,eAAO,MAAM,2BAA2B,GAEtC,OAAO,SAAS,GAAG,CAAC,QAAQ,EAAE,KAC7B,QAAQ,CAAC;IACV,UAAU,EACN,QAAQ,CAAC;QACP,aAAa,EAAE,MAAM,CAAC;QACtB,KAAK,EAAE,SAAS,iBAAiB,EAAE,CAAC;KACrC,CAAC,GACF,SAAS,CAAC;IAEd,eAAe,EACX,QAAQ,CAAC;QACP,aAAa,EAAE,MAAM,CAAC;QACtB,KAAK,EAAE,SAAS,CACZ,GAAG,CAAC,aAAa,GACjB,GAAG,CAAC,aAAa,GACjB,qBAAqB,GACrB,qBAAqB,CACxB,EAAE,CAAC;KACL,CAAC,GACF,SAAS,CAAC;IAEd,YAAY,EACR,QAAQ,CAAC;QACP,aAAa,EAAE,MAAM,CAAC;QACtB,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,eAAe,GAAG,yBAAyB,CAAC,EAAE,CAAC;KACrE,CAAC,GACF,SAAS,CAAC;IAEd,MAAM,EACF,QAAQ,CAAC;QACP,aAAa,EAAE,MAAM,CAAC;QACtB,KAAK,EAAE,SAAS,GAAG,CAAC,QAAQ,EAAE,CAAC;KAChC,CAAC,GACF,SAAS,CAAC;CACf,CAuGA,CAAC"}
@@ -0,0 +1,72 @@
1
+ import * as tsm from 'ts-morph';
2
+ import { isPrimitiveTypeNode } from '../../functions/is-primitive-type-node.mjs';
3
+ import { isReadonlyTupleOrArrayTypeNode, isReadonlyTypeReferenceNode } from '../../functions/is-readonly-node.mjs';
4
+ import { removeParentheses } from '../../functions/remove-parentheses.mjs';
5
+
6
+ const groupUnionIntersectionTypes = (
7
+ // eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
8
+ types) => {
9
+ const mut_grouped = {
10
+ primitives: undefined,
11
+ arraysAndTuples: undefined,
12
+ typeLiterals: undefined,
13
+ others: undefined,
14
+ };
15
+ for (const [i, t_] of types.entries()) {
16
+ const t = removeParentheses(t_);
17
+ // isReadonlyTypeReferenceNode
18
+ if (isPrimitiveTypeNode(t)) {
19
+ if (mut_grouped.primitives === undefined) {
20
+ mut_grouped.primitives = {
21
+ firstPosition: i,
22
+ nodes: [t],
23
+ };
24
+ }
25
+ else {
26
+ mut_grouped.primitives.nodes.push(t);
27
+ }
28
+ continue;
29
+ }
30
+ if (t.isKind(tsm.SyntaxKind.ArrayType) ||
31
+ t.isKind(tsm.SyntaxKind.TupleType) ||
32
+ isReadonlyTupleOrArrayTypeNode(t)) {
33
+ if (mut_grouped.arraysAndTuples === undefined) {
34
+ mut_grouped.arraysAndTuples = {
35
+ firstPosition: i,
36
+ nodes: [t],
37
+ };
38
+ }
39
+ else {
40
+ mut_grouped.arraysAndTuples.nodes.push(t);
41
+ }
42
+ continue;
43
+ }
44
+ if (t.isKind(tsm.SyntaxKind.TypeLiteral) ||
45
+ isReadonlyTypeReferenceNode(t)) {
46
+ if (mut_grouped.typeLiterals === undefined) {
47
+ mut_grouped.typeLiterals = {
48
+ firstPosition: i,
49
+ nodes: [t],
50
+ };
51
+ }
52
+ else {
53
+ mut_grouped.typeLiterals.nodes.push(t);
54
+ }
55
+ continue;
56
+ }
57
+ // intersections, unions, etc.
58
+ if (mut_grouped.others === undefined) {
59
+ mut_grouped.others = {
60
+ firstPosition: i,
61
+ nodes: [t],
62
+ };
63
+ }
64
+ else {
65
+ mut_grouped.others.nodes.push(t);
66
+ }
67
+ }
68
+ return mut_grouped;
69
+ };
70
+
71
+ export { groupUnionIntersectionTypes };
72
+ //# sourceMappingURL=group-union-types.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"group-union-types.mjs","sources":["../../../../src/functions/ast-transformers/readonly-transformer-helpers/group-union-types.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;AAYO,MAAM,2BAA2B,GAAG;AACzC;AACA,KAA8B,KAkC3B;AACH,IAAA,MAAM,WAAW,GAiCb;AACF,QAAA,UAAU,EAAE,SAAS;AACrB,QAAA,eAAe,EAAE,SAAS;AAC1B,QAAA,YAAY,EAAE,SAAS;AACvB,QAAA,MAAM,EAAE,SAAS;KAClB;AAED,IAAA,KAAK,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE;AACrC,QAAA,MAAM,CAAC,GAAG,iBAAiB,CAAC,EAAE,CAAC;;AAG/B,QAAA,IAAI,mBAAmB,CAAC,CAAC,CAAC,EAAE;AAC1B,YAAA,IAAI,WAAW,CAAC,UAAU,KAAK,SAAS,EAAE;gBACxC,WAAW,CAAC,UAAU,GAAG;AACvB,oBAAA,aAAa,EAAE,CAAC;oBAChB,KAAK,EAAE,CAAC,CAAC,CAAC;iBACF;YACZ;iBAAO;gBACL,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YACtC;YAEA;QACF;QAEA,IACE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC;YAClC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC;AAClC,YAAA,8BAA8B,CAAC,CAAC,CAAC,EACjC;AACA,YAAA,IAAI,WAAW,CAAC,eAAe,KAAK,SAAS,EAAE;gBAC7C,WAAW,CAAC,eAAe,GAAG;AAC5B,oBAAA,aAAa,EAAE,CAAC;oBAChB,KAAK,EAAE,CAAC,CAAC,CAAC;iBACF;YACZ;iBAAO;gBACL,WAAW,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YAC3C;YAEA;QACF;QAEA,IACE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC;AACpC,YAAA,2BAA2B,CAAC,CAAC,CAAC,EAC9B;AACA,YAAA,IAAI,WAAW,CAAC,YAAY,KAAK,SAAS,EAAE;gBAC1C,WAAW,CAAC,YAAY,GAAG;AACzB,oBAAA,aAAa,EAAE,CAAC;oBAChB,KAAK,EAAE,CAAC,CAAC,CAAC;iBACF;YACZ;iBAAO;gBACL,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YACxC;YAEA;QACF;;AAGA,QAAA,IAAI,WAAW,CAAC,MAAM,KAAK,SAAS,EAAE;YACpC,WAAW,CAAC,MAAM,GAAG;AACnB,gBAAA,aAAa,EAAE,CAAC;gBAChB,KAAK,EAAE,CAAC,CAAC,CAAC;aACF;QACZ;aAAO;YACL,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAClC;IACF;AAEA,IAAA,OAAO,WAAW;AACpB;;;;"}
@@ -0,0 +1,5 @@
1
+ export * from './compare-union-types.mjs';
2
+ export * from './constants.mjs';
3
+ export * from './group-union-types.mjs';
4
+ export * from './readonly-context.mjs';
5
+ //# sourceMappingURL=index.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../../../src/functions/ast-transformers/readonly-transformer-helpers/index.mts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC"}
@@ -0,0 +1,5 @@
1
+ export { compareUnionIntersectionTypes } from './compare-union-types.mjs';
2
+ export { invalidDeepReadonlyTypeName } from './constants.mjs';
3
+ export { groupUnionIntersectionTypes } from './group-union-types.mjs';
4
+ export { nextReadonlyContext } from './readonly-context.mjs';
5
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Controls whether to make a layer mutable during recursive transformation
3
+ * calls, to standardize by omitting readonly from inner `number[]` in types
4
+ * like `DeepReadonly<[string, number[]]>`.
5
+ *
6
+ * - `"DeepReadonly"`: Indicates that `node` is inside a type utility like
7
+ * `DeepReadonly` that recursively applies readonly.
8
+ * - `"Readonly"`: Indicates that `node` is directly under a `Readonly` type.
9
+ * - `"readonly"`: Indicates that `node` is directly under a `readonly` operator.
10
+ * - `"IndexedAccessObjectType"`: Indicates that `node` is directly under an
11
+ * IndexedAccessTypeNode.
12
+ * - `"none"`: All other cases
13
+ */
14
+ export type ReadonlyContext = Readonly<{
15
+ indexedAccessDepth: SafeUintWithSmallInt;
16
+ } & ({
17
+ type: 'DeepReadonly';
18
+ } | {
19
+ type: 'Readonly';
20
+ } | {
21
+ type: 'readonly';
22
+ } | {
23
+ type: 'none';
24
+ })>;
25
+ export declare const nextReadonlyContext: <const Curr extends ReadonlyContext, const Next extends ReadonlyContext["type"]>({ currentReadonlyContext: curr, nextReadonlyContextType: next, indexedAccessDepthChange, }: Readonly<{
26
+ currentReadonlyContext: Curr;
27
+ } & ({
28
+ nextReadonlyContextType: Next;
29
+ indexedAccessDepthChange: "decr" | "incr" | "keep" | "infinity";
30
+ } | {
31
+ nextReadonlyContextType: Extract<ReadonlyContext["type"], "DeepReadonly">;
32
+ indexedAccessDepthChange?: "infinity";
33
+ })>) => Readonly<{
34
+ type: Extract<ReadonlyContext["type"], "DeepReadonly"> | Next;
35
+ indexedAccessDepth: SafeUintWithSmallInt;
36
+ }>;
37
+ //# sourceMappingURL=readonly-context.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readonly-context.d.mts","sourceRoot":"","sources":["../../../../src/functions/ast-transformers/readonly-transformer-helpers/readonly-context.mts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,eAAe,GAAG,QAAQ,CACpC;IAAE,kBAAkB,EAAE,oBAAoB,CAAA;CAAE,GAAG,CAC3C;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,GACxB;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GACpB;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GACpB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CACnB,CACF,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,KAAK,CAAC,IAAI,SAAS,eAAe,EAClC,KAAK,CAAC,IAAI,SAAS,eAAe,CAAC,MAAM,CAAC,EAC1C,4FAIC,QAAQ,CACT;IACE,sBAAsB,EAAE,IAAI,CAAC;CAC9B,GAAG,CACA;IACE,uBAAuB,EAAE,IAAI,CAAC;IAC9B,wBAAwB,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;CACjE,GACD;IACE,uBAAuB,EAAE,OAAO,CAC9B,eAAe,CAAC,MAAM,CAAC,EACvB,cAAc,CACf,CAAC;IACF,wBAAwB,CAAC,EAAE,UAAU,CAAC;CACvC,CACJ,CACF,KAAG,QAAQ,CAAC;IACX,IAAI,EAAE,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,cAAc,CAAC,GAAG,IAAI,CAAC;IAC9D,kBAAkB,EAAE,oBAAoB,CAAC;CAC1C,CAcM,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { SafeUint, match } from 'ts-data-forge';
2
+
3
+ const nextReadonlyContext = ({ currentReadonlyContext: curr, nextReadonlyContextType: next, indexedAccessDepthChange = 'infinity', }) => curr.type === 'DeepReadonly'
4
+ ? {
5
+ type: 'DeepReadonly',
6
+ indexedAccessDepth: SafeUint.MAX_VALUE,
7
+ }
8
+ : {
9
+ type: next,
10
+ indexedAccessDepth: match(indexedAccessDepthChange, {
11
+ decr: SafeUint.sub(curr.indexedAccessDepth, 1),
12
+ keep: curr.indexedAccessDepth,
13
+ incr: SafeUint.add(curr.indexedAccessDepth, 1),
14
+ infinity: SafeUint.MAX_VALUE,
15
+ }),
16
+ };
17
+
18
+ export { nextReadonlyContext };
19
+ //# sourceMappingURL=readonly-context.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readonly-context.mjs","sources":["../../../../src/functions/ast-transformers/readonly-transformer-helpers/readonly-context.mts"],"sourcesContent":[null],"names":[],"mappings":";;AAwBO,MAAM,mBAAmB,GAAG,CAGjC,EACA,sBAAsB,EAAE,IAAI,EAC5B,uBAAuB,EAAE,IAAI,EAC7B,wBAAwB,GAAG,UAAU,GAiBtC,KAIC,IAAI,CAAC,IAAI,KAAK;AACZ,MAAE;AACE,QAAA,IAAI,EAAE,cAAc;QACpB,kBAAkB,EAAE,QAAQ,CAAC,SAAS;AACvC;AACH,MAAE;AACE,QAAA,IAAI,EAAE,IAAI;AACV,QAAA,kBAAkB,EAAE,KAAK,CAAC,wBAAwB,EAAE;YAClD,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;YAC9C,IAAI,EAAE,IAAI,CAAC,kBAAkB;YAC7B,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;YAC9C,QAAQ,EAAE,QAAQ,CAAC,SAAS;SAC7B,CAAC;;;;;"}
@@ -0,0 +1,7 @@
1
+ import { type TsMorphTransformer } from './types.mjs';
2
+ /**
3
+ * Replaces `Readonly<Record<string, unknown>>`, `Record<string, unknown>`,
4
+ * and index signatures `[k: string]: unknown` with `UnknownRecord`
5
+ */
6
+ export declare const replaceRecordWithUnknownRecordTransformer: () => TsMorphTransformer;
7
+ //# sourceMappingURL=replace-record-with-unknown-record.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replace-record-with-unknown-record.d.mts","sourceRoot":"","sources":["../../../src/functions/ast-transformers/replace-record-with-unknown-record.mts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEtD;;;GAGG;AACH,eAAO,MAAM,yCAAyC,QAChD,kBAkOH,CAAC"}
@@ -0,0 +1,173 @@
1
+ import { Arr } from 'ts-data-forge';
2
+ import * as tsm from 'ts-morph';
3
+
4
+ /* eslint-disable unicorn/consistent-function-scoping -- helper functions are kept inside for clarity */
5
+ /* eslint-disable @typescript-eslint/prefer-readonly-parameter-types -- ts-morph uses mutable types */
6
+ /**
7
+ * Replaces `Readonly<Record<string, unknown>>`, `Record<string, unknown>`,
8
+ * and index signatures `[k: string]: unknown` with `UnknownRecord`
9
+ */
10
+ const replaceRecordWithUnknownRecordTransformer = () => (sourceAst) => {
11
+ const processDeclarations = (container) => {
12
+ const typeAliases = container.getTypeAliases();
13
+ for (const typeAlias of typeAliases) {
14
+ const typeNode = typeAlias.getTypeNode();
15
+ if (typeNode === undefined)
16
+ continue;
17
+ visitTypeNode(typeNode);
18
+ }
19
+ const interfaces = container.getInterfaces();
20
+ for (const interfaceDecl of interfaces) {
21
+ // Check if interface has index signature [k: string]: unknown
22
+ const indexSignatures = interfaceDecl.getIndexSignatures();
23
+ const hasStringUnknownSignature = indexSignatures.some((sig) => {
24
+ const keyType = sig.getKeyType();
25
+ const returnType = sig.getReturnType();
26
+ return (keyType.getText() === 'string' && returnType.getText() === 'unknown');
27
+ });
28
+ // If it has the signature and no other members, replace entire interface with type alias
29
+ if (hasStringUnknownSignature) {
30
+ const properties = interfaceDecl.getProperties();
31
+ if (properties.length === 0 && indexSignatures.length === 1) {
32
+ // Replace interface with type alias
33
+ const interfaceName = interfaceDecl.getName();
34
+ interfaceDecl.replaceWithText(`export type ${interfaceName} = UnknownRecord;`);
35
+ continue;
36
+ }
37
+ }
38
+ // Otherwise, check properties for Record types
39
+ for (const property of interfaceDecl.getProperties()) {
40
+ const typeNode = property.getTypeNode();
41
+ if (typeNode === undefined)
42
+ continue;
43
+ visitTypeNode(typeNode);
44
+ }
45
+ }
46
+ };
47
+ const visitTypeNode = (node) => {
48
+ if (tsm.Node.isTypeReference(node)) {
49
+ // Check if it's Readonly<{ [k: string]: unknown }>
50
+ if (node.getTypeName().getText() === 'Readonly') {
51
+ const typeArgs = node.getTypeArguments();
52
+ if (typeArgs.length === 1) {
53
+ const typeArg = typeArgs[0];
54
+ if (tsm.Node.isTypeLiteral(typeArg)) {
55
+ const members = typeArg.getMembers();
56
+ const indexSigs = members.filter((m) => tsm.Node.isIndexSignatureDeclaration(m));
57
+ // Check if it has only one index signature [k: string]: unknown
58
+ if (members.length === 1 &&
59
+ Arr.isArrayOfLength(indexSigs, 1) &&
60
+ isStringUnknownIndexSignature(indexSigs[0])) {
61
+ node.replaceWithText('UnknownRecord');
62
+ return;
63
+ }
64
+ // Otherwise, recurse into the type literal to visit its properties
65
+ visitTypeNode(typeArg);
66
+ return;
67
+ }
68
+ }
69
+ }
70
+ replaceIfRecordUnknown(node);
71
+ }
72
+ // Check for type literal { [k: string]: unknown }
73
+ if (tsm.Node.isTypeLiteral(node)) {
74
+ const members = node.getMembers();
75
+ const indexSigs = members.filter((m) => tsm.Node.isIndexSignatureDeclaration(m));
76
+ // Check if it has only one index signature [k: string]: unknown
77
+ if (members.length === 1 &&
78
+ Arr.isArrayOfLength(indexSigs, 1) &&
79
+ isStringUnknownIndexSignature(indexSigs[0])) {
80
+ node.replaceWithText('UnknownRecord');
81
+ return;
82
+ }
83
+ }
84
+ // Recursively visit child type nodes
85
+ if (tsm.Node.isUnionTypeNode(node)) {
86
+ for (const typeNode of node.getTypeNodes()) {
87
+ visitTypeNode(typeNode);
88
+ }
89
+ }
90
+ else if (tsm.Node.isIntersectionTypeNode(node)) {
91
+ for (const typeNode of node.getTypeNodes()) {
92
+ visitTypeNode(typeNode);
93
+ }
94
+ }
95
+ else if (tsm.Node.isArrayTypeNode(node)) {
96
+ visitTypeNode(node.getElementTypeNode());
97
+ }
98
+ else if (tsm.Node.isTupleTypeNode(node)) {
99
+ for (const element of node.getElements()) {
100
+ visitTypeNode(element);
101
+ }
102
+ }
103
+ else if (tsm.Node.isParenthesizedTypeNode(node)) {
104
+ visitTypeNode(node.getTypeNode());
105
+ }
106
+ else if (tsm.Node.isTypeLiteral(node)) {
107
+ for (const member of node.getMembers()) {
108
+ if (tsm.Node.isPropertySignature(member)) {
109
+ const typeNode = member.getTypeNode();
110
+ if (typeNode !== undefined) {
111
+ visitTypeNode(typeNode);
112
+ }
113
+ }
114
+ else if (tsm.Node.isIndexSignatureDeclaration(member)) {
115
+ const typeNode = member.getReturnTypeNode();
116
+ if (typeNode !== undefined) {
117
+ visitTypeNode(typeNode);
118
+ }
119
+ }
120
+ }
121
+ }
122
+ };
123
+ const isStringUnknownIndexSignature = (sig) => {
124
+ const keyType = sig.getKeyTypeNode();
125
+ const returnType = sig.getReturnTypeNode();
126
+ return (keyType.getText() === 'string' && returnType?.getText() === 'unknown');
127
+ };
128
+ const replaceIfRecordUnknown = (node) => {
129
+ const typeName = node.getTypeName().getText();
130
+ switch (typeName) {
131
+ case 'Record': {
132
+ // Check if it's Record<string, unknown>
133
+ const typeArgs = node.getTypeArguments();
134
+ if (typeArgs.length === 2 &&
135
+ typeArgs[0]?.getText() === 'string' &&
136
+ typeArgs[1]?.getText() === 'unknown') {
137
+ node.replaceWithText('UnknownRecord');
138
+ }
139
+ break;
140
+ }
141
+ case 'Readonly': {
142
+ // Check if it's Readonly<Record<string, unknown>>
143
+ const typeArgs = node.getTypeArguments();
144
+ if (typeArgs.length === 1) {
145
+ const innerType = typeArgs[0];
146
+ if (innerType !== undefined &&
147
+ tsm.Node.isTypeReference(innerType)) {
148
+ const innerTypeName = innerType.getTypeName().getText();
149
+ if (innerTypeName === 'Record') {
150
+ const innerTypeArgs = innerType.getTypeArguments();
151
+ if (innerTypeArgs.length === 2 &&
152
+ innerTypeArgs[0]?.getText() === 'string' &&
153
+ innerTypeArgs[1]?.getText() === 'unknown') {
154
+ node.replaceWithText('UnknownRecord');
155
+ }
156
+ }
157
+ }
158
+ }
159
+ break;
160
+ }
161
+ }
162
+ };
163
+ // Process top-level declarations
164
+ processDeclarations(sourceAst);
165
+ // Process declarations inside namespaces/modules
166
+ const namespaces = sourceAst.getModules();
167
+ for (const namespace of namespaces) {
168
+ processDeclarations(namespace);
169
+ }
170
+ };
171
+
172
+ export { replaceRecordWithUnknownRecordTransformer };
173
+ //# sourceMappingURL=replace-record-with-unknown-record.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replace-record-with-unknown-record.mjs","sources":["../../../src/functions/ast-transformers/replace-record-with-unknown-record.mts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { type TsMorphTransformer } from './types.mjs';
2
+ export declare const transformSourceCode: (code: string, isTsx: boolean, transformers: readonly TsMorphTransformer[], debug?: boolean) => string;
3
+ //# sourceMappingURL=transform-source-code.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transform-source-code.d.mts","sourceRoot":"","sources":["../../../src/functions/ast-transformers/transform-source-code.mts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEtD,eAAO,MAAM,mBAAmB,GAC9B,MAAM,MAAM,EACZ,OAAO,OAAO,EACd,cAAc,SAAS,kBAAkB,EAAE,EAC3C,QAAO,OAAe,KACrB,MA4BF,CAAC"}
@@ -0,0 +1,27 @@
1
+ import * as tsm from 'ts-morph';
2
+ import { IGNORE_FILE_COMMENT_TEXT } from '../constants/ignore-comment-text.mjs';
3
+
4
+ const transformSourceCode = (code, isTsx, transformers, debug = false) => {
5
+ if (code.includes(IGNORE_FILE_COMMENT_TEXT)) {
6
+ if (debug) {
7
+ console.debug('skipped by ignore-file comment');
8
+ }
9
+ return code;
10
+ }
11
+ const project = new tsm.Project({
12
+ useInMemoryFileSystem: true,
13
+ compilerOptions: {
14
+ jsx: isTsx ? tsm.ts.JsxEmit.React : undefined,
15
+ target: tsm.ts.ScriptTarget.ESNext,
16
+ module: tsm.ts.ModuleKind.ESNext,
17
+ },
18
+ });
19
+ const sourceAst = project.createSourceFile(`source.${isTsx ? 'tsx' : 'ts'}`, code);
20
+ for (const transformer of transformers) {
21
+ transformer(sourceAst);
22
+ }
23
+ return sourceAst.getFullText();
24
+ };
25
+
26
+ export { transformSourceCode };
27
+ //# sourceMappingURL=transform-source-code.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transform-source-code.mjs","sources":["../../../src/functions/ast-transformers/transform-source-code.mts"],"sourcesContent":[null],"names":[],"mappings":";;;AAIO,MAAM,mBAAmB,GAAG,CACjC,IAAY,EACZ,KAAc,EACd,YAA2C,EAC3C,KAAA,GAAiB,KAAK,KACZ;AACV,IAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,wBAAwB,CAAC,EAAE;QAC3C,IAAI,KAAK,EAAE;AACT,YAAA,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC;QACjD;AAEA,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC;AAC9B,QAAA,qBAAqB,EAAE,IAAI;AAC3B,QAAA,eAAe,EAAE;AACf,YAAA,GAAG,EAAE,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,GAAG,SAAS;AAC7C,YAAA,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,YAAY,CAAC,MAAM;AAClC,YAAA,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM;AACjC,SAAA;AACF,KAAA,CAAC;IAEF,MAAM,SAAS,GAAG,OAAO,CAAC,gBAAgB,CACxC,CAAA,OAAA,EAAU,KAAK,GAAG,KAAK,GAAG,IAAI,EAAE,EAChC,IAAI,CACL;AAED,IAAA,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE;QACtC,WAAW,CAAC,SAAS,CAAC;IACxB;AAEA,IAAA,OAAO,SAAS,CAAC,WAAW,EAAE;AAChC;;;;"}
@@ -0,0 +1,3 @@
1
+ import type * as tsm from 'ts-morph';
2
+ export type TsMorphTransformer = (sourceFile: tsm.SourceFile) => void;
3
+ //# sourceMappingURL=types.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.mts","sourceRoot":"","sources":["../../../src/functions/ast-transformers/types.mts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,GAAG,MAAM,UAAU,CAAC;AAErC,MAAM,MAAM,kBAAkB,GAAG,CAE/B,UAAU,EAAE,GAAG,CAAC,UAAU,KACvB,IAAI,CAAC"}
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=types.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export declare const IGNORE_LINE_COMMENT_TEXT = "transformer-ignore-next-line";
2
+ export declare const IGNORE_FILE_COMMENT_TEXT = "/* transformer-ignore */";
3
+ //# sourceMappingURL=ignore-comment-text.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ignore-comment-text.d.mts","sourceRoot":"","sources":["../../../src/functions/constants/ignore-comment-text.mts"],"names":[],"mappings":"AAAA,eAAO,MAAM,wBAAwB,iCAAiC,CAAC;AAEvE,eAAO,MAAM,wBAAwB,6BAA6B,CAAC"}
@@ -0,0 +1,5 @@
1
+ const IGNORE_LINE_COMMENT_TEXT = 'transformer-ignore-next-line';
2
+ const IGNORE_FILE_COMMENT_TEXT = '/* transformer-ignore */';
3
+
4
+ export { IGNORE_FILE_COMMENT_TEXT, IGNORE_LINE_COMMENT_TEXT };
5
+ //# sourceMappingURL=ignore-comment-text.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ignore-comment-text.mjs","sources":["../../../src/functions/constants/ignore-comment-text.mts"],"sourcesContent":[null],"names":[],"mappings":"AAAO,MAAM,wBAAwB,GAAG;AAEjC,MAAM,wBAAwB,GAAG;;;;"}
@@ -0,0 +1,2 @@
1
+ export * from './ignore-comment-text.mjs';
2
+ //# sourceMappingURL=index.d.mts.map