@depup/ngtools__webpack 21.2.2-depup.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +25 -0
  3. package/changes.json +5 -0
  4. package/index.d.ts +8 -0
  5. package/index.js +25 -0
  6. package/index.js.map +1 -0
  7. package/package.json +50 -0
  8. package/src/benchmark.d.ts +9 -0
  9. package/src/benchmark.js +27 -0
  10. package/src/benchmark.js.map +1 -0
  11. package/src/index.d.ts +8 -0
  12. package/src/index.js +19 -0
  13. package/src/index.js.map +1 -0
  14. package/src/ivy/cache.d.ts +14 -0
  15. package/src/ivy/cache.js +33 -0
  16. package/src/ivy/cache.js.map +1 -0
  17. package/src/ivy/diagnostics.d.ts +13 -0
  18. package/src/ivy/diagnostics.js +33 -0
  19. package/src/ivy/diagnostics.js.map +1 -0
  20. package/src/ivy/host.d.ts +32 -0
  21. package/src/ivy/host.js +226 -0
  22. package/src/ivy/host.js.map +1 -0
  23. package/src/ivy/index.d.ts +10 -0
  24. package/src/ivy/index.js +17 -0
  25. package/src/ivy/index.js.map +1 -0
  26. package/src/ivy/loader.d.ts +10 -0
  27. package/src/ivy/loader.js +95 -0
  28. package/src/ivy/loader.js.map +1 -0
  29. package/src/ivy/paths.d.ts +11 -0
  30. package/src/ivy/paths.js +70 -0
  31. package/src/ivy/paths.js.map +1 -0
  32. package/src/ivy/plugin.d.ts +53 -0
  33. package/src/ivy/plugin.js +556 -0
  34. package/src/ivy/plugin.js.map +1 -0
  35. package/src/ivy/symbol.d.ts +25 -0
  36. package/src/ivy/symbol.js +45 -0
  37. package/src/ivy/symbol.js.map +1 -0
  38. package/src/ivy/system.d.ts +15 -0
  39. package/src/ivy/system.js +115 -0
  40. package/src/ivy/system.js.map +1 -0
  41. package/src/ivy/transformation.d.ts +18 -0
  42. package/src/ivy/transformation.js +137 -0
  43. package/src/ivy/transformation.js.map +1 -0
  44. package/src/loaders/inline-resource.d.ts +16 -0
  45. package/src/loaders/inline-resource.js +25 -0
  46. package/src/loaders/inline-resource.js.map +1 -0
  47. package/src/paths-plugin.d.ts +32 -0
  48. package/src/paths-plugin.js +255 -0
  49. package/src/paths-plugin.js.map +1 -0
  50. package/src/resource_loader.d.ts +29 -0
  51. package/src/resource_loader.js +321 -0
  52. package/src/resource_loader.js.map +1 -0
  53. package/src/transformers/elide_imports.d.ts +9 -0
  54. package/src/transformers/elide_imports.js +165 -0
  55. package/src/transformers/elide_imports.js.map +1 -0
  56. package/src/transformers/find_image_domains.d.ts +9 -0
  57. package/src/transformers/find_image_domains.js +132 -0
  58. package/src/transformers/find_image_domains.js.map +1 -0
  59. package/src/transformers/index.d.ts +9 -0
  60. package/src/transformers/index.js +26 -0
  61. package/src/transformers/index.js.map +1 -0
  62. package/src/transformers/remove-ivy-jit-support-calls.d.ts +9 -0
  63. package/src/transformers/remove-ivy-jit-support-calls.js +136 -0
  64. package/src/transformers/remove-ivy-jit-support-calls.js.map +1 -0
  65. package/src/transformers/replace_resources.d.ts +11 -0
  66. package/src/transformers/replace_resources.js +250 -0
  67. package/src/transformers/replace_resources.js.map +1 -0
  68. package/src/transformers/spec_helpers.d.ts +13 -0
  69. package/src/transformers/spec_helpers.js +89 -0
  70. package/src/transformers/spec_helpers.js.map +1 -0
