@runtyped/type-compiler 1.0.20-alpha.3 → 1.0.20-alpha.4

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 (87) hide show
  1. package/README.md +3 -0
  2. package/dist/compiler-debug.js.map +1 -0
  3. package/dist/index.js.map +1 -0
  4. package/dist/{cjs/install-transformer.d.ts → install-transformer.d.ts} +1 -1
  5. package/dist/install-transformer.js +121 -0
  6. package/dist/install-transformer.js.map +1 -0
  7. package/dist/{esm/src → src}/compiler.js +71 -55
  8. package/dist/src/compiler.js.map +1 -0
  9. package/dist/src/config.js.map +1 -0
  10. package/dist/src/debug.js.map +1 -0
  11. package/dist/{esm/src → src}/loader.js +10 -10
  12. package/dist/src/loader.js.map +1 -0
  13. package/dist/src/plugin.js.map +1 -0
  14. package/dist/{esm/src → src}/reflection-ast.js +1 -0
  15. package/dist/src/reflection-ast.js.map +1 -0
  16. package/dist/{esm/src → src}/resolver.js +3 -0
  17. package/dist/src/resolver.js.map +1 -0
  18. package/dist/src/ts-types.js.map +1 -0
  19. package/install-transformer.ts +113 -53
  20. package/package.json +10 -11
  21. package/{deepkit-compiler-debug.js → runtyped-compiler-debug.js} +1 -1
  22. package/runtyped-type-install.js +5 -0
  23. package/src/compiler.ts +3 -2
  24. package/tsconfig.json +2 -2
  25. package/deepkit-type-install.js +0 -5
  26. package/dist/cjs/compiler-debug.js +0 -28
  27. package/dist/cjs/compiler-debug.js.map +0 -1
  28. package/dist/cjs/index.js +0 -36
  29. package/dist/cjs/index.js.map +0 -1
  30. package/dist/cjs/install-transformer.js +0 -77
  31. package/dist/cjs/install-transformer.js.map +0 -1
  32. package/dist/cjs/src/compiler.js +0 -2506
  33. package/dist/cjs/src/compiler.js.map +0 -1
  34. package/dist/cjs/src/config.js +0 -248
  35. package/dist/cjs/src/config.js.map +0 -1
  36. package/dist/cjs/src/debug.js +0 -26
  37. package/dist/cjs/src/debug.js.map +0 -1
  38. package/dist/cjs/src/loader.js +0 -55
  39. package/dist/cjs/src/loader.js.map +0 -1
  40. package/dist/cjs/src/plugin.js +0 -46
  41. package/dist/cjs/src/plugin.js.map +0 -1
  42. package/dist/cjs/src/reflection-ast.js +0 -335
  43. package/dist/cjs/src/reflection-ast.js.map +0 -1
  44. package/dist/cjs/src/resolver.js +0 -88
  45. package/dist/cjs/src/resolver.js.map +0 -1
  46. package/dist/cjs/src/ts-types.js +0 -6
  47. package/dist/cjs/src/ts-types.js.map +0 -1
  48. package/dist/esm/compiler-debug.d.ts +0 -1
  49. package/dist/esm/compiler-debug.js.map +0 -1
  50. package/dist/esm/index.d.ts +0 -7
  51. package/dist/esm/index.js.map +0 -1
  52. package/dist/esm/install-transformer.d.ts +0 -7
  53. package/dist/esm/install-transformer.js +0 -75
  54. package/dist/esm/install-transformer.js.map +0 -1
  55. package/dist/esm/src/compiler.d.ts +0 -313
  56. package/dist/esm/src/compiler.js.map +0 -1
  57. package/dist/esm/src/config.d.ts +0 -83
  58. package/dist/esm/src/config.js.map +0 -1
  59. package/dist/esm/src/debug.d.ts +0 -9
  60. package/dist/esm/src/debug.js.map +0 -1
  61. package/dist/esm/src/loader.d.ts +0 -18
  62. package/dist/esm/src/loader.js.map +0 -1
  63. package/dist/esm/src/plugin.d.ts +0 -14
  64. package/dist/esm/src/plugin.js.map +0 -1
  65. package/dist/esm/src/reflection-ast.d.ts +0 -46
  66. package/dist/esm/src/reflection-ast.js.map +0 -1
  67. package/dist/esm/src/resolver.d.ts +0 -27
  68. package/dist/esm/src/resolver.js.map +0 -1
  69. package/dist/esm/src/ts-types.d.ts +0 -17
  70. package/dist/esm/src/ts-types.js.map +0 -1
  71. package/tsconfig.esm.json +0 -16
  72. /package/dist/{cjs/compiler-debug.d.ts → compiler-debug.d.ts} +0 -0
  73. /package/dist/{esm/compiler-debug.js → compiler-debug.js} +0 -0
  74. /package/dist/{cjs/index.d.ts → index.d.ts} +0 -0
  75. /package/dist/{esm/index.js → index.js} +0 -0
  76. /package/dist/{cjs/src → src}/compiler.d.ts +0 -0
  77. /package/dist/{cjs/src → src}/config.d.ts +0 -0
  78. /package/dist/{esm/src → src}/config.js +0 -0
  79. /package/dist/{cjs/src → src}/debug.d.ts +0 -0
  80. /package/dist/{esm/src → src}/debug.js +0 -0
  81. /package/dist/{cjs/src → src}/loader.d.ts +0 -0
  82. /package/dist/{cjs/src → src}/plugin.d.ts +0 -0
  83. /package/dist/{esm/src → src}/plugin.js +0 -0
  84. /package/dist/{cjs/src → src}/reflection-ast.d.ts +0 -0
  85. /package/dist/{cjs/src → src}/resolver.d.ts +0 -0
  86. /package/dist/{cjs/src → src}/ts-types.d.ts +0 -0
  87. /package/dist/{esm/src → src}/ts-types.js +0 -0
