@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,15 @@
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
+ import { Compiler } from 'webpack';
10
+ export type InputFileSystem = NonNullable<Compiler['inputFileSystem']>;
11
+ export interface InputFileSystemSync extends InputFileSystem {
12
+ readFileSync: NonNullable<InputFileSystem['readFileSync']>;
13
+ statSync: NonNullable<InputFileSystem['statSync']>;
14
+ }
15
+ export declare function createWebpackSystem(input: InputFileSystemSync, currentDirectory: string): ts.System;
@@ -0,0 +1,115 @@
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.createWebpackSystem = createWebpackSystem;
44
+ const ts = __importStar(require("typescript"));
45
+ const paths_1 = require("./paths");
46
+ function shouldNotWrite() {
47
+ throw new Error('Webpack TypeScript System should not write.');
48
+ }
49
+ function createWebpackSystem(input, currentDirectory) {
50
+ // Webpack's CachedInputFileSystem uses the default directory separator in the paths it uses
51
+ // for keys to its cache. If the keys do not match then the file watcher will not purge outdated
52
+ // files and cause stale data to be used in the next rebuild. TypeScript always uses a `/` (POSIX)
53
+ // directory separator internally which is also supported with Windows system APIs. However,
54
+ // if file operations are performed with the non-default directory separator, the Webpack cache
55
+ // will contain a key that will not be purged. `externalizePath` ensures the paths are as expected.
56
+ const system = {
57
+ ...ts.sys,
58
+ readFile(path) {
59
+ let data;
60
+ try {
61
+ data = input.readFileSync((0, paths_1.externalizePath)(path));
62
+ }
63
+ catch {
64
+ return undefined;
65
+ }
66
+ // Strip BOM if present
67
+ let start = 0;
68
+ if (data.length > 3 && data[0] === 0xef && data[1] === 0xbb && data[2] === 0xbf) {
69
+ start = 3;
70
+ }
71
+ return data.toString('utf8', start);
72
+ },
73
+ getFileSize(path) {
74
+ try {
75
+ return input.statSync((0, paths_1.externalizePath)(path)).size;
76
+ }
77
+ catch {
78
+ return 0;
79
+ }
80
+ },
81
+ fileExists(path) {
82
+ try {
83
+ return input.statSync((0, paths_1.externalizePath)(path)).isFile();
84
+ }
85
+ catch {
86
+ return false;
87
+ }
88
+ },
89
+ directoryExists(path) {
90
+ try {
91
+ return input.statSync((0, paths_1.externalizePath)(path)).isDirectory();
92
+ }
93
+ catch {
94
+ return false;
95
+ }
96
+ },
97
+ getModifiedTime(path) {
98
+ try {
99
+ return input.statSync((0, paths_1.externalizePath)(path)).mtime;
100
+ }
101
+ catch {
102
+ return undefined;
103
+ }
104
+ },
105
+ getCurrentDirectory() {
106
+ return currentDirectory;
107
+ },
108
+ writeFile: shouldNotWrite,
109
+ createDirectory: shouldNotWrite,
110
+ deleteFile: shouldNotWrite,
111
+ setModifiedTime: shouldNotWrite,
112
+ };
113
+ return system;
114
+ }
115
+ //# sourceMappingURL=system.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system.js","sourceRoot":"","sources":["system.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBH,kDAkEC;AAhFD,+CAAiC;AAEjC,mCAA0C;AAQ1C,SAAS,cAAc;IACrB,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;AACjE,CAAC;AAED,SAAgB,mBAAmB,CACjC,KAA0B,EAC1B,gBAAwB;IAExB,4FAA4F;IAC5F,gGAAgG;IAChG,kGAAkG;IAClG,4FAA4F;IAC5F,+FAA+F;IAC/F,mGAAmG;IACnG,MAAM,MAAM,GAAc;QACxB,GAAG,EAAE,CAAC,GAAG;QACT,QAAQ,CAAC,IAAY;YACnB,IAAI,IAAI,CAAC;YACT,IAAI,CAAC;gBACH,IAAI,GAAG,KAAK,CAAC,YAAY,CAAC,IAAA,uBAAe,EAAC,IAAI,CAAC,CAAC,CAAC;YACnD,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,SAAS,CAAC;YACnB,CAAC;YAED,uBAAuB;YACvB,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBAChF,KAAK,GAAG,CAAC,CAAC;YACZ,CAAC;YAED,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACtC,CAAC;QACD,WAAW,CAAC,IAAY;YACtB,IAAI,CAAC;gBACH,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAA,uBAAe,EAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;YACpD,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,CAAC,CAAC;YACX,CAAC;QACH,CAAC;QACD,UAAU,CAAC,IAAY;YACrB,IAAI,CAAC;gBACH,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAA,uBAAe,EAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;YACxD,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QACD,eAAe,CAAC,IAAY;YAC1B,IAAI,CAAC;gBACH,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAA,uBAAe,EAAC,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7D,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QACD,eAAe,CAAC,IAAY;YAC1B,IAAI,CAAC;gBACH,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAA,uBAAe,EAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;YACrD,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;QACD,mBAAmB;YACjB,OAAO,gBAAgB,CAAC;QAC1B,CAAC;QACD,SAAS,EAAE,cAAc;QACzB,eAAe,EAAE,cAAc;QAC/B,UAAU,EAAE,cAAc;QAC1B,eAAe,EAAE,cAAc;KAChC,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,18 @@
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 createAotTransformers(builder: ts.BuilderProgram, options: {
10
+ emitClassMetadata?: boolean;
11
+ emitNgModuleScope?: boolean;
12
+ emitSetClassDebugInfo?: boolean;
13
+ }, imageDomains: Set<string>): ts.CustomTransformers;
14
+ export declare function createJitTransformers(builder: ts.BuilderProgram, compilerCli: typeof import('@angular/compiler-cli/private/tooling'), options: {
15
+ inlineStyleFileExtension?: string;
16
+ }): ts.CustomTransformers;
17
+ export declare function mergeTransformers(first: ts.CustomTransformers, second: ts.CustomTransformers): ts.CustomTransformers;
18
+ export declare function replaceBootstrap(getTypeChecker: () => ts.TypeChecker): ts.TransformerFactory<ts.SourceFile>;
@@ -0,0 +1,137 @@
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.createAotTransformers = createAotTransformers;
44
+ exports.createJitTransformers = createJitTransformers;
45
+ exports.mergeTransformers = mergeTransformers;
46
+ exports.replaceBootstrap = replaceBootstrap;
47
+ const ts = __importStar(require("typescript"));
48
+ const elide_imports_1 = require("../transformers/elide_imports");
49
+ const find_image_domains_1 = require("../transformers/find_image_domains");
50
+ const remove_ivy_jit_support_calls_1 = require("../transformers/remove-ivy-jit-support-calls");
51
+ const replace_resources_1 = require("../transformers/replace_resources");
52
+ function createAotTransformers(builder, options, imageDomains) {
53
+ const getTypeChecker = () => builder.getProgram().getTypeChecker();
54
+ const transformers = {
55
+ before: [(0, find_image_domains_1.findImageDomains)(imageDomains), replaceBootstrap(getTypeChecker)],
56
+ after: [],
57
+ };
58
+ const removeClassMetadata = !options.emitClassMetadata;
59
+ const removeNgModuleScope = !options.emitNgModuleScope;
60
+ const removeSetClassDebugInfo = !options.emitSetClassDebugInfo;
61
+ if (removeClassMetadata || removeNgModuleScope || removeSetClassDebugInfo) {
62
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
63
+ transformers.before.push((0, remove_ivy_jit_support_calls_1.removeIvyJitSupportCalls)(removeClassMetadata, removeNgModuleScope, removeSetClassDebugInfo, getTypeChecker));
64
+ }
65
+ return transformers;
66
+ }
67
+ function createJitTransformers(builder, compilerCli, options) {
68
+ const getTypeChecker = () => builder.getProgram().getTypeChecker();
69
+ return {
70
+ before: [
71
+ (0, replace_resources_1.replaceResources)(() => true, getTypeChecker, options.inlineStyleFileExtension),
72
+ compilerCli.constructorParametersDownlevelTransform(builder.getProgram()),
73
+ ],
74
+ };
75
+ }
76
+ function mergeTransformers(first, second) {
77
+ const result = {};
78
+ if (first.before || second.before) {
79
+ result.before = [...(first.before || []), ...(second.before || [])];
80
+ }
81
+ if (first.after || second.after) {
82
+ result.after = [...(first.after || []), ...(second.after || [])];
83
+ }
84
+ if (first.afterDeclarations || second.afterDeclarations) {
85
+ result.afterDeclarations = [
86
+ ...(first.afterDeclarations || []),
87
+ ...(second.afterDeclarations || []),
88
+ ];
89
+ }
90
+ return result;
91
+ }
92
+ /**
93
+ * The name of the Angular platform that should be replaced within
94
+ * bootstrap call expressions to support AOT.
95
+ */
96
+ const PLATFORM_BROWSER_DYNAMIC_NAME = 'platformBrowserDynamic';
97
+ function replaceBootstrap(getTypeChecker) {
98
+ return (context) => {
99
+ let bootstrapImport;
100
+ let bootstrapNamespace;
101
+ const replacedNodes = [];
102
+ const nodeFactory = context.factory;
103
+ const visitNode = (node) => {
104
+ if (ts.isCallExpression(node) && ts.isIdentifier(node.expression)) {
105
+ const target = node.expression;
106
+ if (target.text === PLATFORM_BROWSER_DYNAMIC_NAME) {
107
+ if (!bootstrapNamespace) {
108
+ bootstrapNamespace = nodeFactory.createUniqueName('__NgCli_bootstrap_');
109
+ bootstrapImport = nodeFactory.createImportDeclaration(undefined, nodeFactory.createImportClause(undefined, undefined, nodeFactory.createNamespaceImport(bootstrapNamespace)), nodeFactory.createStringLiteral('@angular/platform-browser'));
110
+ }
111
+ replacedNodes.push(target);
112
+ return nodeFactory.updateCallExpression(node, nodeFactory.createPropertyAccessExpression(bootstrapNamespace, 'platformBrowser'), node.typeArguments, node.arguments);
113
+ }
114
+ }
115
+ return ts.visitEachChild(node, visitNode, context);
116
+ };
117
+ return (sourceFile) => {
118
+ if (!sourceFile.text.includes(PLATFORM_BROWSER_DYNAMIC_NAME)) {
119
+ return sourceFile;
120
+ }
121
+ let updatedSourceFile = ts.visitEachChild(sourceFile, visitNode, context);
122
+ if (bootstrapImport) {
123
+ // Remove any unused platform browser dynamic imports
124
+ const removals = (0, elide_imports_1.elideImports)(updatedSourceFile, replacedNodes, getTypeChecker, context.getCompilerOptions());
125
+ if (removals.size > 0) {
126
+ updatedSourceFile = ts.visitEachChild(updatedSourceFile, (node) => (removals.has(node) ? undefined : node), context);
127
+ }
128
+ // Add new platform browser import
129
+ return nodeFactory.updateSourceFile(updatedSourceFile, ts.setTextRange(nodeFactory.createNodeArray([bootstrapImport, ...updatedSourceFile.statements]), sourceFile.statements));
130
+ }
131
+ else {
132
+ return updatedSourceFile;
133
+ }
134
+ };
135
+ };
136
+ }
137
+ //# sourceMappingURL=transformation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transformation.js","sourceRoot":"","sources":["transformation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
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, LoaderContext } from 'webpack';
9
+ export declare const InlineAngularResourceLoaderPath: string;
10
+ export declare const InlineAngularResourceSymbol: unique symbol;
11
+ export interface CompilationWithInlineAngularResource extends Compilation {
12
+ [InlineAngularResourceSymbol]: string;
13
+ }
14
+ export default function (this: LoaderContext<{
15
+ data?: string;
16
+ }>): void;
@@ -0,0 +1,25 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.InlineAngularResourceSymbol = exports.InlineAngularResourceLoaderPath = void 0;
11
+ exports.default = default_1;
12
+ exports.InlineAngularResourceLoaderPath = __filename;
13
+ exports.InlineAngularResourceSymbol = Symbol('@ngtools/webpack[angular-resource]');
14
+ function default_1() {
15
+ const callback = this.async();
16
+ const { data } = this.getOptions();
17
+ if (data) {
18
+ callback(undefined, Buffer.from(data, 'base64').toString());
19
+ }
20
+ else {
21
+ const content = this._compilation[exports.InlineAngularResourceSymbol];
22
+ callback(undefined, content);
23
+ }
24
+ }
25
+ //# sourceMappingURL=inline-resource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inline-resource.js","sourceRoot":"","sources":["inline-resource.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAcH,4BAYC;AAtBY,QAAA,+BAA+B,GAAW,UAAU,CAAC;AAErD,QAAA,2BAA2B,GAAkB,MAAM,CAC9D,oCAAoC,CACrC,CAAC;AAMF;IACE,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;IAC9B,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;IAEnC,IAAI,IAAI,EAAE,CAAC;QACT,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC9D,CAAC;SAAM,CAAC;QACN,MAAM,OAAO,GAAI,IAAI,CAAC,YAAqD,CACzE,mCAA2B,CAC5B,CAAC;QACF,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC/B,CAAC;AACH,CAAC"}
@@ -0,0 +1,32 @@
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 { CompilerOptions } from 'typescript';
9
+ import type { Resolver } from 'webpack';
10
+ export interface TypeScriptPathsPluginOptions extends Pick<CompilerOptions, 'paths' | 'baseUrl'> {
11
+ }
12
+ type ResolverRequest = NonNullable<Parameters<Parameters<Resolver['resolve']>[4]>[2]>;
13
+ interface PathPluginResolverRequest extends ResolverRequest {
14
+ typescriptPathMapped?: boolean;
15
+ }
16
+ export declare class TypeScriptPathsPlugin {
17
+ private baseUrl?;
18
+ private patterns?;
19
+ constructor(options?: TypeScriptPathsPluginOptions);
20
+ /**
21
+ * Update the plugin with new path mapping option values.
22
+ * The options will also be preprocessed to reduce the overhead of individual resolve actions
23
+ * during a build.
24
+ *
25
+ * @param options The `paths` and `baseUrl` options from TypeScript's `CompilerOptions`.
26
+ */
27
+ update(options: TypeScriptPathsPluginOptions): void;
28
+ apply(resolver: Resolver): void;
29
+ findReplacements(originalRequest: string): IterableIterator<string>;
30
+ createReplacementRequests(request: PathPluginResolverRequest, originalRequest: string): IterableIterator<PathPluginResolverRequest>;
31
+ }
32
+ export {};
@@ -0,0 +1,255 @@
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.TypeScriptPathsPlugin = void 0;
44
+ const path = __importStar(require("node:path"));
45
+ class TypeScriptPathsPlugin {
46
+ baseUrl;
47
+ patterns;
48
+ constructor(options) {
49
+ if (options) {
50
+ this.update(options);
51
+ }
52
+ }
53
+ /**
54
+ * Update the plugin with new path mapping option values.
55
+ * The options will also be preprocessed to reduce the overhead of individual resolve actions
56
+ * during a build.
57
+ *
58
+ * @param options The `paths` and `baseUrl` options from TypeScript's `CompilerOptions`.
59
+ */
60
+ update(options) {
61
+ this.baseUrl = options.baseUrl;
62
+ this.patterns = undefined;
63
+ if (options.paths) {
64
+ for (const [pattern, potentials] of Object.entries(options.paths)) {
65
+ // Ignore any entries that would not result in a new mapping
66
+ if (potentials.length === 0 || potentials.every((potential) => potential === '*')) {
67
+ continue;
68
+ }
69
+ const starIndex = pattern.indexOf('*');
70
+ let prefix = pattern;
71
+ let suffix;
72
+ if (starIndex > -1) {
73
+ prefix = pattern.slice(0, starIndex);
74
+ if (starIndex < pattern.length - 1) {
75
+ suffix = pattern.slice(starIndex + 1);
76
+ }
77
+ }
78
+ this.patterns ??= [];
79
+ this.patterns.push({
80
+ starIndex,
81
+ prefix,
82
+ suffix,
83
+ potentials: potentials.map((potential) => {
84
+ const potentialStarIndex = potential.indexOf('*');
85
+ if (potentialStarIndex === -1) {
86
+ return { hasStar: false, prefix: potential };
87
+ }
88
+ return {
89
+ hasStar: true,
90
+ prefix: potential.slice(0, potentialStarIndex),
91
+ suffix: potentialStarIndex < potential.length - 1
92
+ ? potential.slice(potentialStarIndex + 1)
93
+ : undefined,
94
+ };
95
+ }),
96
+ });
97
+ }
98
+ // Sort patterns so that exact matches take priority then largest prefix match
99
+ this.patterns?.sort((a, b) => {
100
+ if (a.starIndex === -1) {
101
+ return -1;
102
+ }
103
+ else if (b.starIndex === -1) {
104
+ return 1;
105
+ }
106
+ else {
107
+ return b.starIndex - a.starIndex;
108
+ }
109
+ });
110
+ }
111
+ }
112
+ apply(resolver) {
113
+ const target = resolver.ensureHook('resolve');
114
+ // To support synchronous resolvers this hook cannot be promise based.
115
+ // Webpack supports synchronous resolution with `tap` and `tapAsync` hooks.
116
+ resolver
117
+ .getHook('described-resolve')
118
+ .tapAsync('TypeScriptPathsPlugin', (request, resolveContext, callback) => {
119
+ // Preprocessing of the options will ensure that `patterns` is either undefined or has elements to check
120
+ if (!this.patterns) {
121
+ callback();
122
+ return;
123
+ }
124
+ if (!request || request.typescriptPathMapped) {
125
+ callback();
126
+ return;
127
+ }
128
+ const originalRequest = request.request || request.path;
129
+ if (!originalRequest) {
130
+ callback();
131
+ return;
132
+ }
133
+ // Only work on Javascript/TypeScript issuers.
134
+ if (!request?.context?.issuer?.match(/\.[cm]?[jt]sx?$/)) {
135
+ callback();
136
+ return;
137
+ }
138
+ // Absolute requests are not mapped
139
+ if (path.isAbsolute(originalRequest)) {
140
+ callback();
141
+ return;
142
+ }
143
+ switch (originalRequest[0]) {
144
+ case '.':
145
+ // Relative requests are not mapped
146
+ callback();
147
+ return;
148
+ case '!':
149
+ // Ignore all webpack special requests
150
+ if (originalRequest.length > 1 && originalRequest[1] === '!') {
151
+ callback();
152
+ return;
153
+ }
154
+ break;
155
+ }
156
+ // A generator is used to limit the amount of replacements requests that need to be created.
157
+ // For example, if the first one resolves, any others are not needed and do not need
158
+ // to be created.
159
+ const requests = this.createReplacementRequests(request, originalRequest);
160
+ const tryResolve = () => {
161
+ const next = requests.next();
162
+ if (next.done) {
163
+ callback();
164
+ return;
165
+ }
166
+ resolver.doResolve(target, next.value, '', resolveContext, (error, result) => {
167
+ if (error) {
168
+ callback(error);
169
+ }
170
+ else if (result) {
171
+ callback(undefined, result);
172
+ }
173
+ else {
174
+ tryResolve();
175
+ }
176
+ });
177
+ };
178
+ tryResolve();
179
+ });
180
+ }
181
+ *findReplacements(originalRequest) {
182
+ if (!this.patterns) {
183
+ return;
184
+ }
185
+ // check if any path mapping rules are relevant
186
+ for (const { starIndex, prefix, suffix, potentials } of this.patterns) {
187
+ let partial;
188
+ if (starIndex === -1) {
189
+ // No star means an exact match is required
190
+ if (prefix === originalRequest) {
191
+ partial = '';
192
+ }
193
+ }
194
+ else if (starIndex === 0 && !suffix) {
195
+ // Everything matches a single wildcard pattern ("*")
196
+ partial = originalRequest;
197
+ }
198
+ else if (!suffix) {
199
+ // No suffix means the star is at the end of the pattern
200
+ if (originalRequest.startsWith(prefix)) {
201
+ partial = originalRequest.slice(prefix.length);
202
+ }
203
+ }
204
+ else {
205
+ // Star was in the middle of the pattern
206
+ if (originalRequest.startsWith(prefix) && originalRequest.endsWith(suffix)) {
207
+ partial = originalRequest.substring(prefix.length, originalRequest.length - suffix.length);
208
+ }
209
+ }
210
+ // If request was not matched, move on to the next pattern
211
+ if (partial === undefined) {
212
+ continue;
213
+ }
214
+ // Create the full replacement values based on the original request and the potentials
215
+ // for the successfully matched pattern.
216
+ for (const { hasStar, prefix, suffix } of potentials) {
217
+ let replacement = prefix;
218
+ if (hasStar) {
219
+ replacement += partial;
220
+ if (suffix) {
221
+ replacement += suffix;
222
+ }
223
+ }
224
+ yield replacement;
225
+ }
226
+ }
227
+ }
228
+ *createReplacementRequests(request, originalRequest) {
229
+ for (const replacement of this.findReplacements(originalRequest)) {
230
+ const targetPath = path.resolve(this.baseUrl ?? '', replacement);
231
+ // Resolution in the original callee location, but with the updated request
232
+ // to point to the mapped target location.
233
+ yield {
234
+ ...request,
235
+ request: targetPath,
236
+ typescriptPathMapped: true,
237
+ };
238
+ // If there is no extension. i.e. the target does not refer to an explicit
239
+ // file, then this is a candidate for module/package resolution.
240
+ const canBeModule = path.extname(targetPath) === '';
241
+ if (canBeModule) {
242
+ // Resolution in the target location, preserving the original request.
243
+ // This will work with the `resolve-in-package` resolution hook, supporting
244
+ // package exports for e.g. locally-built APF libraries.
245
+ yield {
246
+ ...request,
247
+ path: targetPath,
248
+ typescriptPathMapped: true,
249
+ };
250
+ }
251
+ }
252
+ }
253
+ }
254
+ exports.TypeScriptPathsPlugin = TypeScriptPathsPlugin;
255
+ //# sourceMappingURL=paths-plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paths-plugin.js","sourceRoot":"","sources":["paths-plugin.ts"],"names":[],"mappings":"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"}