@angular-devkit/build-angular 15.2.0-next.3 → 15.2.0-rc.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 (36) hide show
  1. package/package.json +13 -12
  2. package/src/babel/plugins/adjust-static-class-members.js +64 -19
  3. package/src/builders/browser-esbuild/angular/jit-compilation.d.ts +23 -0
  4. package/src/builders/browser-esbuild/angular/jit-compilation.js +99 -0
  5. package/src/builders/browser-esbuild/angular/jit-plugin-callbacks.d.ts +21 -0
  6. package/src/builders/browser-esbuild/angular/jit-plugin-callbacks.js +115 -0
  7. package/src/builders/browser-esbuild/angular/jit-resource-transformer.d.ts +17 -0
  8. package/src/builders/browser-esbuild/angular/jit-resource-transformer.js +186 -0
  9. package/src/builders/browser-esbuild/angular/uri.d.ts +54 -0
  10. package/src/builders/browser-esbuild/angular/uri.js +75 -0
  11. package/src/builders/browser-esbuild/commonjs-checker.js +4 -1
  12. package/src/builders/browser-esbuild/compiler-plugin.d.ts +1 -0
  13. package/src/builders/browser-esbuild/compiler-plugin.js +17 -11
  14. package/src/builders/browser-esbuild/experimental-warnings.js +1 -4
  15. package/src/builders/browser-esbuild/index.js +4 -9
  16. package/src/builders/browser-esbuild/javascript-transformer-worker.d.ts +1 -0
  17. package/src/builders/browser-esbuild/javascript-transformer-worker.js +2 -2
  18. package/src/builders/browser-esbuild/javascript-transformer.d.ts +1 -0
  19. package/src/builders/browser-esbuild/javascript-transformer.js +3 -2
  20. package/src/builders/browser-esbuild/less-plugin.d.ts +14 -0
  21. package/src/builders/browser-esbuild/less-plugin.js +108 -0
  22. package/src/builders/browser-esbuild/options.d.ts +1 -0
  23. package/src/builders/browser-esbuild/options.js +3 -2
  24. package/src/builders/browser-esbuild/stylesheets.d.ts +1 -1
  25. package/src/builders/browser-esbuild/stylesheets.js +18 -7
  26. package/src/builders/karma/find-tests-plugin.js +12 -8
  27. package/src/builders/karma/index.js +13 -1
  28. package/src/typings.d.ts +8 -0
  29. package/src/utils/esbuild-targets.js +2 -2
  30. package/src/utils/index-file/html-rewriting-stream.d.ts +1 -1
  31. package/src/utils/index-file/html-rewriting-stream.js +4 -25
  32. package/src/utils/service-worker.js +2 -2
  33. package/src/webpack/plugins/karma/karma-context.html +2 -2
  34. package/src/webpack/plugins/karma/karma-debug.html +2 -2
  35. package/src/webpack/plugins/scripts-webpack-plugin.js +10 -6
  36. package/src/webpack/plugins/typescript.js +3 -2