@@ -1,335 +0,0 @@
1
- "use strict";
2
- /*
3
- * Runtyped Framework
4
- * Copyright (c) Deepkit UG, Marc J. Schmidt
5
- * Copyright (c) Jacopo Scazzosi
6
- *
7
- * This program is free software: you can redistribute it and/or modify
8
- * it under the terms of the MIT License.
9
- *
10
- * You should have received a copy of the MIT License along with this program.
11
- */
12
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
13
- if (k2 === undefined) k2 = k;
14
- var desc = Object.getOwnPropertyDescriptor(m, k);
15
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
16
- desc = { enumerable: true, get: function() { return m[k]; } };
17
- }
18
- Object.defineProperty(o, k2, desc);
19
- }) : (function(o, m, k, k2) {
20
- if (k2 === undefined) k2 = k;
21
- o[k2] = m[k];
22
- }));
23
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
24
- Object.defineProperty(o, "default", { enumerable: true, value: v });
25
- }) : function(o, v) {
26
- o["default"] = v;
27
- });
28
- var __importStar = (this && this.__importStar) || (function () {
29
- var ownKeys = function(o) {
30
- ownKeys = Object.getOwnPropertyNames || function (o) {
31
- var ar = [];
32
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
33
- return ar;
34
- };
35
- return ownKeys(o);
36
- };
37
- return function (mod) {
38
- if (mod && mod.__esModule) return mod;
39
- var result = {};
40
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
41
- __setModuleDefault(result, mod);
42
- return result;
43
- };
44
- })();
45
- Object.defineProperty(exports, "__esModule", { value: true });
46
- exports.NodeConverter = void 0;
47
- exports.getIdentifierName = getIdentifierName;
48
- exports.getEscapedText = getEscapedText;
49
- exports.findSourceFile = findSourceFile;
50
- exports.joinQualifiedName = joinQualifiedName;
51
- exports.getCommentOfNode = getCommentOfNode;
52
- exports.parseJSDocAttributeFromText = parseJSDocAttributeFromText;
53
- exports.extractJSDocAttribute = extractJSDocAttribute;
54
- exports.getPropertyName = getPropertyName;
55
- exports.getNameAsString = getNameAsString;
56
- exports.hasModifier = hasModifier;
57
- exports.isNodeWithLocals = isNodeWithLocals;
58
- exports.getGlobalsOfSourceFile = getGlobalsOfSourceFile;
59
- exports.ensureImportIsEmitted = ensureImportIsEmitted;
60
- exports.serializeEntityNameAsExpression = serializeEntityNameAsExpression;
61
- const typescript_1 = __importStar(require("typescript"));
62
- const ts_clone_node_1 = require("@marcj/ts-clone-node");
63
- const { isArrowFunction, isComputedPropertyName, isIdentifier, isNamedImports, isNumericLiteral, isPrivateIdentifier, isStringLiteral, isStringLiteralLike, setOriginalNode, getLeadingCommentRanges, isNoSubstitutionTemplateLiteral, NodeFlags, SyntaxKind, } = typescript_1.default;
64
- function is__String(value) {
65
- return typeof value === 'string';
66
- }
67
- function getIdentifierName(node) {
68
- if (is__String(node))
69
- return node;
70
- if (isIdentifier(node) || isPrivateIdentifier(node)) {
71
- return typescript_1.default.unescapeLeadingUnderscores(node.escapedText);
72
- }
73
- if (isStringLiteral(node))
74
- return node.text;
75
- return '';
76
- }
77
- function getEscapedText(node) {
78
- if (is__String(node))
79
- return node;
80
- if (isIdentifier(node) || isPrivateIdentifier(node))
81
- return node.escapedText;
82
- return getIdentifierName(node);
83
- }
84
- function findSourceFile(node) {
85
- if (node.kind === SyntaxKind.SourceFile)
86
- return node;
87
- let current = node.parent;
88
- while (current && current.kind !== SyntaxKind.SourceFile) {
89
- current = current.parent;
90
- }
91
- return current;
92
- }
93
- function joinQualifiedName(name) {
94
- if (isIdentifier(name))
95
- return getIdentifierName(name);
96
- return joinQualifiedName(name.left) + '_' + getIdentifierName(name.right);
97
- }
98
- function getCommentOfNode(sourceFile, node) {
99
- const comment = getLeadingCommentRanges(sourceFile.text, node.pos);
100
- if (!comment)
101
- return;
102
- return comment.map(v => sourceFile.text.substring(v.pos, v.end)).join('\n');
103
- }
104
- function parseJSDocAttributeFromText(comment, attribute) {
105
- // no regex
106
- const index = comment.indexOf('@' + attribute + ' ');
107
- if (index === -1) {
108
- let start = 0;
109
- while (true) {
110
- const withoutContent = comment.indexOf('@' + attribute, start);
111
- if (withoutContent === -1)
112
- return undefined;
113
- //make sure next character is space or end of comment
114
- const nextCharacter = comment[withoutContent + attribute.length + 1];
115
- if (!nextCharacter || nextCharacter === ' ' || nextCharacter === '\n' || nextCharacter === '\r' || nextCharacter === '\t') {
116
- return '';
117
- }
118
- start = withoutContent + attribute.length + 1;
119
- }
120
- return undefined;
121
- }
122
- const start = index + attribute.length + 2;
123
- // end is either next attribute @ or end of comment.
124
- const nextAttribute = comment.indexOf('@', start);
125
- const endOfComment = comment.indexOf('*/', start);
126
- const end = nextAttribute === -1 ? endOfComment : Math.min(nextAttribute, endOfComment);
127
- const content = comment.substring(start, end).trim();
128
- // make sure multiline comments are supported, and each line is trimmed and `\s\s\s\*` removed
129
- return content.split('\n').map(v => {
130
- const indexOfStar = v.indexOf('*');
131
- if (indexOfStar === -1)
132
- return v.trim();
133
- return v.substring(indexOfStar + 1).trim();
134
- }).join('\n');
135
- }
136
- function extractJSDocAttribute(sourceFile, node, attribute) {
137
- // in TypeScript 5.3 they made JSDoc parsing optional and disabled by default.
138
- // we need to read the comments manually and then parse @{attribute} {value} manually.
139
- // we need reference to SourceFile, since Node.getSourceFile() although available in types,
140
- // is not available at runtime sometimes (works in tests, but fails with tsc).
141
- if (!node)
142
- return undefined;
143
- const comment = getCommentOfNode(sourceFile, node);
144
- if (!comment)
145
- return undefined;
146
- return parseJSDocAttributeFromText(comment, attribute);
147
- }
148
- function getPropertyName(f, node) {
149
- if (!node)
150
- return '';
151
- if (isIdentifier(node))
152
- return getIdentifierName(node);
153
- if (isStringLiteral(node))
154
- return node.text;
155
- if (isNumericLiteral(node))
156
- return +node.text;
157
- if (isNoSubstitutionTemplateLiteral(node))
158
- return node.text;
159
- if (isComputedPropertyName(node)) {
160
- return f.createArrowFunction(undefined, undefined, [], undefined, undefined, node.expression);
161
- }
162
- if (isPrivateIdentifier(node))
163
- return getIdentifierName(node);
164
- return '';
165
- }
166
- function getNameAsString(node) {
167
- if (!node)
168
- return '';
169
- if (isIdentifier(node))
170
- return getIdentifierName(node);
171
- if (isStringLiteral(node))
172
- return node.text;
173
- if (isNumericLiteral(node))
174
- return node.text;
175
- if ((0, typescript_1.isBigIntLiteral)(node))
176
- return node.text;
177
- if (isNoSubstitutionTemplateLiteral(node))
178
- return node.text;
179
- if (isComputedPropertyName(node)) {
180
- if (isStringLiteralLike(node) || isNumericLiteral(node))
181
- return node.text;
182
- return '';
183
- }
184
- if (isPrivateIdentifier(node))
185
- return getIdentifierName(node);
186
- return joinQualifiedName(node);
187
- }
188
- function hasModifier(node, modifier) {
189
- if (!node.modifiers)
190
- return false;
191
- return node.modifiers.some(v => v.kind === modifier);
192
- }
193
- const cloneHook = (node, payload) => {
194
- if (isIdentifier(node)) {
195
- //ts-clone-node wants to read `node.text` which does not exist. we hook into it and provide the correct value.
196
- return {
197
- text: () => {
198
- return getIdentifierName(node);
199
- },
200
- };
201
- }
202
- return;
203
- };
204
- class NodeConverter {
205
- constructor(f) {
206
- this.f = f;
207
- }
208
- toExpression(node) {
209
- if (node === undefined)
210
- return this.f.createIdentifier('undefined');
211
- if (Array.isArray(node)) {
212
- return this.f.createArrayLiteralExpression(this.f.createNodeArray(node.map(v => this.toExpression(v))));
213
- }
214
- if ('string' === typeof node)
215
- return this.f.createStringLiteral(node, true);
216
- if ('number' === typeof node)
217
- return this.f.createNumericLiteral(node);
218
- if ('bigint' === typeof node)
219
- return this.f.createBigIntLiteral(String(node));
220
- if ('boolean' === typeof node)
221
- return node ? this.f.createTrue() : this.f.createFalse();
222
- if (node.pos === -1 && node.end === -1 && node.parent === undefined) {
223
- if (isArrowFunction(node)) {
224
- if (node.body.pos === -1 && node.body.end === -1 && node.body.parent === undefined)
225
- return node;
226
- return this.f.createArrowFunction(node.modifiers, node.typeParameters, node.parameters, node.type, node.equalsGreaterThanToken, this.toExpression(node.body));
227
- }
228
- return node;
229
- }
230
- switch (node.kind) {
231
- case SyntaxKind.Identifier:
232
- return finish(node, this.f.createIdentifier(getIdentifierName(node)));
233
- case SyntaxKind.StringLiteral:
234
- return finish(node, this.f.createStringLiteral(node.text));
235
- case SyntaxKind.NumericLiteral:
236
- return finish(node, this.f.createNumericLiteral(node.text));
237
- case SyntaxKind.BigIntLiteral:
238
- return finish(node, this.f.createBigIntLiteral(node.text));
239
- case SyntaxKind.TrueKeyword:
240
- return finish(node, this.f.createTrue());
241
- case SyntaxKind.FalseKeyword:
242
- return finish(node, this.f.createFalse());
243
- }
244
- //todo: ts-node-clone broke with ts 4.8,
245
- // => TypeError: Cannot read properties of undefined (reading 'emitNode')
246
- // which is probably due a broken node clone. We need to figure out which node it is
247
- // and see what the issue is. since ts-node-clone is not really maintained anymore,
248
- // we need to fork it
249
- try {
250
- return (0, ts_clone_node_1.cloneNode)(node, {
251
- preserveComments: false,
252
- factory: this.f,
253
- setOriginalNodes: true,
254
- preserveSymbols: true,
255
- setParents: true,
256
- hook: cloneHook,
257
- });
258
- }
259
- catch (error) {
260
- console.error('could not clone node', node);
261
- throw error;
262
- }
263
- }
264
- }
265
- exports.NodeConverter = NodeConverter;
266
- function isExternalOrCommonJsModule(file) {
267
- //both attributes are internal and not yet public
268
- return (file.externalModuleIndicator || file.commonJsModuleIndicator) !== undefined;
269
- }
270
- function isNodeWithLocals(node) {
271
- return 'locals' in node;
272
- }
273
- //logic copied from typescript
274
- function getGlobalsOfSourceFile(file) {
275
- if (file.redirectInfo)
276
- return;
277
- if (!isNodeWithLocals(file))
278
- return;
279
- if (!isExternalOrCommonJsModule(file))
280
- return file.locals;
281
- if (file.jsGlobalAugmentations)
282
- return file.jsGlobalAugmentations;
283
- if (file.symbol && file.symbol.globalExports)
284
- return file.symbol.globalExports;
285
- }
286
- /**
287
- * For imports that can removed (like a class import only used as type only, like `p: Model[]`) we have
288
- * to modify the import so TS does not remove it.
289
- */
290
- function ensureImportIsEmitted(importDeclaration, specifierName) {
291
- if (specifierName && importDeclaration.importClause && importDeclaration.importClause.namedBindings) {
292
- // const binding = importDeclaration.importClause.namedBindings;
293
- if (isNamedImports(importDeclaration.importClause.namedBindings)) {
294
- for (const element of importDeclaration.importClause.namedBindings.elements) {
295
- if (element.name.escapedText === specifierName.escapedText) {
296
- element.flags |= NodeFlags.Synthesized;
297
- return;
298
- }
299
- }
300
- }
301
- }
302
- importDeclaration.flags |= NodeFlags.Synthesized;
303
- }
304
- /**
305
- * Serializes an entity name as an expression for decorator type metadata.
306
- *
307
- * @param node The entity name to serialize.
308
- */
309
- function serializeEntityNameAsExpression(f, node) {
310
- switch (node.kind) {
311
- case SyntaxKind.Identifier:
312
- return finish(node, f.createIdentifier(getIdentifierName(node)));
313
- case SyntaxKind.QualifiedName:
314
- return finish(node, serializeQualifiedNameAsExpression(f, node));
315
- }
316
- return node;
317
- }
318
- /**
319
- * Serializes an qualified name as an expression for decorator type metadata.
320
- *
321
- * @param node The qualified name to serialize.
322
- * @param useFallback A value indicating whether to use logical operators to test for the
323
- * qualified name at runtime.
324
- */
325
- function serializeQualifiedNameAsExpression(f, node) {
326
- return f.createPropertyAccessExpression(serializeEntityNameAsExpression(f, node.left), node.right);
327
- }
328
- function finish(oldNode, newNode) {
329
- setOriginalNode(newNode, oldNode);
330
- newNode._original = newNode.original;
331
- newNode._symbol = oldNode._symbol ?? oldNode.symbol;
332
- newNode.symbol = newNode._symbol;
333
- return newNode;
334
- }
335
- //# sourceMappingURL=reflection-ast.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"reflection-ast.js","sourceRoot":"","sources":["../../../src/reflection-ast.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoDH,8CAOC;AAED,wCAIC;AAED,wCAOC;AAED,8CAGC;AAED,4CAKC;AAED,kEA+BC;AAED,sDAUC;AAED,0CAaC;AAED,0CAcC;AAED,kCAGC;AA+ED,4CAEC;AAGD,wDAMC;AAMD,sDAcC;AAQD,0EAQC;AAnSD,yDAwBoB;AACpB,wDAA+E;AAG/E,MAAM,EACF,eAAe,EACf,sBAAsB,EACtB,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,uBAAuB,EACvB,+BAA+B,EAC/B,SAAS,EACT,UAAU,GACb,GAAG,oBAAE,CAAC;AAIP,SAAS,UAAU,CAAC,KAAU;IAC1B,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;AACrC,CAAC;AAED,SAAgB,iBAAiB,CAAC,IAA+D;IAC7F,IAAI,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,IAAc,CAAC;IAC5C,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;QAClD,OAAO,oBAAE,CAAC,0BAA0B,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC3D,CAAC;IACD,IAAI,eAAe,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC;IAC5C,OAAO,EAAE,CAAC;AACd,CAAC;AAED,SAAgB,cAAc,CAAC,IAA+D;IAC1F,IAAI,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,IAAc,CAAC;IAC5C,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,mBAAmB,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC,WAAqB,CAAC;IACvF,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC;AACnC,CAAC;AAED,SAAgB,cAAc,CAAC,IAAU;IACrC,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,UAAU;QAAE,OAAO,IAAkB,CAAC;IACnE,IAAI,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC;IAC1B,OAAO,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,UAAU,CAAC,UAAU,EAAE,CAAC;QACvD,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAC7B,CAAC;IACD,OAAO,OAAqB,CAAC;AACjC,CAAC;AAED,SAAgB,iBAAiB,CAAC,IAAgB;IAC9C,IAAI,YAAY,CAAC,IAAI,CAAC;QAAE,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACvD,OAAO,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,SAAgB,gBAAgB,CAAC,UAAsB,EAAE,IAAU;IAC/D,MAAM,OAAO,GAAG,uBAAuB,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IACnE,IAAI,CAAC,OAAO;QAAE,OAAO;IAErB,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChF,CAAC;AAED,SAAgB,2BAA2B,CAAC,OAAe,EAAE,SAAiB;IAC1E,WAAW;IACX,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,GAAG,SAAS,GAAG,GAAG,CAAC,CAAC;IACrD,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;QACf,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,OAAO,IAAI,EAAE,CAAC;YACV,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,GAAG,SAAS,EAAE,KAAK,CAAC,CAAC;YAC/D,IAAI,cAAc,KAAK,CAAC,CAAC;gBAAE,OAAO,SAAS,CAAC;YAC5C,qDAAqD;YACrD,MAAM,aAAa,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACrE,IAAI,CAAC,aAAa,IAAI,aAAa,KAAK,GAAG,IAAI,aAAa,KAAK,IAAI,IAAI,aAAa,KAAK,IAAI,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;gBACxH,OAAO,EAAE,CAAC;YACd,CAAC;YACD,KAAK,GAAG,cAAc,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,MAAM,KAAK,GAAG,KAAK,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IAC3C,oDAAoD;IACpD,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAClD,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAClD,MAAM,GAAG,GAAG,aAAa,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;IACxF,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAErD,8FAA8F;IAC9F,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QAC/B,MAAM,WAAW,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,WAAW,KAAK,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;QACxC,OAAO,CAAC,CAAC,SAAS,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/C,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClB,CAAC;AAED,SAAgB,qBAAqB,CAAC,UAAsB,EAAE,IAAsB,EAAE,SAAiB;IACnG,8EAA8E;IAC9E,sFAAsF;IACtF,2FAA2F;IAC3F,8EAA8E;IAC9E,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,MAAM,OAAO,GAAG,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACnD,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAE/B,OAAO,2BAA2B,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;AAC3D,CAAC;AAED,SAAgB,eAAe,CAAC,CAAc,EAAE,IAAmB;IAC/D,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IAErB,IAAI,YAAY,CAAC,IAAI,CAAC;QAAE,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACvD,IAAI,eAAe,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC;IAC5C,IAAI,gBAAgB,CAAC,IAAI,CAAC;QAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;IAC9C,IAAI,+BAA+B,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC;IAC5D,IAAI,sBAAsB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAClG,CAAC;IACD,IAAI,mBAAmB,CAAC,IAAI,CAAC;QAAE,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAE9D,OAAO,EAAE,CAAC;AACd,CAAC;AAED,SAAgB,eAAe,CAAC,IAAmC;IAC/D,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,IAAI,YAAY,CAAC,IAAI,CAAC;QAAE,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACvD,IAAI,eAAe,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC;IAC5C,IAAI,gBAAgB,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC;IAC7C,IAAI,IAAA,4BAAe,EAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC;IAC5C,IAAI,+BAA+B,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC;IAC5D,IAAI,sBAAsB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,IAAI,mBAAmB,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,IAAI,CAAC;YAAE,OAAQ,IAA2C,CAAC,IAAI,CAAC;QAClH,OAAO,EAAE,CAAC;IACd,CAAC;IACD,IAAI,mBAAmB,CAAC,IAAI,CAAC;QAAE,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAE9D,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC;AACnC,CAAC;AAED,SAAgB,WAAW,CAAC,IAAoD,EAAE,QAAuB;IACrG,IAAI,CAAC,IAAI,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IAClC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,SAAS,GAAG,CAAiB,IAAO,EAAE,OAA0B,EAAgC,EAAE;IACpG,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;QACrB,8GAA8G;QAC9G,OAAO;YACH,IAAI,EAAE,GAAG,EAAE;gBACP,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACnC,CAAC;SACG,CAAC;IACb,CAAC;IACD,OAAO;AACX,CAAC,CAAC;AAEF,MAAa,aAAa;IACtB,YAAsB,CAAc;QAAd,MAAC,GAAD,CAAC,CAAa;IACpC,CAAC;IAED,YAAY,CAA8C,IAAQ;QAC9D,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;QAEpE,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC,CAAC,CAAC,4BAA4B,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAA0B,CAAC,CAAC;QACrI,CAAC;QAED,IAAI,QAAQ,KAAK,OAAO,IAAI;YAAE,OAAO,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC5E,IAAI,QAAQ,KAAK,OAAO,IAAI;YAAE,OAAO,IAAI,CAAC,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QACvE,IAAI,QAAQ,KAAK,OAAO,IAAI;YAAE,OAAO,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9E,IAAI,SAAS,KAAK,OAAO,IAAI;YAAE,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QAExF,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAClE,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxB,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS;oBAAE,OAAO,IAAI,CAAC;gBAChG,OAAO,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,sBAAsB,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAkB,CAAC,CAAC,CAAC;YAChL,CAAC;YACD,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAChB,KAAK,UAAU,CAAC,UAAU;gBACtB,OAAO,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,IAAkB,CAAC,CAAC,CAAC,CAAC;YACxF,KAAK,UAAU,CAAC,aAAa;gBACzB,OAAO,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAE,IAAsB,CAAC,IAAI,CAAC,CAAC,CAAC;YAClF,KAAK,UAAU,CAAC,cAAc;gBAC1B,OAAO,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,oBAAoB,CAAE,IAAuB,CAAC,IAAI,CAAC,CAAC,CAAC;YACpF,KAAK,UAAU,CAAC,aAAa;gBACzB,OAAO,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAE,IAAsB,CAAC,IAAI,CAAC,CAAC,CAAC;YAClF,KAAK,UAAU,CAAC,WAAW;gBACvB,OAAO,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;YAC7C,KAAK,UAAU,CAAC,YAAY;gBACxB,OAAO,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QAClD,CAAC;QAED,wCAAwC;QACxC,yEAAyE;QACzE,oFAAoF;QACpF,mFAAmF;QACnF,qBAAqB;QACrB,IAAI,CAAC;YACD,OAAO,IAAA,yBAAW,EAAC,IAAI,EAAE;gBACrB,gBAAgB,EAAE,KAAK;gBACvB,OAAO,EAAE,IAAI,CAAC,CAAC;gBACf,gBAAgB,EAAE,IAAI;gBACtB,eAAe,EAAE,IAAI;gBACrB,UAAU,EAAE,IAAI;gBAChB,IAAI,EAAE,SAAS;aAClB,CAAe,CAAC;QACrB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,IAAI,CAAC,CAAC;YAC5C,MAAM,KAAK,CAAC;QAChB,CAAC;IAEL,CAAC;CACJ;AA1DD,sCA0DC;AAED,SAAS,0BAA0B,CAAC,IAAgB;IAChD,iDAAiD;IACjD,OAAO,CAAC,IAAI,CAAC,uBAAuB,IAAI,IAAI,CAAC,uBAAuB,CAAC,KAAK,SAAS,CAAC;AACxF,CAAC;AAED,SAAgB,gBAAgB,CAAC,IAAU;IACvC,OAAO,QAAQ,IAAI,IAAI,CAAC;AAC5B,CAAC;AAED,8BAA8B;AAC9B,SAAgB,sBAAsB,CAAC,IAAgB;IACnD,IAAI,IAAI,CAAC,YAAY;QAAE,OAAO;IAC9B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;QAAE,OAAO;IACpC,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC,MAAM,CAAC;IAC1D,IAAI,IAAI,CAAC,qBAAqB;QAAE,OAAO,IAAI,CAAC,qBAAqB,CAAC;IAClE,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa;QAAE,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;AACnF,CAAC;AAED;;;GAGG;AACH,SAAgB,qBAAqB,CAAC,iBAAqD,EAAE,aAA0B;IACnH,IAAI,aAAa,IAAI,iBAAiB,CAAC,YAAY,IAAI,iBAAiB,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC;QAClG,gEAAgE;QAChE,IAAI,cAAc,CAAC,iBAAiB,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE,CAAC;YAC/D,KAAK,MAAM,OAAO,IAAI,iBAAiB,CAAC,YAAY,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;gBAC1E,IAAI,OAAO,CAAC,IAAI,CAAC,WAAW,KAAK,aAAa,CAAC,WAAW,EAAE,CAAC;oBACxD,OAAO,CAAC,KAAa,IAAI,SAAS,CAAC,WAAW,CAAC;oBAChD,OAAO;gBACX,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAEA,iBAAiB,CAAC,KAAa,IAAI,SAAS,CAAC,WAAW,CAAC;AAC9D,CAAC;AAGD;;;;GAIG;AACH,SAAgB,+BAA+B,CAAC,CAAc,EAAE,IAAgB;IAC5E,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAChB,KAAK,UAAU,CAAC,UAAU;YACtB,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACrE,KAAK,UAAU,CAAC,aAAa;YACzB,OAAO,MAAM,CAAC,IAAI,EAAE,kCAAkC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IACzE,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAID;;;;;;GAMG;AACH,SAAS,kCAAkC,CAAC,CAAc,EAAE,IAAmB;IAC3E,OAAO,CAAC,CAAC,8BAA8B,CAAC,+BAA+B,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AACvG,CAAC;AAYD,SAAS,MAAM,CAAqB,OAAiB,EAAE,OAAU;IAC7D,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAClC,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC;IAErC,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;IACpD,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IACjC,OAAO,OAAO,CAAC;AACnB,CAAC"}
@@ -1,88 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Resolver = void 0;
7
- exports.patternMatch = patternMatch;
8
- const micromatch_1 = __importDefault(require("micromatch"));
9
- const typescript_1 = __importDefault(require("typescript"));
10
- const { createSourceFile, resolveModuleName, isStringLiteral, JSDocParsingMode, ScriptTarget } = typescript_1.default;
11
- function patternMatch(path, patterns, base) {
12
- const include = patterns.filter(pattern => pattern[0] !== '!');
13
- const exclude = patterns.filter(pattern => pattern[0] === '!').map(pattern => pattern.substring(1));
14
- return micromatch_1.default.isMatch(path, include, {
15
- ignore: exclude,
16
- });
17
- }
18
- /**
19
- * A utility to resolve a module path and its declaration.
20
- *
21
- * It automatically reads a SourceFile, binds and caches it.
22
- */
23
- class Resolver {
24
- constructor(compilerOptions, host, sourceFiles) {
25
- this.compilerOptions = compilerOptions;
26
- this.host = host;
27
- this.sourceFiles = sourceFiles;
28
- }
29
- resolve(from, importOrExportNode) {
30
- const moduleSpecifier = importOrExportNode.moduleSpecifier;
31
- if (!moduleSpecifier)
32
- return;
33
- if (!isStringLiteral(moduleSpecifier))
34
- return;
35
- return this.resolveSourceFile(from, moduleSpecifier);
36
- }
37
- resolveImpl(modulePath, sourceFile) {
38
- if (this.host.resolveModuleNameLiterals !== undefined) {
39
- const results = this.host.resolveModuleNameLiterals([modulePath], sourceFile.fileName,
40
- /*reusedNames*/ undefined, this.compilerOptions, sourceFile, undefined);
41
- if (results[0])
42
- return results[0].resolvedModule;
43
- return;
44
- }
45
- if (this.host.resolveModuleNames !== undefined) {
46
- return this.host.resolveModuleNames([modulePath.text], sourceFile.fileName,
47
- /*reusedNames*/ undefined,
48
- /*redirectedReference*/ undefined, this.compilerOptions)[0];
49
- }
50
- const result = resolveModuleName(modulePath.text, sourceFile.fileName, this.compilerOptions, this.host);
51
- return result.resolvedModule;
52
- }
53
- /**
54
- * Tries to resolve the .ts/d.ts file path for a given module path.
55
- * Scans relative paths. Looks into package.json "types" and "exports" (with new 4.7 support)
56
- *
57
- * @param sourceFile the SourceFile of the file that contains the import. modulePath is relative to that.
58
- * @param modulePath the x in 'from x'.
59
- */
60
- resolveSourceFile(sourceFile, modulePath) {
61
- const result = this.resolveImpl(modulePath, sourceFile);
62
- if (!result)
63
- return;
64
- // only .ts, .tsx and .d.ts files are supported
65
- if (!result.resolvedFileName.endsWith('.ts')
66
- && !result.resolvedFileName.endsWith('.tsx')
67
- && !result.resolvedFileName.endsWith('.d.ts')) {
68
- return;
69
- }
70
- const fileName = result.resolvedFileName;
71
- if (this.sourceFiles[fileName])
72
- return this.sourceFiles[fileName];
73
- const source = this.host.readFile(result.resolvedFileName);
74
- if (!source)
75
- return;
76
- const moduleSourceFile = (this.sourceFiles[fileName] = createSourceFile(fileName, source, {
77
- languageVersion: this.compilerOptions.target || ScriptTarget.ES2018,
78
- // JSDocParsingMode is not available in TS < 5.3
79
- jsDocParsingMode: JSDocParsingMode ? JSDocParsingMode.ParseNone : undefined,
80
- }, true));
81
- this.sourceFiles[fileName] = moduleSourceFile;
82
- //@ts-ignore
83
- typescript_1.default.bindSourceFile(moduleSourceFile, this.compilerOptions);
84
- return moduleSourceFile;
85
- }
86
- }
87
- exports.Resolver = Resolver;
88
- //# sourceMappingURL=resolver.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../../src/resolver.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- "use strict";
2
- //Contains types and makes certain properties available that are currently marked as @internal and thus not part of the public TS API.
3
- //Certain interfaces do not contain all properties/methods from all internal TS types, because we add only those we actually use.
4
- //This helps to identity which types are actually needed and maybe can be brought up to the TS team as candidates to make them public.
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- //# sourceMappingURL=ts-types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ts-types.js","sourceRoot":"","sources":["../../../src/ts-types.ts"],"names":[],"mappings":";AAAA,sIAAsI;AACtI,iIAAiI;AACjI,sIAAsI"}
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- {"version":3,"file":"compiler-debug.js","sourceRoot":"","sources":["../../compiler-debug.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAOlC,SAAS,cAAc,CAAC,IAAc;IAClC,MAAM,MAAM,GAAc;QACtB,IAAI,EAAE,EAAE;KACX,CAAC;IAEF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;YACrB,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5B,CAAC,EAAE,CAAC;QACR,CAAC;aAAM,CAAC;YACJ,MAAM,CAAC,IAAI,GAAG,GAAG,CAAC;QACtB,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,MAAM,IAAI,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAInD,MAAM,WAAW,GAAG,WAAW,CAAC;IAC5B,QAAQ,EAAE,IAAI,CAAC,MAAM;CACxB,CAAC,CAAC;AAEH,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC7C,MAAM,WAAW,GAAG,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;AAEjD,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC"}
@@ -1,7 +0,0 @@
1
- import type { Program } from 'typescript';
2
- export * from './src/compiler.js';
3
- export * from './src/loader.js';
4
- export default function myTransformerPlugin(program: Program, opts: {}): {
5
- before: import("typescript").CustomTransformerFactory;
6
- afterDeclarations: import("typescript").CustomTransformerFactory;
7
- };
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGxE,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAEhC,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,OAAgB,EAAE,IAAQ;IAClE,OAAO;QACH,MAAM,EAAE,WAAW;QACnB,iBAAiB,EAAE,sBAAsB;KAC5C,CAAC;AACN,CAAC"}
@@ -1,7 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * This script installs the deepkit/type transformer (that extracts automatically types and adds the correct @t decorator) to the typescript node_modules.
4
- *
5
- * The critical section that needs adjustment is in the `function getScriptTransformers` in `node_modules/typescript/lib/tsc.js`.
6
- */
7
- export {};
@@ -1,75 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * This script installs the deepkit/type transformer (that extracts automatically types and adds the correct @t decorator) to the typescript node_modules.
4
- *
5
- * The critical section that needs adjustment is in the `function getScriptTransformers` in `node_modules/typescript/lib/tsc.js`.
6
- */
7
- import { dirname, join, relative } from 'path';
8
- import { existsSync, readFileSync, writeFileSync } from 'fs';
9
- let to = process.argv[2] || process.cwd();
10
- function getPatchId(id) {
11
- return 'deepkit_type_patch_' + id;
12
- }
13
- function getCode(deepkitDistPath, varName, id) {
14
- return `
15
- //${getPatchId(id)}
16
- try {
17
- var typeTransformer;
18
- try {
19
- typeTransformer = require('@runtyped/type-compiler');
20
- } catch (error) {
21
- typeTransformer = require(${JSON.stringify(deepkitDistPath)});
22
- }
23
- if (typeTransformer) {
24
- if (!customTransformers) ${varName} = {};
25
- if (!${varName}.before) ${varName}.before = [];
26
- let alreadyPatched = false;
27
- for (let fn of ${varName}.before) {
28
- if (fn && fn.name === 'deepkitTransformer') alreadyPatched = true;
29
- }
30
- if (!alreadyPatched) {
31
- if (!${varName}.before.includes(typeTransformer.transformer)) ${varName}.before.push(typeTransformer.transformer);
32
-
33
- if (!${varName}.afterDeclarations) ${varName}.afterDeclarations = [];
34
- if (!${varName}.afterDeclarations.includes(typeTransformer.declarationTransformer)) {
35
- ${varName}.afterDeclarations.push(typeTransformer.declarationTransformer);
36
- }
37
- }
38
- }
39
- } catch (e) {
40
- }
41
- //${getPatchId(id)}-end
42
- `;
43
- }
44
- function isPatched(code, id) {
45
- return code.includes(getPatchId(id));
46
- }
47
- function patchGetTransformers(deepkitDistPath, code) {
48
- const id = 'patchGetTransformers';
49
- if (isPatched(code, id))
50
- return '';
51
- const find = /function getTransformers\([^)]+\)\s*{/;
52
- if (!code.match(find))
53
- return '';
54
- code = code.replace(find, function (a) {
55
- return a + '\n ' + getCode(deepkitDistPath, 'customTransformers', id);
56
- });
57
- return code;
58
- }
59
- if (to + '/dist/cjs' === __dirname) {
60
- to = join(to, '..'); //we exclude type-compiler/node_modules
61
- }
62
- const typeScriptPath = dirname(require.resolve('typescript', { paths: [to] }));
63
- const deepkitDistPath = relative(typeScriptPath, __dirname);
64
- const paths = ['tsc.js', '_tsc.js', 'typescript.js'];
65
- for (const fileName of paths) {
66
- const file = join(typeScriptPath, fileName);
67
- if (!existsSync(file))
68
- continue;
69
- const content = patchGetTransformers(deepkitDistPath, readFileSync(file, 'utf8'));
70
- if (!content)
71
- continue;
72
- writeFileSync(file, content);
73
- console.log('Deepkit Type: Injected TypeScript transformer at', file);
74
- }
75
- //# sourceMappingURL=install-transformer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"install-transformer.js","sourceRoot":"","sources":["../../install-transformer.ts"],"names":[],"mappings":";AAEA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAE7D,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;AAE1C,SAAS,UAAU,CAAC,EAAU;IAC1B,OAAO,qBAAqB,GAAG,EAAE,CAAC;AACtC,CAAC;AAED,SAAS,OAAO,CAAC,eAAuB,EAAE,OAAe,EAAE,EAAU;IACjE,OAAO;YACC,UAAU,CAAC,EAAE,CAAC;;;;;;4CAMkB,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC;;;2CAGhC,OAAO;uBAC3B,OAAO,YAAY,OAAO;;iCAEhB,OAAO;;;;2BAIb,OAAO,kDAAkD,OAAO;;2BAEhE,OAAO,uBAAuB,OAAO;2BACrC,OAAO;0BACR,OAAO;;;;;;YAMrB,UAAU,CAAC,EAAE,CAAC;KACrB,CAAC;AACN,CAAC;AAED,SAAS,SAAS,CAAC,IAAY,EAAE,EAAU;IACvC,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,oBAAoB,CAAC,eAAuB,EAAE,IAAY;IAC/D,MAAM,EAAE,GAAG,sBAAsB,CAAC;IAClC,IAAI,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;QAAE,OAAO,EAAE,CAAC;IAEnC,MAAM,IAAI,GAAG,uCAAuC,CAAC;IACrD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IAEjC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC;QACjC,OAAO,CAAC,GAAG,QAAQ,GAAG,OAAO,CAAC,eAAe,EAAE,oBAAoB,EAAE,EAAE,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,IAAI,EAAE,GAAG,WAAW,KAAK,SAAS,EAAE,CAAC;IACjC,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,uCAAuC;AAChE,CAAC;AAED,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/E,MAAM,eAAe,GAAG,QAAQ,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;AAE5D,MAAM,KAAK,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;AAErD,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;IAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;IAC5C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,SAAS;IAChC,MAAM,OAAO,GAAG,oBAAoB,CAAC,eAAe,EAAE,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IAClF,IAAI,CAAC,OAAO;QAAE,SAAS;IACvB,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC7B,OAAO,CAAC,GAAG,CAAC,kDAAkD,EAAE,IAAI,CAAC,CAAC;AAC1E,CAAC"}