@@ -0,0 +1,29 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google LLC All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be
6
+ * found in the LICENSE file at https://angular.dev/license
7
+ */
8
+ import type { Compilation } from 'webpack';
9
+ export declare class WebpackResourceLoader {
10
+ private _parentCompilation?;
11
+ private _fileDependencies;
12
+ private _reverseDependencies;
13
+ private fileCache?;
14
+ private assetCache?;
15
+ private modifiedResources;
16
+ private outputPathCounter;
17
+ private readonly inlineDataLoaderPath;
18
+ constructor(shouldCache: boolean);
19
+ update(parentCompilation: Compilation, changedFiles?: Iterable<string>): void;
20
+ clearParentCompilation(): void;
21
+ getModifiedResourceFiles(): Set<string>;
22
+ getResourceDependencies(filePath: string): Iterable<string>;
23
+ getAffectedResources(file: string): Iterable<string>;
24
+ setAffectedResources(file: string, resources: Iterable<string>): void;
25
+ private _compile;
26
+ private _evaluate;
27
+ get(filePath: string): Promise<string>;
28
+ process(data: string, fileExtension: string | undefined, resourceType: 'template' | 'style', containingFile?: string): Promise<string>;
29
+ }
@@ -0,0 +1,321 @@
1
+ "use strict";
2
+ /**
3
+ * @license
4
+ * Copyright Google LLC All Rights Reserved.
5
+ *
6
+ * Use of this source code is governed by an MIT-style license that can be
7
+ * found in the LICENSE file at https://angular.dev/license
8
+ */
9
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ var desc = Object.getOwnPropertyDescriptor(m, k);
12
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
13
+ desc = { enumerable: true, get: function() { return m[k]; } };
14
+ }
15
+ Object.defineProperty(o, k2, desc);
16
+ }) : (function(o, m, k, k2) {
17
+ if (k2 === undefined) k2 = k;
18
+ o[k2] = m[k];
19
+ }));
20
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
21
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
22
+ }) : function(o, v) {
23
+ o["default"] = v;
24
+ });
25
+ var __importStar = (this && this.__importStar) || (function () {
26
+ var ownKeys = function(o) {
27
+ ownKeys = Object.getOwnPropertyNames || function (o) {
28
+ var ar = [];
29
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
30
+ return ar;
31
+ };
32
+ return ownKeys(o);
33
+ };
34
+ return function (mod) {
35
+ if (mod && mod.__esModule) return mod;
36
+ var result = {};
37
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
38
+ __setModuleDefault(result, mod);
39
+ return result;
40
+ };
41
+ })();
42
+ var __importDefault = (this && this.__importDefault) || function (mod) {
43
+ return (mod && mod.__esModule) ? mod : { "default": mod };
44
+ };
45
+ Object.defineProperty(exports, "__esModule", { value: true });
46
+ exports.WebpackResourceLoader = void 0;
47
+ const node_assert_1 = __importDefault(require("node:assert"));
48
+ const node_buffer_1 = require("node:buffer");
49
+ const path = __importStar(require("node:path"));
50
+ const vm = __importStar(require("node:vm"));
51
+ const diagnostics_1 = require("./ivy/diagnostics");
52
+ const paths_1 = require("./ivy/paths");
53
+ const inline_resource_1 = require("./loaders/inline-resource");
54
+ const replace_resources_1 = require("./transformers/replace_resources");
55
+ class WebpackResourceLoader {
56
+ _parentCompilation;
57
+ _fileDependencies = new Map();
58
+ _reverseDependencies = new Map();
59
+ fileCache;
60
+ assetCache;
61
+ modifiedResources = new Set();
62
+ outputPathCounter = 1;
63
+ inlineDataLoaderPath = inline_resource_1.InlineAngularResourceLoaderPath;
64
+ constructor(shouldCache) {
65
+ if (shouldCache) {
66
+ this.fileCache = new Map();
67
+ this.assetCache = new Map();
68
+ }
69
+ }
70
+ update(parentCompilation, changedFiles) {
71
+ this._parentCompilation = parentCompilation;
72
+ // Update resource cache and modified resources
73
+ this.modifiedResources.clear();
74
+ if (changedFiles) {
75
+ for (const changedFile of changedFiles) {
76
+ const changedFileNormalized = (0, paths_1.normalizePath)(changedFile);
77
+ this.assetCache?.delete(changedFileNormalized);
78
+ for (const affectedResource of this.getAffectedResources(changedFile)) {
79
+ const affectedResourceNormalized = (0, paths_1.normalizePath)(affectedResource);
80
+ this.fileCache?.delete(affectedResourceNormalized);
81
+ this.modifiedResources.add(affectedResource);
82
+ for (const effectedDependencies of this.getResourceDependencies(affectedResourceNormalized)) {
83
+ this.assetCache?.delete((0, paths_1.normalizePath)(effectedDependencies));
84
+ }
85
+ }
86
+ }
87
+ }
88
+ else {
89
+ this.fileCache?.clear();
90
+ this.assetCache?.clear();
91
+ }
92
+ // Re-emit all assets for un-effected files
93
+ if (this.assetCache) {
94
+ for (const [, { name, source, info }] of this.assetCache) {
95
+ this._parentCompilation.emitAsset(name, source, info);
96
+ }
97
+ }
98
+ }
99
+ clearParentCompilation() {
100
+ this._parentCompilation = undefined;
101
+ }
102
+ getModifiedResourceFiles() {
103
+ return this.modifiedResources;
104
+ }
105
+ getResourceDependencies(filePath) {
106
+ return this._fileDependencies.get(filePath) || [];
107
+ }
108
+ getAffectedResources(file) {
109
+ return this._reverseDependencies.get(file) || [];
110
+ }
111
+ setAffectedResources(file, resources) {
112
+ this._reverseDependencies.set(file, new Set(resources));
113
+ }
114
+ // eslint-disable-next-line max-lines-per-function
115
+ async _compile(filePath, data, fileExtension, resourceType, containingFile) {
116
+ if (!this._parentCompilation) {
117
+ throw new Error('WebpackResourceLoader cannot be used without parentCompilation');
118
+ }
119
+ const { context, webpack } = this._parentCompilation.compiler;
120
+ const { EntryPlugin, NormalModule, library, node, sources, util: { createHash }, } = webpack;
121
+ const getEntry = () => {
122
+ if (filePath) {
123
+ return `${filePath}?${replace_resources_1.NG_COMPONENT_RESOURCE_QUERY}`;
124
+ }
125
+ else if (resourceType) {
126
+ return (
127
+ // app.component.ts-2.css?ngResource!=!@ngtools/webpack/src/loaders/inline-resource.js!app.component.ts
128
+ `${containingFile}-${this.outputPathCounter}.${fileExtension}` +
129
+ `?${replace_resources_1.NG_COMPONENT_RESOURCE_QUERY}!=!${this.inlineDataLoaderPath}!${containingFile}`);
130
+ }
131
+ else if (data) {
132
+ // Create a special URL for reading the resource from memory
133
+ return `angular-resource:${resourceType},${createHash('xxhash64')
134
+ .update(data)
135
+ .digest('hex')}`;
136
+ }
137
+ throw new Error(`"filePath", "resourceType" or "data" must be specified.`);
138
+ };
139
+ const entry = getEntry();
140
+ // Simple sanity check.
141
+ if (filePath?.match(/\.[jt]s$/)) {
142
+ throw new Error(`Cannot use a JavaScript or TypeScript file (${filePath}) in a component's styleUrls or templateUrl.`);
143
+ }
144
+ const outputFilePath = filePath ||
145
+ `${containingFile}-angular-inline--${this.outputPathCounter++}.${resourceType === 'template' ? 'html' : 'css'}`;
146
+ const outputOptions = {
147
+ filename: outputFilePath,
148
+ library: {
149
+ type: 'var',
150
+ name: 'resource',
151
+ },
152
+ };
153
+ const childCompiler = this._parentCompilation.createChildCompiler('angular-compiler:resource', outputOptions, [
154
+ new node.NodeTemplatePlugin(),
155
+ new node.NodeTargetPlugin(),
156
+ new EntryPlugin(context, entry, { name: 'resource' }),
157
+ new library.EnableLibraryPlugin('var'),
158
+ ]);
159
+ childCompiler.hooks.thisCompilation.tap('angular-compiler', (compilation, { normalModuleFactory }) => {
160
+ // If no data is provided, the resource will be read from the filesystem
161
+ if (data !== undefined) {
162
+ normalModuleFactory.hooks.resolveForScheme
163
+ .for('angular-resource')
164
+ .tap('angular-compiler', (resourceData) => {
165
+ if (filePath) {
166
+ resourceData.path = filePath;
167
+ resourceData.resource = filePath;
168
+ }
169
+ return true;
170
+ });
171
+ NormalModule.getCompilationHooks(compilation)
172
+ .readResourceForScheme.for('angular-resource')
173
+ .tap('angular-compiler', () => data);
174
+ compilation[inline_resource_1.InlineAngularResourceSymbol] = data;
175
+ }
176
+ compilation.hooks.additionalAssets.tap('angular-compiler', () => {
177
+ const asset = compilation.assets[outputFilePath];
178
+ if (!asset) {
179
+ return;
180
+ }
181
+ try {
182
+ const output = this._evaluate(outputFilePath, asset.source().toString());
183
+ if (typeof output === 'string') {
184
+ compilation.assets[outputFilePath] = new sources.RawSource(output);
185
+ }
186
+ }
187
+ catch (error) {
188
+ (0, node_assert_1.default)(error instanceof Error, 'catch clause variable is not an Error instance');
189
+ // Use compilation errors, as otherwise webpack will choke
190
+ (0, diagnostics_1.addError)(compilation, error.message);
191
+ }
192
+ });
193
+ });
194
+ let finalContent;
195
+ childCompiler.hooks.compilation.tap('angular-compiler', (childCompilation) => {
196
+ childCompilation.hooks.processAssets.tap({ name: 'angular-compiler', stage: webpack.Compilation.PROCESS_ASSETS_STAGE_REPORT }, () => {
197
+ finalContent = childCompilation.assets[outputFilePath]?.source().toString();
198
+ for (const { files } of childCompilation.chunks) {
199
+ for (const file of files) {
200
+ childCompilation.deleteAsset(file);
201
+ }
202
+ }
203
+ });
204
+ });
205
+ return new Promise((resolve, reject) => {
206
+ childCompiler.runAsChild((error, _, childCompilation) => {
207
+ if (error) {
208
+ reject(error);
209
+ return;
210
+ }
211
+ else if (!childCompilation) {
212
+ reject(new Error('Unknown child compilation error'));
213
+ return;
214
+ }
215
+ // Workaround to attempt to reduce memory usage of child compilations.
216
+ // This removes the child compilation from the main compilation and manually propagates
217
+ // all dependencies, warnings, and errors.
218
+ const parent = childCompiler.parentCompilation;
219
+ if (parent) {
220
+ parent.children = parent.children.filter((child) => child !== childCompilation);
221
+ let fileDependencies;
222
+ for (const dependency of childCompilation.fileDependencies) {
223
+ // Skip paths that do not appear to be files (have no extension).
224
+ // `fileDependencies` can contain directories and not just files which can
225
+ // cause incorrect cache invalidation on rebuilds.
226
+ if (!path.extname(dependency)) {
227
+ continue;
228
+ }
229
+ if (data && containingFile && dependency.endsWith(entry)) {
230
+ // use containing file if the resource was inline
231
+ parent.fileDependencies.add(containingFile);
232
+ }
233
+ else {
234
+ parent.fileDependencies.add(dependency);
235
+ }
236
+ // Save the dependencies for this resource.
237
+ if (filePath) {
238
+ const resolvedFile = (0, paths_1.normalizePath)(dependency);
239
+ const entry = this._reverseDependencies.get(resolvedFile);
240
+ if (entry) {
241
+ entry.add(filePath);
242
+ }
243
+ else {
244
+ this._reverseDependencies.set(resolvedFile, new Set([filePath]));
245
+ }
246
+ if (fileDependencies) {
247
+ fileDependencies.add(dependency);
248
+ }
249
+ else {
250
+ fileDependencies = new Set([dependency]);
251
+ this._fileDependencies.set(filePath, fileDependencies);
252
+ }
253
+ }
254
+ }
255
+ parent.contextDependencies.addAll(childCompilation.contextDependencies);
256
+ parent.missingDependencies.addAll(childCompilation.missingDependencies);
257
+ parent.buildDependencies.addAll(childCompilation.buildDependencies);
258
+ parent.warnings.push(...childCompilation.warnings);
259
+ parent.errors.push(...childCompilation.errors);
260
+ if (this.assetCache) {
261
+ for (const { info, name, source } of childCompilation.getAssets()) {
262
+ // Use the originating file as the cache key if present
263
+ // Otherwise, generate a cache key based on the generated name
264
+ const cacheKey = info.sourceFilename ?? `!![GENERATED]:${name}`;
265
+ this.assetCache.set(cacheKey, { info, name, source });
266
+ }
267
+ }
268
+ }
269
+ resolve({
270
+ content: finalContent ?? '',
271
+ success: childCompilation.errors?.length === 0,
272
+ });
273
+ });
274
+ });
275
+ }
276
+ _evaluate(filename, source) {
277
+ // Evaluate code
278
+ // css-loader requires the btoa function to exist to correctly generate inline sourcemaps
279
+ const context = {
280
+ btoa(input) {
281
+ return node_buffer_1.Buffer.from(input).toString('base64');
282
+ },
283
+ };
284
+ try {
285
+ vm.runInNewContext(source, context, { filename });
286
+ }
287
+ catch {
288
+ // Error are propagated through the child compilation.
289
+ return null;
290
+ }
291
+ if (typeof context.resource === 'string') {
292
+ return context.resource;
293
+ }
294
+ else if (typeof context.resource?.default === 'string') {
295
+ return context.resource.default;
296
+ }
297
+ throw new Error(`The loader "${filename}" didn't return a string.`);
298
+ }
299
+ async get(filePath) {
300
+ const normalizedFile = (0, paths_1.normalizePath)(filePath);
301
+ let compilationResult = this.fileCache?.get(normalizedFile);
302
+ if (compilationResult === undefined) {
303
+ // cache miss so compile resource
304
+ compilationResult = await this._compile(filePath);
305
+ // Only cache if compilation was successful
306
+ if (this.fileCache && compilationResult.success) {
307
+ this.fileCache.set(normalizedFile, compilationResult);
308
+ }
309
+ }
310
+ return compilationResult.content;
311
+ }
312
+ async process(data, fileExtension, resourceType, containingFile) {
313
+ if (data.trim().length === 0) {
314
+ return '';
315
+ }
316
+ const compilationResult = await this._compile(undefined, data, fileExtension, resourceType, containingFile);
317
+ return compilationResult.content;
318
+ }
319
+ }
320
+ exports.WebpackResourceLoader = WebpackResourceLoader;
321
+ //# sourceMappingURL=resource_loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource_loader.js","sourceRoot":"","sources":["resource_loader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google LLC All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be
6
+ * found in the LICENSE file at https://angular.dev/license
7
+ */
8
+ import * as ts from 'typescript';
9
+ export declare function elideImports(sourceFile: ts.SourceFile, removedNodes: ts.Node[], getTypeChecker: () => ts.TypeChecker, compilerOptions: ts.CompilerOptions): Set<ts.Node>;
@@ -0,0 +1,165 @@
1
+ "use strict";
2
+ /**
3
+ * @license
4
+ * Copyright Google LLC All Rights Reserved.
5
+ *
6
+ * Use of this source code is governed by an MIT-style license that can be
7
+ * found in the LICENSE file at https://angular.dev/license
8
+ */
9
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ var desc = Object.getOwnPropertyDescriptor(m, k);
12
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
13
+ desc = { enumerable: true, get: function() { return m[k]; } };
14
+ }
15
+ Object.defineProperty(o, k2, desc);
16
+ }) : (function(o, m, k, k2) {
17
+ if (k2 === undefined) k2 = k;
18
+ o[k2] = m[k];
19
+ }));
20
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
21
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
22
+ }) : function(o, v) {
23
+ o["default"] = v;
24
+ });
25
+ var __importStar = (this && this.__importStar) || (function () {
26
+ var ownKeys = function(o) {
27
+ ownKeys = Object.getOwnPropertyNames || function (o) {
28
+ var ar = [];
29
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
30
+ return ar;
31
+ };
32
+ return ownKeys(o);
33
+ };
34
+ return function (mod) {
35
+ if (mod && mod.__esModule) return mod;
36
+ var result = {};
37
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
38
+ __setModuleDefault(result, mod);
39
+ return result;
40
+ };
41
+ })();
42
+ Object.defineProperty(exports, "__esModule", { value: true });
43
+ exports.elideImports = elideImports;
44
+ const ts = __importStar(require("typescript"));
45
+ // Remove imports for which all identifiers have been removed.
46
+ // Needs type checker, and works even if it's not the first transformer.
47
+ // Works by removing imports for symbols whose identifiers have all been removed.
48
+ // Doesn't use the `symbol.declarations` because that previous transforms might have removed nodes
49
+ // but the type checker doesn't know.
50
+ // See https://github.com/Microsoft/TypeScript/issues/17552 for more information.
51
+ function elideImports(sourceFile, removedNodes, getTypeChecker, compilerOptions) {
52
+ const importNodeRemovals = new Set();
53
+ if (removedNodes.length === 0) {
54
+ return importNodeRemovals;
55
+ }
56
+ const typeChecker = getTypeChecker();
57
+ // Collect all imports and used identifiers
58
+ const usedSymbols = new Set();
59
+ const imports = [];
60
+ ts.forEachChild(sourceFile, function visit(node) {
61
+ // Skip removed nodes.
62
+ if (removedNodes.includes(node)) {
63
+ return;
64
+ }
65
+ // Consider types for 'implements' as unused.
66
+ // A HeritageClause token can also be an 'AbstractKeyword'
67
+ // which in that case we should not elide the import.
68
+ if (ts.isHeritageClause(node) && node.token === ts.SyntaxKind.ImplementsKeyword) {
69
+ return;
70
+ }
71
+ // Record import and skip
72
+ if (ts.isImportDeclaration(node)) {
73
+ if (!node.importClause?.isTypeOnly) {
74
+ imports.push(node);
75
+ }
76
+ return;
77
+ }
78
+ // Type reference imports do not need to be emitted when emitDecoratorMetadata is disabled.
79
+ if (ts.isTypeReferenceNode(node) && !compilerOptions.emitDecoratorMetadata) {
80
+ return;
81
+ }
82
+ let symbol;
83
+ switch (node.kind) {
84
+ case ts.SyntaxKind.Identifier:
85
+ if (node.parent && ts.isShorthandPropertyAssignment(node.parent)) {
86
+ const shorthandSymbol = typeChecker.getShorthandAssignmentValueSymbol(node.parent);
87
+ if (shorthandSymbol) {
88
+ symbol = shorthandSymbol;
89
+ }
90
+ }
91
+ else {
92
+ symbol = typeChecker.getSymbolAtLocation(node);
93
+ }
94
+ break;
95
+ case ts.SyntaxKind.ExportSpecifier:
96
+ symbol = typeChecker.getExportSpecifierLocalTargetSymbol(node);
97
+ break;
98
+ case ts.SyntaxKind.ShorthandPropertyAssignment:
99
+ symbol = typeChecker.getShorthandAssignmentValueSymbol(node);
100
+ break;
101
+ }
102
+ if (symbol) {
103
+ usedSymbols.add(symbol);
104
+ }
105
+ ts.forEachChild(node, visit);
106
+ });
107
+ if (imports.length === 0) {
108
+ return importNodeRemovals;
109
+ }
110
+ const isUnused = (node) => {
111
+ // Do not remove JSX factory imports
112
+ if (node.text === compilerOptions.jsxFactory) {
113
+ return false;
114
+ }
115
+ const symbol = typeChecker.getSymbolAtLocation(node);
116
+ return symbol && !usedSymbols.has(symbol);
117
+ };
118
+ for (const node of imports) {
119
+ if (!node.importClause) {
120
+ // "import 'abc';"
121
+ continue;
122
+ }
123
+ const namedBindings = node.importClause.namedBindings;
124
+ if (namedBindings && ts.isNamespaceImport(namedBindings)) {
125
+ // "import * as XYZ from 'abc';"
126
+ if (isUnused(namedBindings.name)) {
127
+ importNodeRemovals.add(node);
128
+ }
129
+ }
130
+ else {
131
+ const specifierNodeRemovals = [];
132
+ let clausesCount = 0;
133
+ // "import { XYZ, ... } from 'abc';"
134
+ if (namedBindings && ts.isNamedImports(namedBindings)) {
135
+ let removedClausesCount = 0;
136
+ clausesCount += namedBindings.elements.length;
137
+ for (const specifier of namedBindings.elements) {
138
+ if (specifier.isTypeOnly || isUnused(specifier.name)) {
139
+ removedClausesCount++;
140
+ // in case we don't have any more namedImports we should remove the parent ie the {}
141
+ const nodeToRemove = clausesCount === removedClausesCount ? specifier.parent : specifier;
142
+ specifierNodeRemovals.push(nodeToRemove);
143
+ }
144
+ }
145
+ }
146
+ // "import XYZ from 'abc';"
147
+ if (node.importClause.name) {
148
+ clausesCount++;
149
+ if (node.importClause.isTypeOnly || isUnused(node.importClause.name)) {
150
+ specifierNodeRemovals.push(node.importClause.name);
151
+ }
152
+ }
153
+ if (specifierNodeRemovals.length === clausesCount) {
154
+ importNodeRemovals.add(node);
155
+ }
156
+ else {
157
+ for (const specifierNodeRemoval of specifierNodeRemovals) {
158
+ importNodeRemovals.add(specifierNodeRemoval);
159
+ }
160
+ }
161
+ }
162
+ }
163
+ return importNodeRemovals;
164
+ }
165
+ //# sourceMappingURL=elide_imports.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"elide_imports.js","sourceRoot":"","sources":["elide_imports.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google LLC All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be
6
+ * found in the LICENSE file at https://angular.dev/license
7
+ */
8
+ import ts from 'typescript';
9
+ export declare function findImageDomains(imageDomains: Set<string>): ts.TransformerFactory<ts.SourceFile>;