@@ -0,0 +1,17 @@
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.io/license
7
+ */
8
+ import ts from 'typescript';
9
+ /**
10
+ * Creates a TypeScript Transformer to transform Angular Component resource references into
11
+ * static import statements. This transformer is used in Angular's JIT compilation mode to
12
+ * support processing of component resources. When in AOT mode, the Angular AOT compiler handles
13
+ * this processing and this transformer is not used.
14
+ * @param getTypeChecker A function that returns a TypeScript TypeChecker instance for the program.
15
+ * @returns A TypeScript transformer factory.
16
+ */
17
+ export declare function createJitResourceTransformer(getTypeChecker: () => ts.TypeChecker): ts.TransformerFactory<ts.SourceFile>;
@@ -0,0 +1,186 @@
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.io/license
8
+ */
9
+ var __importDefault = (this && this.__importDefault) || function (mod) {
10
+ return (mod && mod.__esModule) ? mod : { "default": mod };
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.createJitResourceTransformer = void 0;
14
+ const typescript_1 = __importDefault(require("typescript"));
15
+ const uri_1 = require("./uri");
16
+ /**
17
+ * Creates a TypeScript Transformer to transform Angular Component resource references into
18
+ * static import statements. This transformer is used in Angular's JIT compilation mode to
19
+ * support processing of component resources. When in AOT mode, the Angular AOT compiler handles
20
+ * this processing and this transformer is not used.
21
+ * @param getTypeChecker A function that returns a TypeScript TypeChecker instance for the program.
22
+ * @returns A TypeScript transformer factory.
23
+ */
24
+ function createJitResourceTransformer(getTypeChecker) {
25
+ return (context) => {
26
+ const typeChecker = getTypeChecker();
27
+ const nodeFactory = context.factory;
28
+ const resourceImportDeclarations = [];
29
+ const visitNode = (node) => {
30
+ var _a;
31
+ if (typescript_1.default.isClassDeclaration(node)) {
32
+ const decorators = typescript_1.default.getDecorators(node);
33
+ if (!decorators || decorators.length === 0) {
34
+ return node;
35
+ }
36
+ return nodeFactory.updateClassDeclaration(node, [
37
+ ...decorators.map((current) => visitDecorator(nodeFactory, current, typeChecker, resourceImportDeclarations)),
38
+ ...((_a = typescript_1.default.getModifiers(node)) !== null && _a !== void 0 ? _a : []),
39
+ ], node.name, node.typeParameters, node.heritageClauses, node.members);
40
+ }
41
+ return typescript_1.default.visitEachChild(node, visitNode, context);
42
+ };
43
+ return (sourceFile) => {
44
+ const updatedSourceFile = typescript_1.default.visitEachChild(sourceFile, visitNode, context);
45
+ if (resourceImportDeclarations.length > 0) {
46
+ return nodeFactory.updateSourceFile(updatedSourceFile, typescript_1.default.setTextRange(nodeFactory.createNodeArray([...resourceImportDeclarations, ...updatedSourceFile.statements], updatedSourceFile.statements.hasTrailingComma), updatedSourceFile.statements), updatedSourceFile.isDeclarationFile, updatedSourceFile.referencedFiles, updatedSourceFile.typeReferenceDirectives, updatedSourceFile.hasNoDefaultLib, updatedSourceFile.libReferenceDirectives);
47
+ }
48
+ else {
49
+ return updatedSourceFile;
50
+ }
51
+ };
52
+ };
53
+ }
54
+ exports.createJitResourceTransformer = createJitResourceTransformer;
55
+ function visitDecorator(nodeFactory, node, typeChecker, resourceImportDeclarations) {
56
+ const origin = getDecoratorOrigin(node, typeChecker);
57
+ if (!origin || origin.module !== '@angular/core' || origin.name !== 'Component') {
58
+ return node;
59
+ }
60
+ if (!typescript_1.default.isCallExpression(node.expression)) {
61
+ return node;
62
+ }
63
+ const decoratorFactory = node.expression;
64
+ const args = decoratorFactory.arguments;
65
+ if (args.length !== 1 || !typescript_1.default.isObjectLiteralExpression(args[0])) {
66
+ // Unsupported component metadata
67
+ return node;
68
+ }
69
+ const objectExpression = args[0];
70
+ const styleReplacements = [];
71
+ // visit all properties
72
+ let properties = typescript_1.default.visitNodes(objectExpression.properties, (node) => typescript_1.default.isObjectLiteralElementLike(node)
73
+ ? visitComponentMetadata(nodeFactory, node, styleReplacements, resourceImportDeclarations)
74
+ : node);
75
+ // replace properties with updated properties
76
+ if (styleReplacements.length > 0) {
77
+ const styleProperty = nodeFactory.createPropertyAssignment(nodeFactory.createIdentifier('styles'), nodeFactory.createArrayLiteralExpression(styleReplacements));
78
+ properties = nodeFactory.createNodeArray([...properties, styleProperty]);
79
+ }
80
+ return nodeFactory.updateDecorator(node, nodeFactory.updateCallExpression(decoratorFactory, decoratorFactory.expression, decoratorFactory.typeArguments, [nodeFactory.updateObjectLiteralExpression(objectExpression, properties)]));
81
+ }
82
+ function visitComponentMetadata(nodeFactory, node, styleReplacements, resourceImportDeclarations) {
83
+ if (!typescript_1.default.isPropertyAssignment(node) || typescript_1.default.isComputedPropertyName(node.name)) {
84
+ return node;
85
+ }
86
+ switch (node.name.text) {
87
+ case 'templateUrl':
88
+ // Only analyze string literals
89
+ if (!typescript_1.default.isStringLiteral(node.initializer) &&
90
+ !typescript_1.default.isNoSubstitutionTemplateLiteral(node.initializer)) {
91
+ return node;
92
+ }
93
+ const url = node.initializer.text;
94
+ if (!url) {
95
+ return node;
96
+ }
97
+ return nodeFactory.updatePropertyAssignment(node, nodeFactory.createIdentifier('template'), createResourceImport(nodeFactory, (0, uri_1.generateJitFileUri)(url, 'template'), resourceImportDeclarations));
98
+ case 'styles':
99
+ if (!typescript_1.default.isArrayLiteralExpression(node.initializer)) {
100
+ return node;
101
+ }
102
+ const inlineStyles = typescript_1.default.visitNodes(node.initializer.elements, (node) => {
103
+ if (!typescript_1.default.isStringLiteral(node) && !typescript_1.default.isNoSubstitutionTemplateLiteral(node)) {
104
+ return node;
105
+ }
106
+ const contents = node.text;
107
+ if (!contents) {
108
+ // An empty inline style is equivalent to not having a style element
109
+ return undefined;
110
+ }
111
+ return createResourceImport(nodeFactory, (0, uri_1.generateJitInlineUri)(contents, 'style'), resourceImportDeclarations);
112
+ });
113
+ // Inline styles should be placed first
114
+ styleReplacements.unshift(...inlineStyles);
115
+ // The inline styles will be added afterwards in combination with any external styles
116
+ return undefined;
117
+ case 'styleUrls':
118
+ if (!typescript_1.default.isArrayLiteralExpression(node.initializer)) {
119
+ return node;
120
+ }
121
+ const externalStyles = typescript_1.default.visitNodes(node.initializer.elements, (node) => {
122
+ if (!typescript_1.default.isStringLiteral(node) && !typescript_1.default.isNoSubstitutionTemplateLiteral(node)) {
123
+ return node;
124
+ }
125
+ const url = node.text;
126
+ if (!url) {
127
+ return node;
128
+ }
129
+ return createResourceImport(nodeFactory, (0, uri_1.generateJitFileUri)(url, 'style'), resourceImportDeclarations);
130
+ });
131
+ // External styles are applied after any inline styles
132
+ styleReplacements.push(...externalStyles);
133
+ // The external styles will be added afterwards in combination with any inline styles
134
+ return undefined;
135
+ default:
136
+ // All other elements are passed through
137
+ return node;
138
+ }
139
+ }
140
+ function createResourceImport(nodeFactory, url, resourceImportDeclarations) {
141
+ const urlLiteral = nodeFactory.createStringLiteral(url);
142
+ const importName = nodeFactory.createIdentifier(`__NG_CLI_RESOURCE__${resourceImportDeclarations.length}`);
143
+ resourceImportDeclarations.push(nodeFactory.createImportDeclaration(undefined, nodeFactory.createImportClause(false, importName, undefined), urlLiteral));
144
+ return importName;
145
+ }
146
+ function getDecoratorOrigin(decorator, typeChecker) {
147
+ if (!typescript_1.default.isCallExpression(decorator.expression)) {
148
+ return null;
149
+ }
150
+ let identifier;
151
+ let name = '';
152
+ if (typescript_1.default.isPropertyAccessExpression(decorator.expression.expression)) {
153
+ identifier = decorator.expression.expression.expression;
154
+ name = decorator.expression.expression.name.text;
155
+ }
156
+ else if (typescript_1.default.isIdentifier(decorator.expression.expression)) {
157
+ identifier = decorator.expression.expression;
158
+ }
159
+ else {
160
+ return null;
161
+ }
162
+ // NOTE: resolver.getReferencedImportDeclaration would work as well but is internal
163
+ const symbol = typeChecker.getSymbolAtLocation(identifier);
164
+ if (symbol && symbol.declarations && symbol.declarations.length > 0) {
165
+ const declaration = symbol.declarations[0];
166
+ let module;
167
+ if (typescript_1.default.isImportSpecifier(declaration)) {
168
+ name = (declaration.propertyName || declaration.name).text;
169
+ module = declaration.parent.parent.parent.moduleSpecifier.text;
170
+ }
171
+ else if (typescript_1.default.isNamespaceImport(declaration)) {
172
+ // Use the name from the decorator namespace property access
173
+ module = declaration.parent.parent.moduleSpecifier.text;
174
+ }
175
+ else if (typescript_1.default.isImportClause(declaration)) {
176
+ name = declaration.name.text;
177
+ module = declaration.parent.moduleSpecifier.text;
178
+ }
179
+ else {
180
+ return null;
181
+ }
182
+ return { name, module };
183
+ }
184
+ return null;
185
+ }
186
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaml0LXJlc291cmNlLXRyYW5zZm9ybWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhcl9kZXZraXQvYnVpbGRfYW5ndWxhci9zcmMvYnVpbGRlcnMvYnJvd3Nlci1lc2J1aWxkL2FuZ3VsYXIvaml0LXJlc291cmNlLXRyYW5zZm9ybWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7Ozs7OztBQUVILDREQUE0QjtBQUM1QiwrQkFBaUU7QUFFakU7Ozs7Ozs7R0FPRztBQUNILFNBQWdCLDRCQUE0QixDQUMxQyxjQUFvQztJQUVwQyxPQUFPLENBQUMsT0FBaUMsRUFBRSxFQUFFO1FBQzNDLE1BQU0sV0FBVyxHQUFHLGNBQWMsRUFBRSxDQUFDO1FBQ3JDLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUM7UUFDcEMsTUFBTSwwQkFBMEIsR0FBMkIsRUFBRSxDQUFDO1FBRTlELE1BQU0sU0FBUyxHQUFlLENBQUMsSUFBYSxFQUFFLEVBQUU7O1lBQzlDLElBQUksb0JBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDL0IsTUFBTSxVQUFVLEdBQUcsb0JBQUUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBRTFDLElBQUksQ0FBQyxVQUFVLElBQUksVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7b0JBQzFDLE9BQU8sSUFBSSxDQUFDO2lCQUNiO2dCQUVELE9BQU8sV0FBVyxDQUFDLHNCQUFzQixDQUN2QyxJQUFJLEVBQ0o7b0JBQ0UsR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FDNUIsY0FBYyxDQUFDLFdBQVcsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLDBCQUEwQixDQUFDLENBQzlFO29CQUNELEdBQUcsQ0FBQyxNQUFBLG9CQUFFLENBQUMsWUFB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QUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGVBQW9DLENBQUMsSUFBSSxDQUFDO1NBQ3RGO2FBQU0sSUFBSSxvQkFBRSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQzVDLDREQUE0RDtZQUM1RCxNQUFNLEdBQUksV0FBVyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsZUFBb0MsQ0FBQyxJQUFJLENBQUM7U0FDL0U7YUFBTSxJQUFJLG9CQUFFLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQ3pDLElBQUksR0FBSSxXQUFXLENBQUMsSUFBc0IsQ0FBQyxJQUFJLENBQUM7WUFDaEQsTUFBTSxHQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsZUFBb0MsQ0FBQyxJQUFJLENBQUM7U0FDeEU7YUFBTTtZQUNMLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO0tBQ3pCO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB0cyBmcm9tICd0eXBlc2NyaXB0JztcbmltcG9ydCB7IGdlbmVyYXRlSml0RmlsZVVyaSwgZ2VuZXJhdGVKaXRJbmxpbmVVcmkgfSBmcm9tICcuL3VyaSc7XG5cbi8qKlxuICogQ3JlYXRlcyBhIFR5cGVTY3JpcHQgVHJhbnNmb3JtZXIgdG8gdHJhbnNmb3JtIEFuZ3VsYXIgQ29tcG9uZW50IHJlc291cmNlIHJlZmVyZW5jZXMgaW50b1xuICogc3RhdGljIGltcG9ydCBzdGF0ZW1lbnRzLiBUaGlzIHRyYW5zZm9ybWVyIGlzIHVzZWQgaW4gQW5ndWxhcidzIEpJVCBjb21waWxhdGlvbiBtb2RlIHRvXG4gKiBzdXBwb3J0IHByb2Nlc3Npbmcgb2YgY29tcG9uZW50IHJlc291cmNlcy4gV2hlbiBpbiBBT1QgbW9kZSwgdGhlIEFuZ3VsYXIgQU9UIGNvbXBpbGVyIGhhbmRsZXNcbiAqIHRoaXMgcHJvY2Vzc2luZyBhbmQgdGhpcyB0cmFuc2Zvcm1lciBpcyBub3QgdXNlZC5cbiAqIEBwYXJhbSBnZXRUeXBlQ2hlY2tlciBBIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhIFR5cGVTY3JpcHQgVHlwZUNoZWNrZXIgaW5zdGFuY2UgZm9yIHRoZSBwcm9ncmFtLlxuICogQHJldHVybnMgQSBUeXBlU2NyaXB0IHRyYW5zZm9ybWVyIGZhY3RvcnkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVKaXRSZXNvdXJjZVRyYW5zZm9ybWVyKFxuICBnZXRUeXBlQ2hlY2tlcjogKCkgPT4gdHMuVHlwZUNoZWNrZXIsXG4pOiB0cy5UcmFuc2Zvcm1lckZhY3Rvcnk8dHMuU291cmNlRmlsZT4ge1xuICByZXR1cm4gKGNvbnRleHQ6IHRzLlRyYW5zZm9ybWF0aW9uQ29udGV4dCkgPT4ge1xuICAgIGNvbnN0IHR5cGVDaGVja2VyID0gZ2V0VHlwZUNoZWNrZXIoKTtcbiAgICBjb25zdCBub2RlRmFjdG9yeSA9IGNvbnRleHQuZmFjdG9yeTtcbiAgICBjb25zdCByZXNvdXJjZUltcG9ydERlY2xhcmF0aW9uczogdHMuSW1wb3J0RGVjbGFyYXRpb25bXSA9IFtdO1xuXG4gICAgY29uc3QgdmlzaXROb2RlOiB0cy5WaXNpdG9yID0gKG5vZGU6IHRzLk5vZGUpID0+IHtcbiAgICAgIGlmICh0cy5pc0NsYXNzRGVjbGFyYXRpb24obm9kZSkpIHtcbiAgICAgICAgY29uc3QgZGVjb3JhdG9ycyA9IHRzLmdldERlY29yYXRvcnMobm9kZSk7XG5cbiAgICAgICAgaWYgKCFkZWNvcmF0b3JzIHx8IGRlY29yYXRvcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgcmV0dXJuIG5vZGU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbm9kZUZhY3RvcnkudXBkYXRlQ2xhc3NEZWNsYXJhdGlvbihcbiAgICAgICAgICBub2RlLFxuICAgICAgICAgIFtcbiAgICAgICAgICAgIC4uLmRlY29yYXRvcnMubWFwKChjdXJyZW50KSA9PlxuICAgICAgICAgICAgICB2aXNpdERlY29yYXRvcihub2RlRmFjdG9yeSwgY3VycmVudCwgdHlwZUNoZWNrZXIsIHJlc291cmNlSW1wb3J0RGVjbGFyYXRpb25zKSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICAuLi4odHMuZ2V0TW9kaWZpZXJzKG5vZGUpID8/IFtdKSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIG5vZGUubmFtZSxcbiAgICAgICAgICBub2RlLnR5cGVQYXJhbWV0ZXJzLFxuICAgICAgICAgIG5vZGUuaGVyaXRhZ2VDbGF1c2VzLFxuICAgICAgICAgIG5vZGUubWVtYmVycyxcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRzLnZpc2l0RWFjaENoaWxkKG5vZGUsIHZpc2l0Tm9kZSwgY29udGV4dCk7XG4gICAgfTtcblxuICAgIHJldHVybiAoc291cmNlRmlsZSkgPT4ge1xuICAgICAgY29uc3QgdXBkYXRlZFNvdXJjZUZpbGUgPSB0cy52aXNpdEVhY2hDaGlsZChzb3VyY2VGaWxlLCB2aXNpdE5vZGUsIGNvbnRleHQpO1xuXG4gICAgICBpZiAocmVzb3VyY2VJbXBvcnREZWNsYXJhdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgICByZXR1cm4gbm9kZUZhY3RvcnkudXBkYXRlU291cmNlRmlsZShcbiAgICAgICAgICB1cGRhdGVkU291cmNlRmlsZSxcbiAgICAgICAgICB0cy5zZXRUZXh0UmFuZ2UoXG4gICAgICAgICAgICBub2RlRmFjdG9yeS5jcmVhdGVOb2RlQXJyYXkoXG4gICAgICAgICAgICAgIFsuLi5yZXNvdXJjZUltcG9ydERlY2xhcmF0aW9ucywgLi4udXBkYXRlZFNvdXJjZUZpbGUuc3RhdGVtZW50c10sXG4gICAgICAgICAgICAgIHVwZGF0ZWRTb3VyY2VGaWxlLnN0YXRlbWVudHMuaGFzVHJhaWxpbmdDb21tYSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICB1cGRhdGVkU291cmNlRmlsZS5zdGF0ZW1lbnRzLFxuICAgICAgICAgICksXG4gICAgICAgICAgdXBkYXRlZFNvdXJjZUZpbGUuaXNEZWNsYXJhdGlvbkZpbGUsXG4gICAgICAgICAgdXBkYXRlZFNvdXJjZUZpbGUucmVmZXJlbmNlZEZpbGVzLFxuICAgICAgICAgIHVwZGF0ZWRTb3VyY2VGaWxlLnR5cGVSZWZlcmVuY2VEaXJlY3RpdmVzLFxuICAgICAgICAgIHVwZGF0ZWRTb3VyY2VGaWxlLmhhc05vRGVmYXVsdExpYixcbiAgICAgICAgICB1cGRhdGVkU291cmNlRmlsZS5saWJSZWZlcmVuY2VEaXJlY3RpdmVzLFxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZWRTb3VyY2VGaWxlO1xuICAgICAgfVxuICAgIH07XG4gIH07XG59XG5cbmZ1bmN0aW9uIHZpc2l0RGVjb3JhdG9yKFxuICBub2RlRmFjdG9yeTogdHMuTm9kZUZhY3RvcnksXG4gIG5vZGU6IHRzLkRlY29yYXRvcixcbiAgdHlwZUNoZWNrZXI6IHRzLlR5cGVDaGVja2VyLFxuICByZXNvdXJjZUltcG9ydERlY2xhcmF0aW9uczogdHMuSW1wb3J0RGVjbGFyYXRpb25bXSxcbik6IHRzLkRlY29yYXRvciB7XG4gIGNvbnN0IG9yaWdpbiA9IGdldERlY29yYXRvck9yaWdpbihub2RlLCB0eXBlQ2hlY2tlcik7XG4gIGlmICghb3JpZ2luIHx8IG9yaWdpbi5tb2R1bGUgIT09ICdAYW5ndWxhci9jb3JlJyB8fCBvcmlnaW4ubmFtZSAhPT0gJ0NvbXBvbmVudCcpIHtcbiAgICByZXR1cm4gbm9kZTtcbiAgfVxuXG4gIGlmICghdHMuaXNDYWxsRXhwcmVzc2lvbihub2RlLmV4cHJlc3Npb24pKSB7XG4gICAgcmV0dXJuIG5vZGU7XG4gIH1cblxuICBjb25zdCBkZWNvcmF0b3JGYWN0b3J5ID0gbm9kZS5leHByZXNzaW9uO1xuICBjb25zdCBhcmdzID0gZGVjb3JhdG9yRmFjdG9yeS5hcmd1bWVudHM7XG4gIGlmIChhcmdzLmxlbmd0aCAhPT0gMSB8fCAhdHMuaXNPYmplY3RMaXRlcmFsRXhwcmVzc2lvbihhcmdzWzBdKSkge1xuICAgIC8vIFVuc3VwcG9ydGVkIGNvbXBvbmVudCBtZXRhZGF0YVxuICAgIHJldHVybiBub2RlO1xuICB9XG5cbiAgY29uc3Qgb2JqZWN0RXhwcmVzc2lvbiA9IGFyZ3NbMF0gYXMgdHMuT2JqZWN0TGl0ZXJhbEV4cHJlc3Npb247XG4gIGNvbnN0IHN0eWxlUmVwbGFjZW1lbnRzOiB0cy5FeHByZXNzaW9uW10gPSBbXTtcblxuICAvLyB2aXNpdCBhbGwgcHJvcGVydGllc1xuICBsZXQgcHJvcGVydGllcyA9IHRzLnZpc2l0Tm9kZXMob2JqZWN0RXhwcmVzc2lvbi5wcm9wZXJ0aWVzLCAobm9kZSkgPT5cbiAgICB0cy5pc09iamVjdExpdGVyYWxFbGVtZW50TGlrZShub2RlKVxuICAgICAgPyB2aXNpdENvbXBvbmVudE1ldGFkYXRhKG5vZGVGYWN0b3J5LCBub2RlLCBzdHlsZVJlcGxhY2VtZW50cywgcmVzb3VyY2VJbXBvcnREZWNsYXJhdGlvbnMpXG4gICAgICA6IG5vZGUsXG4gICk7XG5cbiAgLy8gcmVwbGFjZSBwcm9wZXJ0aWVzIHdpdGggdXBkYXRlZCBwcm9wZXJ0aWVzXG4gIGlmIChzdHlsZVJlcGxhY2VtZW50cy5sZW5ndGggPiAwKSB7XG4gICAgY29uc3Qgc3R5bGVQcm9wZXJ0eSA9IG5vZGVGYWN0b3J5LmNyZWF0ZVByb3BlcnR5QXNzaWdubWVudChcbiAgICAgIG5vZGVGYWN0b3J5LmNyZWF0ZUlkZW50aWZpZXIoJ3N0eWxlcycpLFxuICAgICAgbm9kZUZhY3RvcnkuY3JlYXRlQXJyYXlMaXRlcmFsRXhwcmVzc2lvbihzdHlsZVJlcGxhY2VtZW50cyksXG4gICAgKTtcblxuICAgIHByb3BlcnRpZXMgPSBub2RlRmFjdG9yeS5jcmVhdGVOb2RlQXJyYXkoWy4uLnByb3BlcnRpZXMsIHN0eWxlUHJvcGVydHldKTtcbiAgfVxuXG4gIHJldHVybiBub2RlRmFjdG9yeS51cGRhdGVEZWNvcmF0b3IoXG4gICAgbm9kZSxcbiAgICBub2RlRmFjdG9yeS51cGRhdGVDYWxsRXhwcmVzc2lvbihcbiAgICAgIGRlY29yYXRvckZhY3RvcnksXG4gICAgICBkZWNvcmF0b3JGYWN0b3J5LmV4cHJlc3Npb24sXG4gICAgICBkZWNvcmF0b3JGYWN0b3J5LnR5cGVBcmd1bWVudHMsXG4gICAgICBbbm9kZUZhY3RvcnkudXBkYXRlT2JqZWN0TGl0ZXJhbEV4cHJlc3Npb24ob2JqZWN0RXhwcmVzc2lvbiwgcHJvcGVydGllcyldLFxuICAgICksXG4gICk7XG59XG5cbmZ1bmN0aW9uIHZpc2l0Q29tcG9uZW50TWV0YWRhdGEoXG4gIG5vZGVGYWN0b3J5OiB0cy5Ob2RlRmFjdG9yeSxcbiAgbm9kZTogdHMuT2JqZWN0TGl0ZXJhbEVsZW1lbnRMaWtlLFxuICBzdHlsZVJlcGxhY2VtZW50czogdHMuRXhwcmVzc2lvbltdLFxuICByZXNvdXJjZUltcG9ydERlY2xhcmF0aW9uczogdHMuSW1wb3J0RGVjbGFyYXRpb25bXSxcbik6IHRzLk9iamVjdExpdGVyYWxFbGVtZW50TGlrZSB8IHVuZGVmaW5lZCB7XG4gIGlmICghdHMuaXNQcm9wZXJ0eUFzc2lnbm1lbnQobm9kZSkgfHwgdHMuaXNDb21wdXRlZFByb3BlcnR5TmFtZShub2RlLm5hbWUpKSB7XG4gICAgcmV0dXJuIG5vZGU7XG4gIH1cblxuICBzd2l0Y2ggKG5vZGUubmFtZS50ZXh0KSB7XG4gICAgY2FzZSAndGVtcGxhdGVVcmwnOlxuICAgICAgLy8gT25seSBhbmFseXplIHN0cmluZyBsaXRlcmFsc1xuICAgICAgaWYgKFxuICAgICAgICAhdHMuaXNTdHJpbmdMaXRlcmFsKG5vZGUuaW5pdGlhbGl6ZXIpICYmXG4gICAgICAgICF0cy5pc05vU3Vic3RpdHV0aW9uVGVtcGxhdGVMaXRlcmFsKG5vZGUuaW5pdGlhbGl6ZXIpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIG5vZGU7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHVybCA9IG5vZGUuaW5pdGlhbGl6ZXIudGV4dDtcbiAgICAgIGlmICghdXJsKSB7XG4gICAgICAgIHJldHVybiBub2RlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gbm9kZUZhY3RvcnkudXBkYXRlUHJvcGVydHlBc3NpZ25tZW50KFxuICAgICAgICBub2RlLFxuICAgICAgICBub2RlRmFjdG9yeS5jcmVhdGVJZGVudGlmaWVyKCd0ZW1wbGF0ZScpLFxuICAgICAgICBjcmVhdGVSZXNvdXJjZUltcG9ydChcbiAgICAgICAgICBub2RlRmFjdG9yeSxcbiAgICAgICAgICBnZW5lcmF0ZUppdEZpbGVVcmkodXJsLCAndGVtcGxhdGUnKSxcbiAgICAgICAgICByZXNvdXJjZUltcG9ydERlY2xhcmF0aW9ucyxcbiAgICAgICAgKSxcbiAgICAgICk7XG4gICAgY2FzZSAnc3R5bGVzJzpcbiAgICAgIGlmICghdHMuaXNBcnJheUxpdGVyYWxFeHByZXNzaW9uKG5vZGUuaW5pdGlhbGl6ZXIpKSB7XG4gICAgICAgIHJldHVybiBub2RlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBpbmxpbmVTdHlsZXMgPSB0cy52aXNpdE5vZGVzKG5vZGUuaW5pdGlhbGl6ZXIuZWxlbWVudHMsIChub2RlKSA9PiB7XG4gICAgICAgIGlmICghdHMuaXNTdHJpbmdMaXRlcmFsKG5vZGUpICYmICF0cy5pc05vU3Vic3RpdHV0aW9uVGVtcGxhdGVMaXRlcmFsKG5vZGUpKSB7XG4gICAgICAgICAgcmV0dXJuIG5vZGU7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjb250ZW50cyA9IG5vZGUudGV4dDtcbiAgICAgICAgaWYgKCFjb250ZW50cykge1xuICAgICAgICAgIC8vIEFuIGVtcHR5IGlubGluZSBzdHlsZSBpcyBlcXVpdmFsZW50IHRvIG5vdCBoYXZpbmcgYSBzdHlsZSBlbGVtZW50XG4gICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjcmVhdGVSZXNvdXJjZUltcG9ydChcbiAgICAgICAgICBub2RlRmFjdG9yeSxcbiAgICAgICAgICBnZW5lcmF0ZUppdElubGluZVVyaShjb250ZW50cywgJ3N0eWxlJyksXG4gICAgICAgICAgcmVzb3VyY2VJbXBvcnREZWNsYXJhdGlvbnMsXG4gICAgICAgICk7XG4gICAgICB9KTtcblxuICAgICAgLy8gSW5saW5lIHN0eWxlcyBzaG91bGQgYmUgcGxhY2VkIGZpcnN0XG4gICAgICBzdHlsZVJlcGxhY2VtZW50cy51bnNoaWZ0KC4uLmlubGluZVN0eWxlcyk7XG5cbiAgICAgIC8vIFRoZSBpbmxpbmUgc3R5bGVzIHdpbGwgYmUgYWRkZWQgYWZ0ZXJ3YXJkcyBpbiBjb21iaW5hdGlvbiB3aXRoIGFueSBleHRlcm5hbCBzdHlsZXNcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgY2FzZSAnc3R5bGVVcmxzJzpcbiAgICAgIGlmICghdHMuaXNBcnJheUxpdGVyYWxFeHByZXNzaW9uKG5vZGUuaW5pdGlhbGl6ZXIpKSB7XG4gICAgICAgIHJldHVybiBub2RlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBleHRlcm5hbFN0eWxlcyA9IHRzLnZpc2l0Tm9kZXMobm9kZS5pbml0aWFsaXplci5lbGVtZW50cywgKG5vZGUpID0+IHtcbiAgICAgICAgaWYgKCF0cy5pc1N0cmluZ0xpdGVyYWwobm9kZSkgJiYgIXRzLmlzTm9TdWJzdGl0dXRpb25UZW1wbGF0ZUxpdGVyYWwobm9kZSkpIHtcbiAgICAgICAgICByZXR1cm4gbm9kZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHVybCA9IG5vZGUudGV4dDtcbiAgICAgICAgaWYgKCF1cmwpIHtcbiAgICAgICAgICByZXR1cm4gbm9kZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjcmVhdGVSZXNvdXJjZUltcG9ydChcbiAgICAgICAgICBub2RlRmFjdG9yeSxcbiAgICAgICAgICBnZW5lcmF0ZUppdEZpbGVVcmkodXJsLCAnc3R5bGUnKSxcbiAgICAgICAgICByZXNvdXJjZUltcG9ydERlY2xhcmF0aW9ucyxcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuXG4gICAgICAvLyBFeHRlcm5hbCBzdHlsZXMgYXJlIGFwcGxpZWQgYWZ0ZXIgYW55IGlubGluZSBzdHlsZXNcbiAgICAgIHN0eWxlUmVwbGFjZW1lbnRzLnB1c2goLi4uZXh0ZXJuYWxTdHlsZXMpO1xuXG4gICAgICAvLyBUaGUgZXh0ZXJuYWwgc3R5bGVzIHdpbGwgYmUgYWRkZWQgYWZ0ZXJ3YXJkcyBpbiBjb21iaW5hdGlvbiB3aXRoIGFueSBpbmxpbmUgc3R5bGVzXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGRlZmF1bHQ6XG4gICAgICAvLyBBbGwgb3RoZXIgZWxlbWVudHMgYXJlIHBhc3NlZCB0aHJvdWdoXG4gICAgICByZXR1cm4gbm9kZTtcbiAgfVxufVxuXG5mdW5jdGlvbiBjcmVhdGVSZXNvdXJjZUltcG9ydChcbiAgbm9kZUZhY3Rvcnk6IHRzLk5vZGVGYWN0b3J5LFxuICB1cmw6IHN0cmluZyxcbiAgcmVzb3VyY2VJbXBvcnREZWNsYXJhdGlvbnM6IHRzLkltcG9ydERlY2xhcmF0aW9uW10sXG4pOiB0cy5JZGVudGlmaWVyIHtcbiAgY29uc3QgdXJsTGl0ZXJhbCA9IG5vZGVGYWN0b3J5LmNyZWF0ZVN0cmluZ0xpdGVyYWwodXJsKTtcblxuICBjb25zdCBpbXBvcnROYW1lID0gbm9kZUZhY3RvcnkuY3JlYXRlSWRlbnRpZmllcihcbiAgICBgX19OR19DTElfUkVTT1VSQ0VfXyR7cmVzb3VyY2VJbXBvcnREZWNsYXJhdGlvbnMubGVuZ3RofWAsXG4gICk7XG4gIHJlc291cmNlSW1wb3J0RGVjbGFyYXRpb25zLnB1c2goXG4gICAgbm9kZUZhY3RvcnkuY3JlYXRlSW1wb3J0RGVjbGFyYXRpb24oXG4gICAgICB1bmRlZmluZWQsXG4gICAgICBub2RlRmFjdG9yeS5jcmVhdGVJbXBvcnRDbGF1c2UoZmFsc2UsIGltcG9ydE5hbWUsIHVuZGVmaW5lZCksXG4gICAgICB1cmxMaXRlcmFsLFxuICAgICksXG4gICk7XG5cbiAgcmV0dXJuIGltcG9ydE5hbWU7XG59XG5cbmZ1bmN0aW9uIGdldERlY29yYXRvck9yaWdpbihcbiAgZGVjb3JhdG9yOiB0cy5EZWNvcmF0b3IsXG4gIHR5cGVDaGVja2VyOiB0cy5UeXBlQ2hlY2tlcixcbik6IHsgbmFtZTogc3RyaW5nOyBtb2R1bGU6IHN0cmluZyB9IHwgbnVsbCB7XG4gIGlmICghdHMuaXNDYWxsRXhwcmVzc2lvbihkZWNvcmF0b3IuZXhwcmVzc2lvbikpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGxldCBpZGVudGlmaWVyOiB0cy5Ob2RlO1xuICBsZXQgbmFtZSA9ICcnO1xuXG4gIGlmICh0cy5pc1Byb3BlcnR5QWNjZXNzRXhwcmVzc2lvbihkZWNvcmF0b3IuZXhwcmVzc2lvbi5leHByZXNzaW9uKSkge1xuICAgIGlkZW50aWZpZXIgPSBkZWNvcmF0b3IuZXhwcmVzc2lvbi5leHByZXNzaW9uLmV4cHJlc3Npb247XG4gICAgbmFtZSA9IGRlY29yYXRvci5leHByZXNzaW9uLmV4cHJlc3Npb24ubmFtZS50ZXh0O1xuICB9IGVsc2UgaWYgKHRzLmlzSWRlbnRpZmllcihkZWNvcmF0b3IuZXhwcmVzc2lvbi5leHByZXNzaW9uKSkge1xuICAgIGlkZW50aWZpZXIgPSBkZWNvcmF0b3IuZXhwcmVzc2lvbi5leHByZXNzaW9uO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLy8gTk9URTogcmVzb2x2ZXIuZ2V0UmVmZXJlbmNlZEltcG9ydERlY2xhcmF0aW9uIHdvdWxkIHdvcmsgYXMgd2VsbCBidXQgaXMgaW50ZXJuYWxcbiAgY29uc3Qgc3ltYm9sID0gdHlwZUNoZWNrZXIuZ2V0U3ltYm9sQXRMb2NhdGlvbihpZGVudGlmaWVyKTtcbiAgaWYgKHN5bWJvbCAmJiBzeW1ib2wuZGVjbGFyYXRpb25zICYmIHN5bWJvbC5kZWNsYXJhdGlvbnMubGVuZ3RoID4gMCkge1xuICAgIGNvbnN0IGRlY2xhcmF0aW9uID0gc3ltYm9sLmRlY2xhcmF0aW9uc1swXTtcbiAgICBsZXQgbW9kdWxlOiBzdHJpbmc7XG5cbiAgICBpZiAodHMuaXNJbXBvcnRTcGVjaWZpZXIoZGVjbGFyYXRpb24pKSB7XG4gICAgICBuYW1lID0gKGRlY2xhcmF0aW9uLnByb3BlcnR5TmFtZSB8fCBkZWNsYXJhdGlvbi5uYW1lKS50ZXh0O1xuICAgICAgbW9kdWxlID0gKGRlY2xhcmF0aW9uLnBhcmVudC5wYXJlbnQucGFyZW50Lm1vZHVsZVNwZWNpZmllciBhcyB0cy5TdHJpbmdMaXRlcmFsKS50ZXh0O1xuICAgIH0gZWxzZSBpZiAodHMuaXNOYW1lc3BhY2VJbXBvcnQoZGVjbGFyYXRpb24pKSB7XG4gICAgICAvLyBVc2UgdGhlIG5hbWUgZnJvbSB0aGUgZGVjb3JhdG9yIG5hbWVzcGFjZSBwcm9wZXJ0eSBhY2Nlc3NcbiAgICAgIG1vZHVsZSA9IChkZWNsYXJhdGlvbi5wYXJlbnQucGFyZW50Lm1vZHVsZVNwZWNpZmllciBhcyB0cy5TdHJpbmdMaXRlcmFsKS50ZXh0O1xuICAgIH0gZWxzZSBpZiAodHMuaXNJbXBvcnRDbGF1c2UoZGVjbGFyYXRpb24pKSB7XG4gICAgICBuYW1lID0gKGRlY2xhcmF0aW9uLm5hbWUgYXMgdHMuSWRlbnRpZmllcikudGV4dDtcbiAgICAgIG1vZHVsZSA9IChkZWNsYXJhdGlvbi5wYXJlbnQubW9kdWxlU3BlY2lmaWVyIGFzIHRzLlN0cmluZ0xpdGVyYWwpLnRleHQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiB7IG5hbWUsIG1vZHVsZSB9O1xuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG4iXX0=
@@ -0,0 +1,54 @@
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.io/license
7
+ */
8
+ /**
9
+ * A string value representing the namespace for Angular JIT mode related imports for
10
+ * Component styles. This namespace is used for both inline (`styles`) and external
11
+ * (`styleUrls`) styles.
12
+ */
13
+ export declare const JIT_STYLE_NAMESPACE: "angular:jit:style";
14
+ /**
15
+ * A string value representing the namespace for Angular JIT mode related imports for
16
+ * Component templates. This namespace is currently only used for external (`templateUrl`)
17
+ * templates.
18
+ */
19
+ export declare const JIT_TEMPLATE_NAMESPACE: "angular:jit:template";
20
+ /**
21
+ * A regular expression that can be used to match a Angular JIT mode namespace URI.
22
+ * It contains capture groups for the type (template/style), origin (file/inline), and specifier.
23
+ * The {@link parseJitUri} function can be used to parse and return an object representation of a JIT URI.
24
+ */
25
+ export declare const JIT_NAMESPACE_REGEXP: RegExp;
26
+ /**
27
+ * Generates an Angular JIT mode namespace URI for a given file.
28
+ * @param file The path of the file to be included.
29
+ * @param type The type of the file (`style` or `template`).
30
+ * @returns A string containing the full JIT namespace URI.
31
+ */
32
+ export declare function generateJitFileUri(file: string, type: 'style' | 'template'): string;
33
+ /**
34
+ * Generates an Angular JIT mode namespace URI for a given inline style or template.
35
+ * The provided content is base64 encoded and included in the URI.
36
+ * @param data The content to encode within the URI.
37
+ * @param type The type of the content (`style` or `template`).
38
+ * @returns A string containing the full JIT namespace URI.
39
+ */
40
+ export declare function generateJitInlineUri(data: string | Uint8Array, type: 'style' | 'template'): string;
41
+ /**
42
+ * Parses a string containing a JIT namespace URI.
43
+ * JIT namespace URIs are used to encode the information for an Angular component's stylesheets
44
+ * and templates when compiled in JIT mode.
45
+ * @param uri The URI to parse into its underlying components.
46
+ * @returns An object containing the namespace, type, origin, and specifier of the URI;
47
+ * `undefined` if not a JIT namespace URI.
48
+ */
49
+ export declare function parseJitUri(uri: string): {
50
+ namespace: string;
51
+ type: "style" | "template";
52
+ origin: "inline" | "file";
53
+ specifier: string;
54
+ } | undefined;
@@ -0,0 +1,75 @@
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.io/license
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.parseJitUri = exports.generateJitInlineUri = exports.generateJitFileUri = exports.JIT_NAMESPACE_REGEXP = exports.JIT_TEMPLATE_NAMESPACE = exports.JIT_STYLE_NAMESPACE = void 0;
11
+ /**
12
+ * A string value representing the base namespace for Angular JIT mode related imports.
13
+ */
14
+ const JIT_BASE_NAMESPACE = 'angular:jit';
15
+ /**
16
+ * A string value representing the namespace for Angular JIT mode related imports for
17
+ * Component styles. This namespace is used for both inline (`styles`) and external
18
+ * (`styleUrls`) styles.
19
+ */
20
+ exports.JIT_STYLE_NAMESPACE = `${JIT_BASE_NAMESPACE}:style`;
21
+ /**
22
+ * A string value representing the namespace for Angular JIT mode related imports for
23
+ * Component templates. This namespace is currently only used for external (`templateUrl`)
24
+ * templates.
25
+ */
26
+ exports.JIT_TEMPLATE_NAMESPACE = `${JIT_BASE_NAMESPACE}:template`;
27
+ /**
28
+ * A regular expression that can be used to match a Angular JIT mode namespace URI.
29
+ * It contains capture groups for the type (template/style), origin (file/inline), and specifier.
30
+ * The {@link parseJitUri} function can be used to parse and return an object representation of a JIT URI.
31
+ */
32
+ exports.JIT_NAMESPACE_REGEXP = new RegExp(`^${JIT_BASE_NAMESPACE}:(template|style):(file|inline);(.*)$`);
33
+ /**
34
+ * Generates an Angular JIT mode namespace URI for a given file.
35
+ * @param file The path of the file to be included.
36
+ * @param type The type of the file (`style` or `template`).
37
+ * @returns A string containing the full JIT namespace URI.
38
+ */
39
+ function generateJitFileUri(file, type) {
40
+ return `${JIT_BASE_NAMESPACE}:${type}:file;${file}`;
41
+ }
42
+ exports.generateJitFileUri = generateJitFileUri;
43
+ /**
44
+ * Generates an Angular JIT mode namespace URI for a given inline style or template.
45
+ * The provided content is base64 encoded and included in the URI.
46
+ * @param data The content to encode within the URI.
47
+ * @param type The type of the content (`style` or `template`).
48
+ * @returns A string containing the full JIT namespace URI.
49
+ */
50
+ function generateJitInlineUri(data, type) {
51
+ return `${JIT_BASE_NAMESPACE}:${type}:inline;${Buffer.from(data).toString('base64')}`;
52
+ }
53
+ exports.generateJitInlineUri = generateJitInlineUri;
54
+ /**
55
+ * Parses a string containing a JIT namespace URI.
56
+ * JIT namespace URIs are used to encode the information for an Angular component's stylesheets
57
+ * and templates when compiled in JIT mode.
58
+ * @param uri The URI to parse into its underlying components.
59
+ * @returns An object containing the namespace, type, origin, and specifier of the URI;
60
+ * `undefined` if not a JIT namespace URI.
61
+ */
62
+ function parseJitUri(uri) {
63
+ const matches = exports.JIT_NAMESPACE_REGEXP.exec(uri);
64
+ if (!matches) {
65
+ return undefined;
66
+ }
67
+ return {
68
+ namespace: `${JIT_BASE_NAMESPACE}:${matches[1]}`,
69
+ type: matches[1],
70
+ origin: matches[2],
71
+ specifier: matches[3],
72
+ };
73
+ }
74
+ exports.parseJitUri = parseJitUri;
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXJpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhcl9kZXZraXQvYnVpbGRfYW5ndWxhci9zcmMvYnVpbGRlcnMvYnJvd3Nlci1lc2J1aWxkL2FuZ3VsYXIvdXJpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7OztBQUVIOztHQUVHO0FBQ0gsTUFBTSxrQkFBa0IsR0FBRyxhQUFhLENBQUM7QUFFekM7Ozs7R0FJRztBQUNVLFFBQUEsbUJBQW1CLEdBQUcsR0FBRyxrQkFBa0IsUUFBaUIsQ0FBQztBQUUxRTs7OztHQUlHO0FBQ1UsUUFBQSxzQkFBc0IsR0FBRyxHQUFHLGtCQUFrQixXQUFvQixDQUFDO0FBRWhGOzs7O0dBSUc7QUFDVSxRQUFBLG9CQUFvQixHQUFHLElBQUksTUFBTSxDQUM1QyxJQUFJLGtCQUFrQix1Q0FBdUMsQ0FDOUQsQ0FBQztBQUVGOzs7OztHQUtHO0FBQ0gsU0FBZ0Isa0JBQWtCLENBQUMsSUFBWSxFQUFFLElBQTBCO0lBQ3pFLE9BQU8sR0FBRyxrQkFBa0IsSUFBSSxJQUFJLFNBQVMsSUFBSSxFQUFFLENBQUM7QUFDdEQsQ0FBQztBQUZELGdEQUVDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsU0FBZ0Isb0JBQW9CLENBQUMsSUFBeUIsRUFBRSxJQUEwQjtJQUN4RixPQUFPLEdBQUcsa0JBQWtCLElBQUksSUFBSSxXQUFXLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7QUFDeEYsQ0FBQztBQUZELG9EQUVDO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILFNBQWdCLFdBQVcsQ0FBQyxHQUFXO0lBQ3JDLE1BQU0sT0FBTyxHQUFHLDRCQUFvQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMvQyxJQUFJLENBQUMsT0FBTyxFQUFFO1FBQ1osT0FBTyxTQUFTLENBQUM7S0FDbEI7SUFFRCxPQUFPO1FBQ0wsU0FBUyxFQUFFLEdBQUcsa0JBQWtCLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO1FBQ2hELElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUF5QjtRQUN4QyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBc0I7UUFDdkMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7S0FDdEIsQ0FBQztBQUNKLENBQUM7QUFaRCxrQ0FZQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG4vKipcbiAqIEEgc3RyaW5nIHZhbHVlIHJlcHJlc2VudGluZyB0aGUgYmFzZSBuYW1lc3BhY2UgZm9yIEFuZ3VsYXIgSklUIG1vZGUgcmVsYXRlZCBpbXBvcnRzLlxuICovXG5jb25zdCBKSVRfQkFTRV9OQU1FU1BBQ0UgPSAnYW5ndWxhcjpqaXQnO1xuXG4vKipcbiAqIEEgc3RyaW5nIHZhbHVlIHJlcHJlc2VudGluZyB0aGUgbmFtZXNwYWNlIGZvciBBbmd1bGFyIEpJVCBtb2RlIHJlbGF0ZWQgaW1wb3J0cyBmb3JcbiAqIENvbXBvbmVudCBzdHlsZXMuIFRoaXMgbmFtZXNwYWNlIGlzIHVzZWQgZm9yIGJvdGggaW5saW5lIChgc3R5bGVzYCkgYW5kIGV4dGVybmFsXG4gKiAoYHN0eWxlVXJsc2ApIHN0eWxlcy5cbiAqL1xuZXhwb3J0IGNvbnN0IEpJVF9TVFlMRV9OQU1FU1BBQ0UgPSBgJHtKSVRfQkFTRV9OQU1FU1BBQ0V9OnN0eWxlYCBhcyBjb25zdDtcblxuLyoqXG4gKiBBIHN0cmluZyB2YWx1ZSByZXByZXNlbnRpbmcgdGhlIG5hbWVzcGFjZSBmb3IgQW5ndWxhciBKSVQgbW9kZSByZWxhdGVkIGltcG9ydHMgZm9yXG4gKiBDb21wb25lbnQgdGVtcGxhdGVzLiBUaGlzIG5hbWVzcGFjZSBpcyBjdXJyZW50bHkgb25seSB1c2VkIGZvciBleHRlcm5hbCAoYHRlbXBsYXRlVXJsYClcbiAqIHRlbXBsYXRlcy5cbiAqL1xuZXhwb3J0IGNvbnN0IEpJVF9URU1QTEFURV9OQU1FU1BBQ0UgPSBgJHtKSVRfQkFTRV9OQU1FU1BBQ0V9OnRlbXBsYXRlYCBhcyBjb25zdDtcblxuLyoqXG4gKiBBIHJlZ3VsYXIgZXhwcmVzc2lvbiB0aGF0IGNhbiBiZSB1c2VkIHRvIG1hdGNoIGEgQW5ndWxhciBKSVQgbW9kZSBuYW1lc3BhY2UgVVJJLlxuICogSXQgY29udGFpbnMgY2FwdHVyZSBncm91cHMgZm9yIHRoZSB0eXBlICh0ZW1wbGF0ZS9zdHlsZSksIG9yaWdpbiAoZmlsZS9pbmxpbmUpLCBhbmQgc3BlY2lmaWVyLlxuICogVGhlIHtAbGluayBwYXJzZUppdFVyaX0gZnVuY3Rpb24gY2FuIGJlIHVzZWQgdG8gcGFyc2UgYW5kIHJldHVybiBhbiBvYmplY3QgcmVwcmVzZW50YXRpb24gb2YgYSBKSVQgVVJJLlxuICovXG5leHBvcnQgY29uc3QgSklUX05BTUVTUEFDRV9SRUdFWFAgPSBuZXcgUmVnRXhwKFxuICBgXiR7SklUX0JBU0VfTkFNRVNQQUNFfToodGVtcGxhdGV8c3R5bGUpOihmaWxlfGlubGluZSk7KC4qKSRgLFxuKTtcblxuLyoqXG4gKiBHZW5lcmF0ZXMgYW4gQW5ndWxhciBKSVQgbW9kZSBuYW1lc3BhY2UgVVJJIGZvciBhIGdpdmVuIGZpbGUuXG4gKiBAcGFyYW0gZmlsZSBUaGUgcGF0aCBvZiB0aGUgZmlsZSB0byBiZSBpbmNsdWRlZC5cbiAqIEBwYXJhbSB0eXBlIFRoZSB0eXBlIG9mIHRoZSBmaWxlIChgc3R5bGVgIG9yIGB0ZW1wbGF0ZWApLlxuICogQHJldHVybnMgQSBzdHJpbmcgY29udGFpbmluZyB0aGUgZnVsbCBKSVQgbmFtZXNwYWNlIFVSSS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlSml0RmlsZVVyaShmaWxlOiBzdHJpbmcsIHR5cGU6ICdzdHlsZScgfCAndGVtcGxhdGUnKSB7XG4gIHJldHVybiBgJHtKSVRfQkFTRV9OQU1FU1BBQ0V9OiR7dHlwZX06ZmlsZTske2ZpbGV9YDtcbn1cblxuLyoqXG4gKiBHZW5lcmF0ZXMgYW4gQW5ndWxhciBKSVQgbW9kZSBuYW1lc3BhY2UgVVJJIGZvciBhIGdpdmVuIGlubGluZSBzdHlsZSBvciB0ZW1wbGF0ZS5cbiAqIFRoZSBwcm92aWRlZCBjb250ZW50IGlzIGJhc2U2NCBlbmNvZGVkIGFuZCBpbmNsdWRlZCBpbiB0aGUgVVJJLlxuICogQHBhcmFtIGRhdGEgVGhlIGNvbnRlbnQgdG8gZW5jb2RlIHdpdGhpbiB0aGUgVVJJLlxuICogQHBhcmFtIHR5cGUgVGhlIHR5cGUgb2YgdGhlIGNvbnRlbnQgKGBzdHlsZWAgb3IgYHRlbXBsYXRlYCkuXG4gKiBAcmV0dXJucyBBIHN0cmluZyBjb250YWluaW5nIHRoZSBmdWxsIEpJVCBuYW1lc3BhY2UgVVJJLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVKaXRJbmxpbmVVcmkoZGF0YTogc3RyaW5nIHwgVWludDhBcnJheSwgdHlwZTogJ3N0eWxlJyB8ICd0ZW1wbGF0ZScpIHtcbiAgcmV0dXJuIGAke0pJVF9CQVNFX05BTUVTUEFDRX06JHt0eXBlfTppbmxpbmU7JHtCdWZmZXIuZnJvbShkYXRhKS50b1N0cmluZygnYmFzZTY0Jyl9YDtcbn1cblxuLyoqXG4gKiBQYXJzZXMgYSBzdHJpbmcgY29udGFpbmluZyBhIEpJVCBuYW1lc3BhY2UgVVJJLlxuICogSklUIG5hbWVzcGFjZSBVUklzIGFyZSB1c2VkIHRvIGVuY29kZSB0aGUgaW5mb3JtYXRpb24gZm9yIGFuIEFuZ3VsYXIgY29tcG9uZW50J3Mgc3R5bGVzaGVldHNcbiAqIGFuZCB0ZW1wbGF0ZXMgd2hlbiBjb21waWxlZCBpbiBKSVQgbW9kZS5cbiAqIEBwYXJhbSB1cmkgVGhlIFVSSSB0byBwYXJzZSBpbnRvIGl0cyB1bmRlcmx5aW5nIGNvbXBvbmVudHMuXG4gKiBAcmV0dXJucyBBbiBvYmplY3QgY29udGFpbmluZyB0aGUgbmFtZXNwYWNlLCB0eXBlLCBvcmlnaW4sIGFuZCBzcGVjaWZpZXIgb2YgdGhlIFVSSTtcbiAqIGB1bmRlZmluZWRgIGlmIG5vdCBhIEpJVCBuYW1lc3BhY2UgVVJJLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VKaXRVcmkodXJpOiBzdHJpbmcpIHtcbiAgY29uc3QgbWF0Y2hlcyA9IEpJVF9OQU1FU1BBQ0VfUkVHRVhQLmV4ZWModXJpKTtcbiAgaWYgKCFtYXRjaGVzKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgbmFtZXNwYWNlOiBgJHtKSVRfQkFTRV9OQU1FU1BBQ0V9OiR7bWF0Y2hlc1sxXX1gLFxuICAgIHR5cGU6IG1hdGNoZXNbMV0gYXMgJ3N0eWxlJyB8ICd0ZW1wbGF0ZScsXG4gICAgb3JpZ2luOiBtYXRjaGVzWzJdIGFzICdmaWxlJyB8ICdpbmxpbmUnLFxuICAgIHNwZWNpZmllcjogbWF0Y2hlc1szXSxcbiAgfTtcbn1cbiJdfQ==
@@ -32,6 +32,9 @@ function checkCommonJSModules(metafile, allowedCommonJsDependencies) {
32
32
  const allowedRequests = new Set(allowedCommonJsDependencies);
33
33
  // Ignore Angular locale definitions which are currently UMD
34
34
  allowedRequests.add('@angular/common/locales');
35
+ // Ignore zone.js due to it currently being built with a UMD like structure.
36
+ // Once the build output is updated to be fully ESM, this can be removed.
37
+ allowedRequests.add('zone.js');
35
38
  // Find all entry points that contain code (JS/TS)
36
39
  const files = [];
37
40
  for (const { entryPoint } of Object.values(metafile.outputs)) {
@@ -119,4 +122,4 @@ function createCommonJSModuleError(request, importer) {
119
122
  };
120
123
  return error;
121
124
  }
122
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uanMtY2hlY2tlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXJfZGV2a2l0L2J1aWxkX2FuZ3VsYXIvc3JjL2J1aWxkZXJzL2Jyb3dzZXItZXNidWlsZC9jb21tb25qcy1jaGVja2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7OztBQUlIOzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQkc7QUFDSCxTQUFnQixvQkFBb0IsQ0FDbEMsUUFBa0IsRUFDbEIsMkJBQXNDO0lBRXRDLE1BQU0sUUFBUSxHQUFxQixFQUFFLENBQUM7SUFDdEMsTUFBTSxlQUFlLEdBQUcsSUFBSSxHQUFHLENBQUMsMkJBQTJCLENBQUMsQ0FBQztJQUU3RCw0REFBNEQ7SUFDNUQsZUFBZSxDQUFDLEdBQUcsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBRS9DLGtEQUFrRDtJQUNsRCxNQUFNLEtBQUssR0FBYSxFQUFFLENBQUM7SUFDM0IsS0FBSyxNQUFNLEVBQUUsVUFBVSxFQUFFLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUU7UUFDNUQsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNmLFNBQVM7U0FDVjtRQUNELElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDM0IsU0FBUztTQUNWO1FBRUQsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztLQUN4QjtJQUVELG1EQUFtRDtJQUNuRCxzRUFBc0U7SUFDdEUsTUFBTSxTQUFTLEdBQUcsSUFBSSxHQUFHLENBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBRWpELHdEQUF3RDtJQUN4RCxJQUFJLFdBQStCLENBQUM7SUFDcEMsT0FBTyxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRTtRQUNwQyxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRTNDLEtBQUssTUFBTSxRQUFRLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRTtZQUNwQyx5RkFBeUY7WUFDekYsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLElBQUksU0FBUyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3RELFNBQVM7YUFDVjtZQUNELFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRTdCLCtCQUErQjtZQUMvQixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDOUIsU0FBUzthQUNWO1lBRUQsc0ZBQXNGO1lBQ3RGLElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxLQUFLLEtBQUssRUFBRTtnQkFDbkQsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQztnQkFFbEMsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDO2dCQUN0QixJQUFJLGVBQWUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUU7b0JBQ2hDLFVBQVUsR0FBRyxLQUFLLENBQUM7aUJBQ3BCO3FCQUFNO29CQUNMLDZDQUE2QztvQkFDN0MsS0FBSyxNQUFNLE9BQU8sSUFBSSxlQUFlLEVBQUU7d0JBQ3JDLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDLEVBQUU7NEJBQ3JDLFVBQVUsR0FBRyxLQUFLLENBQUM7NEJBQ25CLE1BQU07eUJBQ1A7cUJBQ0Y7aUJBQ0Y7Z0JBRUQsSUFBSSxVQUFVLEVBQUU7b0JBQ2QsK0VBQStFO29CQUMvRSx1REFBdUQ7b0JBQ3ZELFFBQVEsQ0FBQyxJQUFJLENBQUMseUJBQXlCLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUM7b0JBQy9ELFNBQVM7aUJBQ1Y7YUFDRjtZQUVELGtEQUFrRDtZQUNsRCxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUMzQjtLQUNGO0lBRUQsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQztBQTNFRCxvREEyRUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxTQUFTLFVBQVUsQ0FBQyxJQUFZO0lBQzlCLE9BQU8saUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3RDLENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxTQUFTLHlCQUF5QixDQUFDLE9BQWUsRUFBRSxRQUFnQjtJQUNsRSxNQUFNLEtBQUssR0FBRztRQUNaLElBQUksRUFBRSxXQUFXLE9BQU8sY0FBYyxRQUFRLGNBQWM7UUFDNUQsS0FBSyxFQUFFO1lBQ0w7Z0JBQ0UsSUFBSSxFQUNGLGlFQUFpRTtvQkFDakUsNEZBQTRGO2FBQy9GO1NBQ0Y7S0FDRixDQUFDO0lBRUYsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB0eXBlIHsgTWV0YWZpbGUsIFBhcnRpYWxNZXNzYWdlIH0gZnJvbSAnZXNidWlsZCc7XG5cbi8qKlxuICogQ2hlY2tzIHRoZSBpbnB1dCBmaWxlcyBvZiBhIGJ1aWxkIHRvIGRldGVybWluZSBpZiBhbnkgb2YgdGhlIGZpbGVzIGluY2x1ZGVkXG4gKiBpbiB0aGUgYnVpbGQgYXJlIG5vdCBFU00uIEVTTSBmaWxlcyBjYW4gYmUgdHJlZS1zaGFrZW4gYW5kIG90aGVyd2lzZSBvcHRpbWl6ZWRcbiAqIGluIHdheXMgdGhhdCBDb21tb25KUyBhbmQgb3RoZXIgbW9kdWxlIGZvcm1hdHMgY2Fubm90LiBUaGUgZXNidWlsZCBtZXRhZmlsZVxuICogaW5mb3JtYXRpb24gaXMgdXNlZCBhcyB0aGUgYmFzaXMgZm9yIHRoZSBhbmFseXNpcyBhcyBpdCBjb250YWlucyBpbmZvcm1hdGlvblxuICogZm9yIGVhY2ggaW5wdXQgZmlsZSBpbmNsdWRpbmcgaXRzIHJlc3BlY3RpdmUgZm9ybWF0LlxuICpcbiAqIElmIGFueSBhbGxvd2VkIGRlcGVuZGVuY2llcyBhcmUgcHJvdmlkZWQgdmlhIHRoZSBgYWxsb3dlZENvbW1vbkpzRGVwZW5kZW5jaWVzYFxuICogcGFyYW1ldGVyLCBib3RoIHRoZSBkaXJlY3QgaW1wb3J0IGFuZCBhbnkgZGVlcCBpbXBvcnRzIHdpbGwgYmUgaWdub3JlZCBhbmQgbm9cbiAqIGRpYWdub3N0aWMgd2lsbCBiZSBnZW5lcmF0ZWQuXG4gKlxuICogSWYgYSBtb2R1bGUgaGFzIGJlZW4gaXNzdWVkIGEgZGlhZ25vc3RpYyBtZXNzYWdlLCB0aGVuIGFsbCBkZXNjZW5kYW50IG1vZHVsZXNcbiAqIHdpbGwgbm90IGJlIGNoZWNrZWQuIFRoaXMgcHJldmVudHMgYSBwb3RlbnRpYWwgbWFzc2l2ZSBhbW91bnQgb2YgaW5hY3Rpb25hYmxlXG4gKiBtZXNzYWdlcyBzaW5jZSB0aGUgaW5pdGlhbCBtb2R1bGUgaW1wb3J0IGlzIHRoZSBjYXVzZSBvZiB0aGUgcHJvYmxlbS5cbiAqXG4gKiBAcGFyYW0gbWV0YWZpbGUgQW4gZXNidWlsZCBtZXRhZmlsZSBvYmplY3QgdG8gY2hlY2suXG4gKiBAcGFyYW0gYWxsb3dlZENvbW1vbkpzRGVwZW5kZW5jaWVzIEFuIG9wdGlvbmFsIGxpc3Qgb2YgYWxsb3dlZCBkZXBlbmRlbmNpZXMuXG4gKiBAcmV0dXJucyBaZXJvIG9yIG1vcmUgZGlhZ25vc3RpYyBtZXNzYWdlcyBmb3IgYW55IG5vbi1FU00gbW9kdWxlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrQ29tbW9uSlNNb2R1bGVzKFxuICBtZXRhZmlsZTogTWV0YWZpbGUsXG4gIGFsbG93ZWRDb21tb25Kc0RlcGVuZGVuY2llcz86IHN0cmluZ1tdLFxuKTogUGFydGlhbE1lc3NhZ2VbXSB7XG4gIGNvbnN0IG1lc3NhZ2VzOiBQYXJ0aWFsTWVzc2FnZVtdID0gW107XG4gIGNvbnN0IGFsbG93ZWRSZXF1ZXN0cyA9IG5ldyBTZXQoYWxsb3dlZENvbW1vbkpzRGVwZW5kZW5jaWVzKTtcblxuICAvLyBJZ25vcmUgQW5ndWxhciBsb2NhbGUgZGVmaW5pdGlvbnMgd2hpY2ggYXJlIGN1cnJlbnRseSBVTURcbiAgYWxsb3dlZFJlcXVlc3RzLmFkZCgnQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMnKTtcblxuICAvLyBGaW5kIGFsbCBlbnRyeSBwb2ludHMgdGhhdCBjb250YWluIGNvZGUgKEpTL1RTKVxuICBjb25zdCBmaWxlczogc3RyaW5nW10gPSBbXTtcbiAgZm9yIChjb25zdCB7IGVudHJ5UG9pbnQgfSBvZiBPYmplY3QudmFsdWVzKG1ldGFmaWxlLm91dHB1dHMpKSB7XG4gICAgaWYgKCFlbnRyeVBvaW50KSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgaWYgKCFpc1BhdGhDb2RlKGVudHJ5UG9pbnQpKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBmaWxlcy5wdXNoKGVudHJ5UG9pbnQpO1xuICB9XG5cbiAgLy8gVHJhY2sgc2VlbiBmaWxlcyBzbyB0aGV5IGFyZSBvbmx5IGFuYWx5emVkIG9uY2UuXG4gIC8vIEJ1bmRsZXIgcnVudGltZSBjb2RlIGlzIGFsc28gaWdub3JlZCBzaW5jZSBpdCBjYW5ub3QgYmUgYWN0aW9uYWJsZS5cbiAgY29uc3Qgc2VlbkZpbGVzID0gbmV3IFNldDxzdHJpbmc+KFsnPHJ1bnRpbWU+J10pO1xuXG4gIC8vIEFuYWx5emUgdGhlIGZpbGVzIHByZXNlbnQgYnkgd2Fsa2luZyB0aGUgaW1wb3J0IGdyYXBoXG4gIGxldCBjdXJyZW50RmlsZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICB3aGlsZSAoKGN1cnJlbnRGaWxlID0gZmlsZXMuc2hpZnQoKSkpIHtcbiAgICBjb25zdCBpbnB1dCA9IG1ldGFmaWxlLmlucHV0c1tjdXJyZW50RmlsZV07XG5cbiAgICBmb3IgKGNvbnN0IGltcG9ydGVkIG9mIGlucHV0LmltcG9ydHMpIHtcbiAgICAgIC8vIElnbm9yZSBpbXBvcnRzIHRoYXQgd2VyZSBhbHJlYWR5IHNlZW4gb3Igbm90IG9yaWdpbmFsbHkgaW4gdGhlIGNvZGUgKGJ1bmRsZXIgaW5qZWN0ZWQpXG4gICAgICBpZiAoIWltcG9ydGVkLm9yaWdpbmFsIHx8IHNlZW5GaWxlcy5oYXMoaW1wb3J0ZWQucGF0aCkpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBzZWVuRmlsZXMuYWRkKGltcG9ydGVkLnBhdGgpO1xuXG4gICAgICAvLyBPbmx5IGNoZWNrIGFjdHVhbCBjb2RlIGZpbGVzXG4gICAgICBpZiAoIWlzUGF0aENvZGUoaW1wb3J0ZWQucGF0aCkpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIC8vIENoZWNrIGlmIHRoZSBpbXBvcnQgaXMgRVNNIGZvcm1hdCBhbmQgaXNzdWUgYSBkaWFnbm9zdGljIGlmIHRoZSBmaWxlIGlzIG5vdCBhbGxvd2VkXG4gICAgICBpZiAobWV0YWZpbGUuaW5wdXRzW2ltcG9ydGVkLnBhdGhdLmZvcm1hdCAhPT0gJ2VzbScpIHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IGltcG9ydGVkLm9yaWdpbmFsO1xuXG4gICAgICAgIGxldCBub3RBbGxvd2VkID0gdHJ1ZTtcbiAgICAgICAgaWYgKGFsbG93ZWRSZXF1ZXN0cy5oYXMocmVxdWVzdCkpIHtcbiAgICAgICAgICBub3RBbGxvd2VkID0gZmFsc2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gQ2hlY2sgZm9yIGRlZXAgaW1wb3J0cyBvZiBhbGxvd2VkIHJlcXVlc3RzXG4gICAgICAgICAgZm9yIChjb25zdCBhbGxvd2VkIG9mIGFsbG93ZWRSZXF1ZXN0cykge1xuICAgICAgICAgICAgaWYgKHJlcXVlc3Quc3RhcnRzV2l0aChhbGxvd2VkICsgJy8nKSkge1xuICAgICAgICAgICAgICBub3RBbGxvd2VkID0gZmFsc2U7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChub3RBbGxvd2VkKSB7XG4gICAgICAgICAgLy8gSXNzdWUgYSBkaWFnbm9zdGljIG1lc3NhZ2UgYW5kIHNraXAgYWxsIGRlc2NlbmRhbnRzIHNpbmNlIHRoZXkgYXJlIGFsc28gbW9zdFxuICAgICAgICAgIC8vIGxpa2VseSBub3QgRVNNIGJ1dCBzb2x2ZWQgYnkgYWRkcmVzc2luZyB0aGlzIGltcG9ydC5cbiAgICAgICAgICBtZXNzYWdlcy5wdXNoKGNyZWF0ZUNvbW1vbkpTTW9kdWxlRXJyb3IocmVxdWVzdCwgY3VycmVudEZpbGUpKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBBZGQgdGhlIHBhdGggc28gdGhhdCBpdHMgaW1wb3J0cyBjYW4gYmUgY2hlY2tlZFxuICAgICAgZmlsZXMucHVzaChpbXBvcnRlZC5wYXRoKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbWVzc2FnZXM7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyBpZiBhIGZpbGUgcGF0aCBoYXMgYW4gZXh0ZW5zaW9uIHRoYXQgaXMgYSBKYXZhU2NyaXB0IG9yIFR5cGVTY3JpcHRcbiAqIGNvZGUgZmlsZS5cbiAqXG4gKiBAcGFyYW0gbmFtZSBBIHBhdGggdG8gY2hlY2sgZm9yIGNvZGUgZmlsZSBleHRlbnNpb25zLlxuICogQHJldHVybnMgVHJ1ZSwgaWYgYSBjb2RlIGZpbGUgcGF0aDsgZmFsc2UsIG90aGVyd2lzZS5cbiAqL1xuZnVuY3Rpb24gaXNQYXRoQ29kZShuYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIC9cXC5bY21dP1tqdF1zeD8kLy50ZXN0KG5hbWUpO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYW4gZXNidWlsZCBkaWFnbm9zdGljIG1lc3NhZ2UgZm9yIGEgZ2l2ZW4gbm9uLUVTTSBtb2R1bGUgcmVxdWVzdC5cbiAqXG4gKiBAcGFyYW0gcmVxdWVzdCBUaGUgcmVxdWVzdGVkIG5vbi1FU00gbW9kdWxlIG5hbWUuXG4gKiBAcGFyYW0gaW1wb3J0ZXIgVGhlIHBhdGggb2YgdGhlIGZpbGUgY29udGFpbmluZyB0aGUgaW1wb3J0LlxuICogQHJldHVybnMgQSBtZXNzYWdlIHJlcHJlc2VudGluZyB0aGUgZGlhZ25vc3RpYy5cbiAqL1xuZnVuY3Rpb24gY3JlYXRlQ29tbW9uSlNNb2R1bGVFcnJvcihyZXF1ZXN0OiBzdHJpbmcsIGltcG9ydGVyOiBzdHJpbmcpOiBQYXJ0aWFsTWVzc2FnZSB7XG4gIGNvbnN0IGVycm9yID0ge1xuICAgIHRleHQ6IGBNb2R1bGUgJyR7cmVxdWVzdH0nIHVzZWQgYnkgJyR7aW1wb3J0ZXJ9JyBpcyBub3QgRVNNYCxcbiAgICBub3RlczogW1xuICAgICAge1xuICAgICAgICB0ZXh0OlxuICAgICAgICAgICdDb21tb25KUyBvciBBTUQgZGVwZW5kZW5jaWVzIGNhbiBjYXVzZSBvcHRpbWl6YXRpb24gYmFpbG91dHMuXFxuJyArXG4gICAgICAgICAgJ0ZvciBtb3JlIGluZm9ybWF0aW9uIHNlZTogaHR0cHM6Ly9hbmd1bGFyLmlvL2d1aWRlL2J1aWxkI2NvbmZpZ3VyaW5nLWNvbW1vbmpzLWRlcGVuZGVuY2llcycsXG4gICAgICB9LFxuICAgIF0sXG4gIH07XG5cbiAgcmV0dXJuIGVycm9yO1xufVxuIl19
125
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uanMtY2hlY2tlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXJfZGV2a2l0L2J1aWxkX2FuZ3VsYXIvc3JjL2J1aWxkZXJzL2Jyb3dzZXItZXNidWlsZC9jb21tb25qcy1jaGVja2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7OztBQUlIOzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQkc7QUFDSCxTQUFnQixvQkFBb0IsQ0FDbEMsUUFBa0IsRUFDbEIsMkJBQXNDO0lBRXRDLE1BQU0sUUFBUSxHQUFxQixFQUFFLENBQUM7SUFDdEMsTUFBTSxlQUFlLEdBQUcsSUFBSSxHQUFHLENBQUMsMkJBQTJCLENBQUMsQ0FBQztJQUU3RCw0REFBNEQ7SUFDNUQsZUFBZSxDQUFDLEdBQUcsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBRS9DLDRFQUE0RTtJQUM1RSx5RUFBeUU7SUFDekUsZUFBZSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUUvQixrREFBa0Q7SUFDbEQsTUFBTSxLQUFLLEdBQWEsRUFBRSxDQUFDO0lBQzNCLEtBQUssTUFBTSxFQUFFLFVBQVUsRUFBRSxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQzVELElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDZixTQUFTO1NBQ1Y7UUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQzNCLFNBQVM7U0FDVjtRQUVELEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7S0FDeEI7SUFFRCxtREFBbUQ7SUFDbkQsc0VBQXNFO0lBQ3RFLE1BQU0sU0FBUyxHQUFHLElBQUksR0FBRyxDQUFTLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUVqRCx3REFBd0Q7SUFDeEQsSUFBSSxXQUErQixDQUFDO0lBQ3BDLE9BQU8sQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUU7UUFDcEMsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUUzQyxLQUFLLE1BQU0sUUFBUSxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUU7WUFDcEMseUZBQXlGO1lBQ3pGLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxJQUFJLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUN0RCxTQUFTO2FBQ1Y7WUFDRCxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUU3QiwrQkFBK0I7WUFDL0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQzlCLFNBQVM7YUFDVjtZQUVELHNGQUFzRjtZQUN0RixJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sS0FBSyxLQUFLLEVBQUU7Z0JBQ25ELE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUM7Z0JBRWxDLElBQUksVUFBVSxHQUFHLElBQUksQ0FBQztnQkFDdEIsSUFBSSxlQUFlLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFO29CQUNoQyxVQUFVLEdBQUcsS0FBSyxDQUFDO2lCQUNwQjtxQkFBTTtvQkFDTCw2Q0FBNkM7b0JBQzdDLEtBQUssTUFBTSxPQUFPLElBQUksZUFBZSxFQUFFO3dCQUNyQyxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxFQUFFOzRCQUNyQyxVQUFVLEdBQUcsS0FBSyxDQUFDOzRCQUNuQixNQUFNO3lCQUNQO3FCQUNGO2lCQUNGO2dCQUVELElBQUksVUFBVSxFQUFFO29CQUNkLCtFQUErRTtvQkFDL0UsdURBQXVEO29CQUN2RCxRQUFRLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDO29CQUMvRCxTQUFTO2lCQUNWO2FBQ0Y7WUFFRCxrREFBa0Q7WUFDbEQsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDM0I7S0FDRjtJQUVELE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUM7QUEvRUQsb0RBK0VDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsU0FBUyxVQUFVLENBQUMsSUFBWTtJQUM5QixPQUFPLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN0QyxDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsU0FBUyx5QkFBeUIsQ0FBQyxPQUFlLEVBQUUsUUFBZ0I7SUFDbEUsTUFBTSxLQUFLLEdBQUc7UUFDWixJQUFJLEVBQUUsV0FBVyxPQUFPLGNBQWMsUUFBUSxjQUFjO1FBQzVELEtBQUssRUFBRTtZQUNMO2dCQUNFLElBQUksRUFDRixpRUFBaUU7b0JBQ2pFLDRGQUE0RjthQUMvRjtTQUNGO0tBQ0YsQ0FBQztJQUVGLE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgdHlwZSB7IE1ldGFmaWxlLCBQYXJ0aWFsTWVzc2FnZSB9IGZyb20gJ2VzYnVpbGQnO1xuXG4vKipcbiAqIENoZWNrcyB0aGUgaW5wdXQgZmlsZXMgb2YgYSBidWlsZCB0byBkZXRlcm1pbmUgaWYgYW55IG9mIHRoZSBmaWxlcyBpbmNsdWRlZFxuICogaW4gdGhlIGJ1aWxkIGFyZSBub3QgRVNNLiBFU00gZmlsZXMgY2FuIGJlIHRyZWUtc2hha2VuIGFuZCBvdGhlcndpc2Ugb3B0aW1pemVkXG4gKiBpbiB3YXlzIHRoYXQgQ29tbW9uSlMgYW5kIG90aGVyIG1vZHVsZSBmb3JtYXRzIGNhbm5vdC4gVGhlIGVzYnVpbGQgbWV0YWZpbGVcbiAqIGluZm9ybWF0aW9uIGlzIHVzZWQgYXMgdGhlIGJhc2lzIGZvciB0aGUgYW5hbHlzaXMgYXMgaXQgY29udGFpbnMgaW5mb3JtYXRpb25cbiAqIGZvciBlYWNoIGlucHV0IGZpbGUgaW5jbHVkaW5nIGl0cyByZXNwZWN0aXZlIGZvcm1hdC5cbiAqXG4gKiBJZiBhbnkgYWxsb3dlZCBkZXBlbmRlbmNpZXMgYXJlIHByb3ZpZGVkIHZpYSB0aGUgYGFsbG93ZWRDb21tb25Kc0RlcGVuZGVuY2llc2BcbiAqIHBhcmFtZXRlciwgYm90aCB0aGUgZGlyZWN0IGltcG9ydCBhbmQgYW55IGRlZXAgaW1wb3J0cyB3aWxsIGJlIGlnbm9yZWQgYW5kIG5vXG4gKiBkaWFnbm9zdGljIHdpbGwgYmUgZ2VuZXJhdGVkLlxuICpcbiAqIElmIGEgbW9kdWxlIGhhcyBiZWVuIGlzc3VlZCBhIGRpYWdub3N0aWMgbWVzc2FnZSwgdGhlbiBhbGwgZGVzY2VuZGFudCBtb2R1bGVzXG4gKiB3aWxsIG5vdCBiZSBjaGVja2VkLiBUaGlzIHByZXZlbnRzIGEgcG90ZW50aWFsIG1hc3NpdmUgYW1vdW50IG9mIGluYWN0aW9uYWJsZVxuICogbWVzc2FnZXMgc2luY2UgdGhlIGluaXRpYWwgbW9kdWxlIGltcG9ydCBpcyB0aGUgY2F1c2Ugb2YgdGhlIHByb2JsZW0uXG4gKlxuICogQHBhcmFtIG1ldGFmaWxlIEFuIGVzYnVpbGQgbWV0YWZpbGUgb2JqZWN0IHRvIGNoZWNrLlxuICogQHBhcmFtIGFsbG93ZWRDb21tb25Kc0RlcGVuZGVuY2llcyBBbiBvcHRpb25hbCBsaXN0IG9mIGFsbG93ZWQgZGVwZW5kZW5jaWVzLlxuICogQHJldHVybnMgWmVybyBvciBtb3JlIGRpYWdub3N0aWMgbWVzc2FnZXMgZm9yIGFueSBub24tRVNNIG1vZHVsZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjaGVja0NvbW1vbkpTTW9kdWxlcyhcbiAgbWV0YWZpbGU6IE1ldGFmaWxlLFxuICBhbGxvd2VkQ29tbW9uSnNEZXBlbmRlbmNpZXM/OiBzdHJpbmdbXSxcbik6IFBhcnRpYWxNZXNzYWdlW10ge1xuICBjb25zdCBtZXNzYWdlczogUGFydGlhbE1lc3NhZ2VbXSA9IFtdO1xuICBjb25zdCBhbGxvd2VkUmVxdWVzdHMgPSBuZXcgU2V0KGFsbG93ZWRDb21tb25Kc0RlcGVuZGVuY2llcyk7XG5cbiAgLy8gSWdub3JlIEFuZ3VsYXIgbG9jYWxlIGRlZmluaXRpb25zIHdoaWNoIGFyZSBjdXJyZW50bHkgVU1EXG4gIGFsbG93ZWRSZXF1ZXN0cy5hZGQoJ0Bhbmd1bGFyL2NvbW1vbi9sb2NhbGVzJyk7XG5cbiAgLy8gSWdub3JlIHpvbmUuanMgZHVlIHRvIGl0IGN1cnJlbnRseSBiZWluZyBidWlsdCB3aXRoIGEgVU1EIGxpa2Ugc3RydWN0dXJlLlxuICAvLyBPbmNlIHRoZSBidWlsZCBvdXRwdXQgaXMgdXBkYXRlZCB0byBiZSBmdWxseSBFU00sIHRoaXMgY2FuIGJlIHJlbW92ZWQuXG4gIGFsbG93ZWRSZXF1ZXN0cy5hZGQoJ3pvbmUuanMnKTtcblxuICAvLyBGaW5kIGFsbCBlbnRyeSBwb2ludHMgdGhhdCBjb250YWluIGNvZGUgKEpTL1RTKVxuICBjb25zdCBmaWxlczogc3RyaW5nW10gPSBbXTtcbiAgZm9yIChjb25zdCB7IGVudHJ5UG9pbnQgfSBvZiBPYmplY3QudmFsdWVzKG1ldGFmaWxlLm91dHB1dHMpKSB7XG4gICAgaWYgKCFlbnRyeVBvaW50KSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgaWYgKCFpc1BhdGhDb2RlKGVudHJ5UG9pbnQpKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBmaWxlcy5wdXNoKGVudHJ5UG9pbnQpO1xuICB9XG5cbiAgLy8gVHJhY2sgc2VlbiBmaWxlcyBzbyB0aGV5IGFyZSBvbmx5IGFuYWx5emVkIG9uY2UuXG4gIC8vIEJ1bmRsZXIgcnVudGltZSBjb2RlIGlzIGFsc28gaWdub3JlZCBzaW5jZSBpdCBjYW5ub3QgYmUgYWN0aW9uYWJsZS5cbiAgY29uc3Qgc2VlbkZpbGVzID0gbmV3IFNldDxzdHJpbmc+KFsnPHJ1bnRpbWU+J10pO1xuXG4gIC8vIEFuYWx5emUgdGhlIGZpbGVzIHByZXNlbnQgYnkgd2Fsa2luZyB0aGUgaW1wb3J0IGdyYXBoXG4gIGxldCBjdXJyZW50RmlsZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICB3aGlsZSAoKGN1cnJlbnRGaWxlID0gZmlsZXMuc2hpZnQoKSkpIHtcbiAgICBjb25zdCBpbnB1dCA9IG1ldGFmaWxlLmlucHV0c1tjdXJyZW50RmlsZV07XG5cbiAgICBmb3IgKGNvbnN0IGltcG9ydGVkIG9mIGlucHV0LmltcG9ydHMpIHtcbiAgICAgIC8vIElnbm9yZSBpbXBvcnRzIHRoYXQgd2VyZSBhbHJlYWR5IHNlZW4gb3Igbm90IG9yaWdpbmFsbHkgaW4gdGhlIGNvZGUgKGJ1bmRsZXIgaW5qZWN0ZWQpXG4gICAgICBpZiAoIWltcG9ydGVkLm9yaWdpbmFsIHx8IHNlZW5GaWxlcy5oYXMoaW1wb3J0ZWQucGF0aCkpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBzZWVuRmlsZXMuYWRkKGltcG9ydGVkLnBhdGgpO1xuXG4gICAgICAvLyBPbmx5IGNoZWNrIGFjdHVhbCBjb2RlIGZpbGVzXG4gICAgICBpZiAoIWlzUGF0aENvZGUoaW1wb3J0ZWQucGF0aCkpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIC8vIENoZWNrIGlmIHRoZSBpbXBvcnQgaXMgRVNNIGZvcm1hdCBhbmQgaXNzdWUgYSBkaWFnbm9zdGljIGlmIHRoZSBmaWxlIGlzIG5vdCBhbGxvd2VkXG4gICAgICBpZiAobWV0YWZpbGUuaW5wdXRzW2ltcG9ydGVkLnBhdGhdLmZvcm1hdCAhPT0gJ2VzbScpIHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IGltcG9ydGVkLm9yaWdpbmFsO1xuXG4gICAgICAgIGxldCBub3RBbGxvd2VkID0gdHJ1ZTtcbiAgICAgICAgaWYgKGFsbG93ZWRSZXF1ZXN0cy5oYXMocmVxdWVzdCkpIHtcbiAgICAgICAgICBub3RBbGxvd2VkID0gZmFsc2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gQ2hlY2sgZm9yIGRlZXAgaW1wb3J0cyBvZiBhbGxvd2VkIHJlcXVlc3RzXG4gICAgICAgICAgZm9yIChjb25zdCBhbGxvd2VkIG9mIGFsbG93ZWRSZXF1ZXN0cykge1xuICAgICAgICAgICAgaWYgKHJlcXVlc3Quc3RhcnRzV2l0aChhbGxvd2VkICsgJy8nKSkge1xuICAgICAgICAgICAgICBub3RBbGxvd2VkID0gZmFsc2U7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChub3RBbGxvd2VkKSB7XG4gICAgICAgICAgLy8gSXNzdWUgYSBkaWFnbm9zdGljIG1lc3NhZ2UgYW5kIHNraXAgYWxsIGRlc2NlbmRhbnRzIHNpbmNlIHRoZXkgYXJlIGFsc28gbW9zdFxuICAgICAgICAgIC8vIGxpa2VseSBub3QgRVNNIGJ1dCBzb2x2ZWQgYnkgYWRkcmVzc2luZyB0aGlzIGltcG9ydC5cbiAgICAgICAgICBtZXNzYWdlcy5wdXNoKGNyZWF0ZUNvbW1vbkpTTW9kdWxlRXJyb3IocmVxdWVzdCwgY3VycmVudEZpbGUpKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBBZGQgdGhlIHBhdGggc28gdGhhdCBpdHMgaW1wb3J0cyBjYW4gYmUgY2hlY2tlZFxuICAgICAgZmlsZXMucHVzaChpbXBvcnRlZC5wYXRoKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbWVzc2FnZXM7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyBpZiBhIGZpbGUgcGF0aCBoYXMgYW4gZXh0ZW5zaW9uIHRoYXQgaXMgYSBKYXZhU2NyaXB0IG9yIFR5cGVTY3JpcHRcbiAqIGNvZGUgZmlsZS5cbiAqXG4gKiBAcGFyYW0gbmFtZSBBIHBhdGggdG8gY2hlY2sgZm9yIGNvZGUgZmlsZSBleHRlbnNpb25zLlxuICogQHJldHVybnMgVHJ1ZSwgaWYgYSBjb2RlIGZpbGUgcGF0aDsgZmFsc2UsIG90aGVyd2lzZS5cbiAqL1xuZnVuY3Rpb24gaXNQYXRoQ29kZShuYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIC9cXC5bY21dP1tqdF1zeD8kLy50ZXN0KG5hbWUpO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYW4gZXNidWlsZCBkaWFnbm9zdGljIG1lc3NhZ2UgZm9yIGEgZ2l2ZW4gbm9uLUVTTSBtb2R1bGUgcmVxdWVzdC5cbiAqXG4gKiBAcGFyYW0gcmVxdWVzdCBUaGUgcmVxdWVzdGVkIG5vbi1FU00gbW9kdWxlIG5hbWUuXG4gKiBAcGFyYW0gaW1wb3J0ZXIgVGhlIHBhdGggb2YgdGhlIGZpbGUgY29udGFpbmluZyB0aGUgaW1wb3J0LlxuICogQHJldHVybnMgQSBtZXNzYWdlIHJlcHJlc2VudGluZyB0aGUgZGlhZ25vc3RpYy5cbiAqL1xuZnVuY3Rpb24gY3JlYXRlQ29tbW9uSlNNb2R1bGVFcnJvcihyZXF1ZXN0OiBzdHJpbmcsIGltcG9ydGVyOiBzdHJpbmcpOiBQYXJ0aWFsTWVzc2FnZSB7XG4gIGNvbnN0IGVycm9yID0ge1xuICAgIHRleHQ6IGBNb2R1bGUgJyR7cmVxdWVzdH0nIHVzZWQgYnkgJyR7aW1wb3J0ZXJ9JyBpcyBub3QgRVNNYCxcbiAgICBub3RlczogW1xuICAgICAge1xuICAgICAgICB0ZXh0OlxuICAgICAgICAgICdDb21tb25KUyBvciBBTUQgZGVwZW5kZW5jaWVzIGNhbiBjYXVzZSBvcHRpbWl6YXRpb24gYmFpbG91dHMuXFxuJyArXG4gICAgICAgICAgJ0ZvciBtb3JlIGluZm9ybWF0aW9uIHNlZTogaHR0cHM6Ly9hbmd1bGFyLmlvL2d1aWRlL2J1aWxkI2NvbmZpZ3VyaW5nLWNvbW1vbmpzLWRlcGVuZGVuY2llcycsXG4gICAgICB9LFxuICAgIF0sXG4gIH07XG5cbiAgcmV0dXJuIGVycm9yO1xufVxuIl19
@@ -17,6 +17,7 @@ export declare class SourceFileCache extends Map<string, ts.SourceFile> {
17
17
  export interface CompilerPluginOptions {
18
18
  sourcemap: boolean;
19
19
  tsconfig: string;
20
+ jit?: boolean;
20
21
  advancedOptimizations?: boolean;
21
22
  thirdPartySourcemaps?: boolean;
22
23
  fileReplacements?: Record<string, string>;