@atlaspack/transformer-typescript-types 2.14.5-canary.36 → 2.14.5-canary.361

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,384 @@
1
1
  # @atlaspack/transformer-typescript-types
2
2
 
3
+ ## 2.15.10
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies []:
8
+ - @atlaspack/source-map@3.2.4
9
+ - @atlaspack/utils@3.3.1
10
+ - @atlaspack/plugin@2.14.49
11
+ - @atlaspack/ts-utils@2.14.28
12
+
13
+ ## 2.15.9
14
+
15
+ ### Patch Changes
16
+
17
+ - Updated dependencies [[`47aa84e`](https://github.com/atlassian-labs/atlaspack/commit/47aa84e44c61066072a5bf3d57678565b9d2c5a3)]:
18
+ - @atlaspack/utils@3.3.0
19
+ - @atlaspack/source-map@3.2.3
20
+ - @atlaspack/plugin@2.14.48
21
+ - @atlaspack/ts-utils@2.14.27
22
+
23
+ ## 2.15.8
24
+
25
+ ### Patch Changes
26
+
27
+ - Updated dependencies []:
28
+ - @atlaspack/source-map@3.2.2
29
+ - @atlaspack/utils@3.2.8
30
+ - @atlaspack/plugin@2.14.47
31
+ - @atlaspack/ts-utils@2.14.26
32
+
33
+ ## 2.15.7
34
+
35
+ ### Patch Changes
36
+
37
+ - Updated dependencies []:
38
+ - @atlaspack/source-map@3.2.1
39
+ - @atlaspack/utils@3.2.7
40
+ - @atlaspack/plugin@2.14.46
41
+ - @atlaspack/ts-utils@2.14.25
42
+
43
+ ## 2.15.6
44
+
45
+ ### Patch Changes
46
+
47
+ - Updated dependencies []:
48
+ - @atlaspack/utils@3.2.6
49
+ - @atlaspack/plugin@2.14.45
50
+ - @atlaspack/ts-utils@2.14.24
51
+
52
+ ## 2.15.5
53
+
54
+ ### Patch Changes
55
+
56
+ - Updated dependencies [[`c81b368`](https://github.com/atlassian-labs/atlaspack/commit/c81b368db20af701d9e019a11272b138f9cfe080)]:
57
+ - @atlaspack/source-map@3.2.0
58
+ - @atlaspack/utils@3.2.5
59
+ - @atlaspack/plugin@2.14.44
60
+ - @atlaspack/ts-utils@2.14.23
61
+
62
+ ## 2.15.4
63
+
64
+ ### Patch Changes
65
+
66
+ - Updated dependencies []:
67
+ - @atlaspack/plugin@2.14.43
68
+ - @atlaspack/utils@3.2.4
69
+ - @atlaspack/ts-utils@2.14.22
70
+
71
+ ## 2.15.3
72
+
73
+ ### Patch Changes
74
+
75
+ - Updated dependencies []:
76
+ - @atlaspack/source-map@3.1.3
77
+ - @atlaspack/utils@3.2.3
78
+ - @atlaspack/plugin@2.14.42
79
+ - @atlaspack/ts-utils@2.14.21
80
+
81
+ ## 2.15.2
82
+
83
+ ### Patch Changes
84
+
85
+ - Updated dependencies [[`f6fc5e2`](https://github.com/atlassian-labs/atlaspack/commit/f6fc5e2acc30720f9a9676dfbc02bf780066653b)]:
86
+ - @atlaspack/source-map@3.1.2
87
+ - @atlaspack/utils@3.2.2
88
+ - @atlaspack/plugin@2.14.41
89
+ - @atlaspack/ts-utils@2.14.20
90
+
91
+ ## 2.15.1
92
+
93
+ ### Patch Changes
94
+
95
+ - Updated dependencies []:
96
+ - @atlaspack/source-map@3.1.1
97
+ - @atlaspack/utils@3.2.1
98
+ - @atlaspack/plugin@2.14.40
99
+ - @atlaspack/ts-utils@2.14.19
100
+
101
+ ## 2.15.0
102
+
103
+ ### Minor Changes
104
+
105
+ - [#789](https://github.com/atlassian-labs/atlaspack/pull/789) [`73168c2`](https://github.com/atlassian-labs/atlaspack/commit/73168c275a5d9abff9907bcf536b340bca1ed5f0) Thanks [@marcins](https://github.com/marcins)! - Use an in-sourced version of @parcel/source-map, as @atlaspack/source-map
106
+
107
+ ### Patch Changes
108
+
109
+ - Updated dependencies [[`73168c2`](https://github.com/atlassian-labs/atlaspack/commit/73168c275a5d9abff9907bcf536b340bca1ed5f0), [`617a318`](https://github.com/atlassian-labs/atlaspack/commit/617a318ddc9419b38360257353fec50b9051ee13)]:
110
+ - @atlaspack/source-map@3.1.0
111
+ - @atlaspack/utils@3.2.0
112
+ - @atlaspack/plugin@2.14.39
113
+ - @atlaspack/ts-utils@2.14.18
114
+
115
+ ## 2.14.38
116
+
117
+ ### Patch Changes
118
+
119
+ - Updated dependencies [[`7d7a55d`](https://github.com/atlassian-labs/atlaspack/commit/7d7a55dd6395ec391a2e4c33b3dec0d1ea477d4c)]:
120
+ - @atlaspack/utils@3.1.2
121
+ - @atlaspack/plugin@2.14.38
122
+ - @atlaspack/ts-utils@2.14.17
123
+
124
+ ## 2.14.37
125
+
126
+ ### Patch Changes
127
+
128
+ - Updated dependencies []:
129
+ - @atlaspack/utils@3.1.1
130
+ - @atlaspack/plugin@2.14.37
131
+ - @atlaspack/ts-utils@2.14.16
132
+
133
+ ## 2.14.36
134
+
135
+ ### Patch Changes
136
+
137
+ - Updated dependencies [[`5776be2`](https://github.com/atlassian-labs/atlaspack/commit/5776be21f70a3f2b9471ba33da3ba1a883f21f1a)]:
138
+ - @atlaspack/utils@3.1.0
139
+ - @atlaspack/plugin@2.14.36
140
+ - @atlaspack/ts-utils@2.14.15
141
+
142
+ ## 2.14.35
143
+
144
+ ### Patch Changes
145
+
146
+ - Updated dependencies [[`c372f3f`](https://github.com/atlassian-labs/atlaspack/commit/c372f3fd6fce8200d5cf47f41bc7895c6cbb5558), [`17dfea9`](https://github.com/atlassian-labs/atlaspack/commit/17dfea9e9f3169807808520df9c09ebf70dc8b10)]:
147
+ - @atlaspack/utils@3.0.3
148
+ - @atlaspack/plugin@2.14.35
149
+ - @atlaspack/ts-utils@2.14.14
150
+
151
+ ## 2.14.34
152
+
153
+ ### Patch Changes
154
+
155
+ - Updated dependencies []:
156
+ - @atlaspack/utils@3.0.2
157
+ - @atlaspack/plugin@2.14.34
158
+ - @atlaspack/ts-utils@2.14.13
159
+
160
+ ## 2.14.33
161
+
162
+ ### Patch Changes
163
+
164
+ - Updated dependencies [[`236e546`](https://github.com/atlassian-labs/atlaspack/commit/236e5465863dca6044a7191e05260a5b924c342e)]:
165
+ - @atlaspack/utils@3.0.1
166
+ - @atlaspack/plugin@2.14.33
167
+ - @atlaspack/ts-utils@2.14.12
168
+
169
+ ## 2.14.32
170
+
171
+ ### Patch Changes
172
+
173
+ - Updated dependencies [[`1180103`](https://github.com/atlassian-labs/atlaspack/commit/118010351ed444f8178988afb3f77807154dd933)]:
174
+ - @atlaspack/utils@3.0.0
175
+ - @atlaspack/plugin@2.14.32
176
+ - @atlaspack/ts-utils@2.14.11
177
+
178
+ ## 2.14.31
179
+
180
+ ### Patch Changes
181
+
182
+ - [#785](https://github.com/atlassian-labs/atlaspack/pull/785) [`0e7dd5e`](https://github.com/atlassian-labs/atlaspack/commit/0e7dd5ec6fbe05aa9e0bb5775a9d0975f206a922) Thanks [@matt-koko](https://github.com/matt-koko)! - We need to re-publish every package in Atlaspack with the corrected types field.
183
+
184
+ - Updated dependencies [[`0e7dd5e`](https://github.com/atlassian-labs/atlaspack/commit/0e7dd5ec6fbe05aa9e0bb5775a9d0975f206a922)]:
185
+ - @atlaspack/diagnostic@2.14.4
186
+ - @atlaspack/plugin@2.14.31
187
+ - @atlaspack/utils@2.19.3
188
+ - @atlaspack/ts-utils@2.14.10
189
+
190
+ ## 2.14.30
191
+
192
+ ### Patch Changes
193
+
194
+ - Updated dependencies []:
195
+ - @atlaspack/utils@2.19.2
196
+ - @atlaspack/plugin@2.14.30
197
+ - @atlaspack/ts-utils@2.14.9
198
+
199
+ ## 2.14.29
200
+
201
+ ### Patch Changes
202
+
203
+ - Updated dependencies []:
204
+ - @atlaspack/utils@2.19.1
205
+ - @atlaspack/plugin@2.14.29
206
+ - @atlaspack/ts-utils@2.14.8
207
+
208
+ ## 2.14.28
209
+
210
+ ### Patch Changes
211
+
212
+ - Updated dependencies [[`f0349a6`](https://github.com/atlassian-labs/atlaspack/commit/f0349a6b9b04755088f121095ca6301a2ada3767)]:
213
+ - @atlaspack/utils@2.19.0
214
+ - @atlaspack/plugin@2.14.28
215
+ - @atlaspack/ts-utils@2.14.7
216
+
217
+ ## 2.14.27
218
+
219
+ ### Patch Changes
220
+
221
+ - Updated dependencies []:
222
+ - @atlaspack/utils@2.18.4
223
+ - @atlaspack/plugin@2.14.27
224
+ - @atlaspack/ts-utils@2.14.6
225
+
226
+ ## 2.14.26
227
+
228
+ ### Patch Changes
229
+
230
+ - [#742](https://github.com/atlassian-labs/atlaspack/pull/742) [`ee040bb`](https://github.com/atlassian-labs/atlaspack/commit/ee040bb6428f29b57d892ddd8107e29077d08ffd) Thanks [@yamadapc](https://github.com/yamadapc)! - Internal changes and bug fixes to environmentDeduplication flag
231
+
232
+ - Updated dependencies [[`ee040bb`](https://github.com/atlassian-labs/atlaspack/commit/ee040bb6428f29b57d892ddd8107e29077d08ffd), [`889c65c`](https://github.com/atlassian-labs/atlaspack/commit/889c65cd25b811045e26a117e7404f694dde77a2)]:
233
+ - @atlaspack/diagnostic@2.14.3
234
+ - @atlaspack/ts-utils@2.14.5
235
+ - @atlaspack/plugin@2.14.26
236
+ - @atlaspack/utils@2.18.3
237
+
238
+ ## 2.14.25
239
+
240
+ ### Patch Changes
241
+
242
+ - Updated dependencies []:
243
+ - @atlaspack/utils@2.18.2
244
+ - @atlaspack/plugin@2.14.25
245
+ - @atlaspack/ts-utils@2.14.4
246
+
247
+ ## 2.14.24
248
+
249
+ ### Patch Changes
250
+
251
+ - Updated dependencies []:
252
+ - @atlaspack/utils@2.18.1
253
+ - @atlaspack/plugin@2.14.24
254
+ - @atlaspack/ts-utils@2.14.3
255
+
256
+ ## 2.14.23
257
+
258
+ ### Patch Changes
259
+
260
+ - Updated dependencies [[`23d561e`](https://github.com/atlassian-labs/atlaspack/commit/23d561e51e68b0c38fd1ff4e4fb173e5e7b01cf2)]:
261
+ - @atlaspack/utils@2.18.0
262
+ - @atlaspack/plugin@2.14.23
263
+
264
+ ## 2.14.22
265
+
266
+ ### Patch Changes
267
+
268
+ - [#720](https://github.com/atlassian-labs/atlaspack/pull/720) [`d2fd849`](https://github.com/atlassian-labs/atlaspack/commit/d2fd849770fe6305e9c694bd97b1bd905abd9d94) Thanks [@alshdavid](https://github.com/alshdavid)! - Migrate to TypeScript
269
+
270
+ - Updated dependencies [[`d2fd849`](https://github.com/atlassian-labs/atlaspack/commit/d2fd849770fe6305e9c694bd97b1bd905abd9d94)]:
271
+ - @atlaspack/diagnostic@2.14.2
272
+ - @atlaspack/ts-utils@2.14.2
273
+ - @atlaspack/plugin@2.14.22
274
+ - @atlaspack/utils@2.17.4
275
+
276
+ ## 2.14.21
277
+
278
+ ### Patch Changes
279
+
280
+ - Updated dependencies []:
281
+ - @atlaspack/utils@2.17.3
282
+ - @atlaspack/plugin@2.14.21
283
+
284
+ ## 2.14.20
285
+
286
+ ### Patch Changes
287
+
288
+ - [#702](https://github.com/atlassian-labs/atlaspack/pull/702) [`daaa768`](https://github.com/atlassian-labs/atlaspack/commit/daaa7688786772d7e3713b71c5bba6b89ec704aa) Thanks [@alshdavid](https://github.com/alshdavid)! - Fixes to Flow types
289
+
290
+ - Updated dependencies [[`daaa768`](https://github.com/atlassian-labs/atlaspack/commit/daaa7688786772d7e3713b71c5bba6b89ec704aa)]:
291
+ - @atlaspack/plugin@2.14.20
292
+ - @atlaspack/utils@2.17.2
293
+
294
+ ## 2.14.19
295
+
296
+ ### Patch Changes
297
+
298
+ - Updated dependencies []:
299
+ - @atlaspack/utils@2.17.1
300
+ - @atlaspack/plugin@2.14.19
301
+
302
+ ## 2.14.18
303
+
304
+ ### Patch Changes
305
+
306
+ - Updated dependencies [[`dbb4072`](https://github.com/atlassian-labs/atlaspack/commit/dbb40721ebeb45990a14ba04e6b44e7f836fb32d), [`de23e0c`](https://github.com/atlassian-labs/atlaspack/commit/de23e0ce49d5504fe3947ac26640a3d951087da3), [`18a57cf`](https://github.com/atlassian-labs/atlaspack/commit/18a57cf8a4789b2de5ad8e2676f317a26cc91417), [`a5ed1b4`](https://github.com/atlassian-labs/atlaspack/commit/a5ed1b414498560f393ff491af4da25b6e8dde56)]:
307
+ - @atlaspack/utils@2.17.0
308
+ - @atlaspack/plugin@2.14.18
309
+
310
+ ## 2.14.17
311
+
312
+ ### Patch Changes
313
+
314
+ - Updated dependencies []:
315
+ - @atlaspack/utils@2.16.1
316
+ - @atlaspack/plugin@2.14.17
317
+
318
+ ## 2.14.16
319
+
320
+ ### Patch Changes
321
+
322
+ - Updated dependencies [[`30ee2cf`](https://github.com/atlassian-labs/atlaspack/commit/30ee2cfcd34cf2646ded0eda13fdb80a2a5de529)]:
323
+ - @atlaspack/utils@2.16.0
324
+ - @atlaspack/plugin@2.14.16
325
+
326
+ ## 2.14.15
327
+
328
+ ### Patch Changes
329
+
330
+ - Updated dependencies []:
331
+ - @atlaspack/utils@2.15.3
332
+ - @atlaspack/plugin@2.14.15
333
+
334
+ ## 2.14.14
335
+
336
+ ### Patch Changes
337
+
338
+ - Updated dependencies []:
339
+ - @atlaspack/utils@2.15.2
340
+ - @atlaspack/plugin@2.14.14
341
+
342
+ ## 2.14.13
343
+
344
+ ### Patch Changes
345
+
346
+ - Updated dependencies []:
347
+ - @atlaspack/utils@2.15.1
348
+ - @atlaspack/plugin@2.14.13
349
+
350
+ ## 2.14.12
351
+
352
+ ### Patch Changes
353
+
354
+ - Updated dependencies [[`e39c6cf`](https://github.com/atlassian-labs/atlaspack/commit/e39c6cf05f7e95ce5420dbcea66f401b1cbd397c)]:
355
+ - @atlaspack/utils@2.15.0
356
+ - @atlaspack/plugin@2.14.12
357
+
358
+ ## 2.14.11
359
+
360
+ ### Patch Changes
361
+
362
+ - Updated dependencies []:
363
+ - @atlaspack/utils@2.14.11
364
+ - @atlaspack/plugin@2.14.11
365
+
366
+ ## 2.14.10
367
+
368
+ ### Patch Changes
369
+
370
+ - Updated dependencies []:
371
+ - @atlaspack/plugin@2.14.10
372
+ - @atlaspack/utils@2.14.10
373
+
374
+ ## 2.14.9
375
+
376
+ ### Patch Changes
377
+
378
+ - Updated dependencies []:
379
+ - @atlaspack/utils@2.14.9
380
+ - @atlaspack/plugin@2.14.9
381
+
3
382
  ## 2.14.8
4
383
 
5
384
  ### Patch Changes
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TSModule = void 0;
4
+ class TSModule {
5
+ constructor() {
6
+ this.imports = new Map();
7
+ this.exports = [];
8
+ this.bindings = new Map();
9
+ this.names = new Map();
10
+ this.used = new Set();
11
+ }
12
+ addImport(local, specifier, imported) {
13
+ this.imports.set(local, { specifier, imported });
14
+ if (imported !== '*' && imported !== 'default') {
15
+ this.names.set(local, local);
16
+ }
17
+ }
18
+ // if not a reexport: imported = local, name = exported
19
+ addExport(name, imported, specifier) {
20
+ this.exports.push({ name, specifier, imported });
21
+ }
22
+ addWildcardExport(specifier) {
23
+ this.exports.push({ specifier });
24
+ }
25
+ addLocal(name, node) {
26
+ const bindings = this.bindings.get(name) ?? new Set();
27
+ bindings.add(node);
28
+ this.bindings.set(name, bindings);
29
+ if (name !== 'default') {
30
+ this.names.set(name, name);
31
+ }
32
+ }
33
+ getName(name) {
34
+ return this.names.get(name) || name;
35
+ }
36
+ hasBinding(name) {
37
+ return this.bindings.has(name);
38
+ }
39
+ }
40
+ exports.TSModule = TSModule;
@@ -0,0 +1,233 @@
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.TSModuleGraph = void 0;
7
+ const nullthrows_1 = __importDefault(require("nullthrows"));
8
+ const assert_1 = __importDefault(require("assert"));
9
+ const typescript_1 = __importDefault(require("typescript"));
10
+ class TSModuleGraph {
11
+ constructor(mainModuleName) {
12
+ this.modules = new Map();
13
+ this.mainModuleName = mainModuleName;
14
+ this.mainModule = null;
15
+ this.syntheticImportCount = 0;
16
+ }
17
+ addModule(name, module) {
18
+ this.modules.set(name, module);
19
+ if (name === this.mainModuleName) {
20
+ this.mainModule = module;
21
+ }
22
+ }
23
+ getModule(name) {
24
+ return this.modules.get(name);
25
+ }
26
+ markUsed(module, name, context) {
27
+ // If name is imported, mark used in the original module
28
+ if (module.imports.has(name)) {
29
+ module.used.add(name);
30
+ let resolved = this.resolveImport(module, name);
31
+ // Missing or external
32
+ if (!resolved || resolved.module === module) {
33
+ return;
34
+ }
35
+ return this.markUsed(resolved.module, resolved.imported, context);
36
+ }
37
+ if (module.used.has(name)) {
38
+ return;
39
+ }
40
+ module.used.add(name);
41
+ // Visit all child nodes of the original binding and mark any referenced types as used.
42
+ let visit = (node) => {
43
+ if (typescript_1.default.isQualifiedName(node) && typescript_1.default.isIdentifier(node.left)) {
44
+ let resolved = this.resolveImport(module, node.left.text, node.right.text);
45
+ if (resolved) {
46
+ this.markUsed(resolved.module, resolved.imported, context);
47
+ }
48
+ }
49
+ else if (typescript_1.default.isIdentifier(node)) {
50
+ this.markUsed(module, node.text, context);
51
+ }
52
+ return typescript_1.default.visitEachChild(node, visit, context);
53
+ };
54
+ let bindings = module.bindings.get(name);
55
+ if (bindings) {
56
+ for (let node of bindings) {
57
+ typescript_1.default.visitEachChild(node, visit, context);
58
+ }
59
+ }
60
+ }
61
+ getExport(m, e) {
62
+ // @ts-expect-error TS2339
63
+ (0, assert_1.default)(e.name != null);
64
+ // @ts-expect-error TS2339
65
+ let exportName = e.name;
66
+ // Re-export
67
+ // @ts-expect-error TS2339
68
+ if (e.specifier && e.imported) {
69
+ let m = this.getModule(e.specifier);
70
+ if (!m) {
71
+ return null;
72
+ }
73
+ // @ts-expect-error TS2339
74
+ let exp = this.resolveExport(m, e.imported);
75
+ if (!exp) {
76
+ return null;
77
+ }
78
+ return {
79
+ module: exp.module,
80
+ imported: exp.imported || exp.name,
81
+ name: exportName,
82
+ };
83
+ }
84
+ // Import and then export
85
+ if (m.imports.has(exportName)) {
86
+ let imp = this.resolveImport(m, exportName);
87
+ if (!imp) {
88
+ return null;
89
+ }
90
+ return { module: imp.module, imported: imp.name, name: exportName };
91
+ }
92
+ // Named export
93
+ return {
94
+ module: m,
95
+ name: exportName,
96
+ // @ts-expect-error TS2339
97
+ imported: e.imported != null ? m.getName(e.imported) : exportName,
98
+ };
99
+ }
100
+ resolveImport(module, local, imported) {
101
+ let i = module.imports.get(local);
102
+ if (!i) {
103
+ return null;
104
+ }
105
+ let m = this.getModule(i.specifier);
106
+ if (!m) {
107
+ // External module. pass through the import.
108
+ return { module, name: local, imported: imported || i.imported };
109
+ }
110
+ return this.resolveExport(m, imported || i.imported);
111
+ }
112
+ resolveExport(module, name) {
113
+ for (let e of module.exports) {
114
+ // @ts-expect-error TS2339
115
+ if (e.name === name) {
116
+ return this.getExport(module, e);
117
+ }
118
+ else if (e.specifier) {
119
+ const m = this.resolveExport((0, nullthrows_1.default)(this.getModule(e.specifier)), name);
120
+ if (m) {
121
+ return m;
122
+ }
123
+ }
124
+ }
125
+ }
126
+ getAllExports(module = (0, nullthrows_1.default)(this.mainModule), excludeDefault = false) {
127
+ let res = [];
128
+ for (let e of module.exports) {
129
+ // @ts-expect-error TS2339
130
+ if (e.name && (!excludeDefault || e.name !== 'default')) {
131
+ let exp = this.getExport(module, e);
132
+ if (exp) {
133
+ res.push(exp);
134
+ }
135
+ }
136
+ else if (e.specifier) {
137
+ let m = this.getModule(e.specifier);
138
+ if (m) {
139
+ res.push(...this.getAllExports(m, true));
140
+ }
141
+ }
142
+ }
143
+ return res;
144
+ }
145
+ getAllImports() {
146
+ // Build a map of all imports for external modules
147
+ let importsBySpecifier = new Map();
148
+ for (let module of this.modules.values()) {
149
+ for (let [name, imp] of module.imports) {
150
+ if (module.used.has(name) && !this.modules.has(imp.specifier)) {
151
+ let importMap = importsBySpecifier.get(imp.specifier);
152
+ if (!importMap) {
153
+ importMap = new Map();
154
+ importsBySpecifier.set(imp.specifier, importMap);
155
+ }
156
+ name = module.getName(name);
157
+ importMap.set(name, imp.imported);
158
+ }
159
+ }
160
+ }
161
+ return importsBySpecifier;
162
+ }
163
+ propagate(context) {
164
+ // Resolve all exported values, and mark them as used.
165
+ let names = Object.create(null);
166
+ let exportedNames = new Map();
167
+ for (let e of this.getAllExports()) {
168
+ this.markUsed(e.module, e.imported, context);
169
+ e.module.names.set(e.imported, e.name);
170
+ names[e.name] = 1;
171
+ exportedNames.set(e.name, e.module);
172
+ }
173
+ let importedSymbolsToUpdate = [];
174
+ // Assign unique names across all modules
175
+ for (let m of this.modules.values()) {
176
+ for (let [orig, name] of m.names) {
177
+ if (exportedNames.has(name) && exportedNames.get(name) === m) {
178
+ continue;
179
+ }
180
+ if (!m.used.has(orig)) {
181
+ continue;
182
+ }
183
+ if (m.imports.has(orig)) {
184
+ // Update imports after all modules's local variables have been renamed
185
+ importedSymbolsToUpdate.push([m, orig]);
186
+ continue;
187
+ }
188
+ if (names[name]) {
189
+ m.names.set(name, `_${name}${names[name]++}`);
190
+ }
191
+ else {
192
+ names[name] = 1;
193
+ }
194
+ }
195
+ }
196
+ // Map of imported specifiers -> map of imported names to local names
197
+ let imports = new Map();
198
+ for (let [m, orig] of importedSymbolsToUpdate) {
199
+ // @ts-expect-error TS2339
200
+ let imp = (0, nullthrows_1.default)(m.imports.get(orig));
201
+ // @ts-expect-error TS2345
202
+ let imported = (0, nullthrows_1.default)(this.resolveImport(m, orig));
203
+ // If the module is bundled, map the local name to the original exported name.
204
+ if (this.modules.has(imp.specifier)) {
205
+ // @ts-expect-error TS2339
206
+ m.names.set(orig, imported.imported);
207
+ continue;
208
+ }
209
+ // If it's external, then we need to dedup duplicate imported names, and ensure
210
+ // that they do not conflict with any exported or local names.
211
+ let importedNames = imports.get(imp.specifier);
212
+ if (!importedNames) {
213
+ importedNames = new Map();
214
+ imports.set(imp.specifier, importedNames);
215
+ }
216
+ let name = importedNames.get(imported.imported);
217
+ if (!name) {
218
+ if (names[imported.imported]) {
219
+ name = `_${imported.imported}${names[imported.imported]++}`;
220
+ }
221
+ else {
222
+ name = imported.imported;
223
+ names[imported.imported] = 1;
224
+ }
225
+ importedNames.set(imported.imported, name);
226
+ }
227
+ // @ts-expect-error TS2339
228
+ m.names.set(orig, name);
229
+ }
230
+ return exportedNames;
231
+ }
232
+ }
233
+ exports.TSModuleGraph = TSModuleGraph;