@angular-devkit/build-angular 16.2.0-next.0 → 16.2.0-next.2

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 (62) hide show
  1. package/package.json +22 -21
  2. package/src/builders/app-shell/render-worker.js +6 -2
  3. package/src/builders/application/execute-build.js +50 -11
  4. package/src/builders/application/options.d.ts +17 -4
  5. package/src/builders/application/options.js +63 -28
  6. package/src/builders/application/schema.d.ts +62 -6
  7. package/src/builders/application/schema.js +1 -1
  8. package/src/builders/application/schema.json +62 -4
  9. package/src/builders/browser-esbuild/builder-status-warnings.d.ts +1 -1
  10. package/src/builders/browser-esbuild/builder-status-warnings.js +2 -1
  11. package/src/builders/browser-esbuild/schema.d.ts +17 -1
  12. package/src/builders/browser-esbuild/schema.js +1 -1
  13. package/src/builders/browser-esbuild/schema.json +1 -0
  14. package/src/builders/dev-server/builder.js +3 -2
  15. package/src/builders/dev-server/vite-server.d.ts +1 -1
  16. package/src/builders/dev-server/vite-server.js +82 -37
  17. package/src/builders/jest/index.js +2 -2
  18. package/src/tools/babel/presets/application.d.ts +1 -0
  19. package/src/tools/babel/presets/application.js +43 -41
  20. package/src/tools/babel/webpack-loader.d.ts +0 -1
  21. package/src/tools/babel/webpack-loader.js +3 -23
  22. package/src/tools/esbuild/angular/angular-host.js +5 -2
  23. package/src/tools/esbuild/angular/{angular-compilation.d.ts → compilation/angular-compilation.d.ts} +1 -1
  24. package/src/tools/esbuild/angular/compilation/angular-compilation.js +52 -0
  25. package/src/tools/esbuild/angular/{aot-compilation.d.ts → compilation/aot-compilation.d.ts} +1 -1
  26. package/src/tools/esbuild/angular/compilation/aot-compilation.js +211 -0
  27. package/src/tools/esbuild/angular/compilation/index.d.ts +11 -0
  28. package/src/tools/esbuild/angular/compilation/index.js +19 -0
  29. package/src/tools/esbuild/angular/{jit-compilation.d.ts → compilation/jit-compilation.d.ts} +1 -1
  30. package/src/tools/esbuild/angular/compilation/jit-compilation.js +106 -0
  31. package/src/tools/esbuild/angular/compilation/noop-compilation.d.ts +20 -0
  32. package/src/tools/esbuild/angular/compilation/noop-compilation.js +27 -0
  33. package/src/tools/esbuild/angular/compiler-plugin.d.ts +2 -0
  34. package/src/tools/esbuild/angular/compiler-plugin.js +22 -8
  35. package/src/tools/esbuild/application-code-bundle.d.ts +8 -2
  36. package/src/tools/esbuild/application-code-bundle.js +163 -71
  37. package/src/tools/esbuild/compiler-plugin-options.d.ts +15 -0
  38. package/src/tools/esbuild/compiler-plugin-options.js +45 -0
  39. package/src/tools/esbuild/global-scripts.js +6 -5
  40. package/src/tools/esbuild/global-styles.d.ts +1 -1
  41. package/src/tools/esbuild/global-styles.js +2 -3
  42. package/src/tools/esbuild/index-html-generator.d.ts +6 -2
  43. package/src/tools/esbuild/index-html-generator.js +41 -13
  44. package/src/tools/esbuild/javascript-transformer-worker.js +25 -6
  45. package/src/tools/esbuild/load-result-cache.js +6 -3
  46. package/src/tools/esbuild/rxjs-esm-resolution-plugin.d.ts +18 -0
  47. package/src/tools/esbuild/rxjs-esm-resolution-plugin.js +45 -0
  48. package/src/tools/esbuild/stylesheets/bundle-options.d.ts +3 -4
  49. package/src/tools/esbuild/stylesheets/bundle-options.js +3 -4
  50. package/src/tools/esbuild/stylesheets/stylesheet-plugin-factory.d.ts +8 -4
  51. package/src/tools/esbuild/stylesheets/stylesheet-plugin-factory.js +34 -16
  52. package/src/utils/server-rendering/esm-in-memory-file-loader.d.ts +11 -0
  53. package/src/utils/server-rendering/esm-in-memory-file-loader.js +53 -0
  54. package/src/utils/server-rendering/prerender.d.ts +22 -0
  55. package/src/utils/server-rendering/prerender.js +127 -0
  56. package/src/utils/server-rendering/render-page.d.ts +38 -0
  57. package/src/utils/server-rendering/render-page.js +63 -0
  58. package/src/utils/server-rendering/render-worker.d.ts +18 -0
  59. package/src/utils/server-rendering/render-worker.js +20 -0
  60. package/src/tools/esbuild/angular/angular-compilation.js +0 -52
  61. package/src/tools/esbuild/angular/aot-compilation.js +0 -211
  62. package/src/tools/esbuild/angular/jit-compilation.js +0 -106
@@ -6,37 +6,19 @@
6
6
  * Use of this source code is governed by an MIT-style license that can be
7
7
  * found in the LICENSE file at https://angular.io/license
8
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 (mod) {
26
- if (mod && mod.__esModule) return mod;
27
- var result = {};
28
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
29
- __setModuleDefault(result, mod);
30
- return result;
31
- };
32
9
  var __importDefault = (this && this.__importDefault) || function (mod) {
33
10
  return (mod && mod.__esModule) ? mod : { "default": mod };
34
11
  };
35
12
  Object.defineProperty(exports, "__esModule", { value: true });
36
- const assert_1 = require("assert");
37
- const browserslist_1 = __importDefault(require("browserslist"));
38
- const fs = __importStar(require("fs"));
39
- const path = __importStar(require("path"));
13
+ exports.requiresLinking = void 0;
14
+ const node_assert_1 = __importDefault(require("node:assert"));
15
+ const node_fs_1 = __importDefault(require("node:fs"));
16
+ const node_path_1 = __importDefault(require("node:path"));
17
+ const load_esm_1 = require("../../../utils/load-esm");
18
+ /**
19
+ * Cached instance of the compiler-cli linker's needsLinking function.
20
+ */
21
+ let needsLinking;
40
22
  /**
41
23
  * List of browsers which are affected by a WebKit bug where class field
42
24
  * initializers might have incorrect variable scopes.
@@ -44,12 +26,7 @@ const path = __importStar(require("path"));
44
26
  * See: https://github.com/angular/angular-cli/issues/24355#issuecomment-1333477033
45
27
  * See: https://github.com/WebKit/WebKit/commit/e8788a34b3d5f5b4edd7ff6450b80936bff396f2
46
28
  */
47
- const safariClassFieldScopeBugBrowsers = new Set((0, browserslist_1.default)([
48
- // Safari <15 is technically not supported via https://angular.io/guide/browser-support,
49
- // but we apply the workaround if forcibly selected.
50
- 'Safari <=15',
51
- 'iOS <=15',
52
- ]));
29
+ let safariClassFieldScopeBugBrowsers;
53
30
  function createI18nDiagnostics(reporter) {
54
31
  const diagnostics = new (class {
55
32
  constructor() {
@@ -76,7 +53,7 @@ function createI18nDiagnostics(reporter) {
76
53
  }
77
54
  }
78
55
  formatDiagnostics() {
79
- assert_1.strict.fail('@angular/localize Diagnostics formatDiagnostics should not be called from within babel.');
56
+ node_assert_1.default.fail('@angular/localize Diagnostics formatDiagnostics should not be called from within babel.');
80
57
  }
81
58
  })();
82
59
  return diagnostics;
@@ -119,11 +96,11 @@ function default_1(api, options) {
119
96
  sourceMapping: false,
120
97
  logger: createNgtscLogger(options.diagnosticReporter),
121
98
  fileSystem: {
122
- resolve: path.resolve,
123
- exists: fs.existsSync,
124
- dirname: path.dirname,
125
- relative: path.relative,
126
- readFile: fs.readFileSync,
99
+ resolve: node_path_1.default.resolve,
100
+ exists: node_fs_1.default.existsSync,
101
+ dirname: node_path_1.default.dirname,
102
+ relative: node_path_1.default.relative,
103
+ readFile: node_fs_1.default.readFileSync,
127
104
  // Node.JS types don't overlap the Compiler types.
128
105
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
129
106
  },
@@ -134,6 +111,15 @@ function default_1(api, options) {
134
111
  // based on the supported browsers in browserslist.
135
112
  if (options.supportedBrowsers) {
136
113
  const includePlugins = [];
114
+ if (safariClassFieldScopeBugBrowsers === undefined) {
115
+ const browserslist = require('browserslist');
116
+ safariClassFieldScopeBugBrowsers = new Set(browserslist([
117
+ // Safari <15 is technically not supported via https://angular.io/guide/browser-support,
118
+ // but we apply the workaround if forcibly selected.
119
+ 'Safari <=15',
120
+ 'iOS <=15',
121
+ ]));
122
+ }
137
123
  // If a Safari browser affected by the class field scope bug is selected, we
138
124
  // downlevel class properties by ensuring the class properties Babel plugin
139
125
  // is always included- regardless of the preset-env targets.
@@ -187,11 +173,27 @@ function default_1(api, options) {
187
173
  {
188
174
  useESModules: true,
189
175
  version: require('@babel/runtime/package.json').version,
190
- absoluteRuntime: path.dirname(require.resolve('@babel/runtime/package.json')),
176
+ absoluteRuntime: node_path_1.default.dirname(require.resolve('@babel/runtime/package.json')),
191
177
  },
192
178
  ]);
193
179
  }
194
180
  return { presets, plugins };
195
181
  }
196
182
  exports.default = default_1;
197
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyX2RldmtpdC9idWlsZF9hbmd1bGFyL3NyYy90b29scy9iYWJlbC9wcmVzZXRzL2FwcGxpY2F0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFTSCxtQ0FBMEM7QUFDMUMsZ0VBQXdDO0FBQ3hDLHVDQUF5QjtBQUN6QiwyQ0FBNkI7QUFFN0I7Ozs7OztHQU1HO0FBQ0gsTUFBTSxnQ0FBZ0MsR0FBRyxJQUFJLEdBQUcsQ0FDOUMsSUFBQSxzQkFBWSxFQUFDO0lBQ1gsd0ZBQXdGO0lBQ3hGLG9EQUFvRDtJQUNwRCxhQUFhO0lBQ2IsVUFBVTtDQUNYLENBQUMsQ0FDSCxDQUFDO0FBaURGLFNBQVMscUJBQXFCLENBQUMsUUFBd0M7SUFDckUsTUFBTSxXQUFXLEdBQWdCLElBQUksQ0FBQztRQUFBO1lBQzNCLGFBQVEsR0FBNEIsRUFBRSxDQUFDO1lBQ2hELGNBQVMsR0FBRyxLQUFLLENBQUM7UUErQnBCLENBQUM7UUE3QkMsR0FBRyxDQUFDLElBQWdDLEVBQUUsT0FBZTtZQUNuRCxJQUFJLElBQUksS0FBSyxRQUFRLEVBQUU7Z0JBQ3JCLE9BQU87YUFDUjtZQUVELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFDdEMsSUFBSSxDQUFDLFNBQVMsS0FBZCxJQUFJLENBQUMsU0FBUyxHQUFLLElBQUksS0FBSyxPQUFPLEVBQUM7WUFDcEMsUUFBUSxFQUFFLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzVCLENBQUM7UUFFRCxLQUFLLENBQUMsT0FBZTtZQUNuQixJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FB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QUFPO2dCQUN2RCxlQUFlLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLDZCQUE2QixDQUFDLENBQUM7YUFDOUU7U0FDRixDQUFDLENBQUM7S0FDSjtJQUVELE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUM7QUFDOUIsQ0FBQztBQWxIRCw0QkFrSEMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHR5cGUgeyDJtVBhcnNlZFRyYW5zbGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvbG9jYWxpemUnO1xuaW1wb3J0IHR5cGUge1xuICBEaWFnbm9zdGljSGFuZGxpbmdTdHJhdGVneSxcbiAgRGlhZ25vc3RpY3MsXG4gIG1ha2VFczIwMTVUcmFuc2xhdGVQbHVnaW4sXG4gIG1ha2VMb2NhbGVQbHVnaW4sXG59IGZyb20gJ0Bhbmd1bGFyL2xvY2FsaXplL3Rvb2xzJztcbmltcG9ydCB7IHN0cmljdCBhcyBhc3NlcnQgfSBmcm9tICdhc3NlcnQnO1xuaW1wb3J0IGJyb3dzZXJzbGlzdCBmcm9tICdicm93c2Vyc2xpc3QnO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcblxuLyoqXG4gKiBMaXN0IG9mIGJyb3dzZXJzIHdoaWNoIGFyZSBhZmZlY3RlZCBieSBhIFdlYktpdCBidWcgd2hlcmUgY2xhc3MgZmllbGRcbiAqIGluaXRpYWxpemVycyBtaWdodCBoYXZlIGluY29ycmVjdCB2YXJpYWJsZSBzY29wZXMuXG4gKlxuICogU2VlOiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyLWNsaS9pc3N1ZXMvMjQzNTUjaXNzdWVjb21tZW50LTEzMzM0NzcwMzNcbiAqIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL1dlYktpdC9XZWJLaXQvY29tbWl0L2U4Nzg4YTM0YjNkNWY1YjRlZGQ3ZmY2NDUwYjgwOTM2YmZmMzk2ZjJcbiAqL1xuY29uc3Qgc2FmYXJpQ2xhc3NGaWVsZFNjb3BlQnVnQnJvd3NlcnMgPSBuZXcgU2V0KFxuICBicm93c2Vyc2xpc3QoW1xuICAgIC8vIFNhZmFyaSA8MTUgaXMgdGVjaG5pY2FsbHkgbm90IHN1cHBvcnRlZCB2aWEgaHR0cHM6Ly9hbmd1bGFyLmlvL2d1aWRlL2Jyb3dzZXItc3VwcG9ydCxcbiAgICAvLyBidXQgd2UgYXBwbHkgdGhlIHdvcmthcm91bmQgaWYgZm9yY2libHkgc2VsZWN0ZWQuXG4gICAgJ1NhZmFyaSA8PTE1JyxcbiAgICAnaU9TIDw9MTUnLFxuICBdKSxcbik7XG5cbmV4cG9ydCB0eXBlIERpYWdub3N0aWNSZXBvcnRlciA9ICh0eXBlOiAnZXJyb3InIHwgJ3dhcm5pbmcnIHwgJ2luZm8nLCBtZXNzYWdlOiBzdHJpbmcpID0+IHZvaWQ7XG5cbi8qKlxuICogQW4gaW50ZXJmYWNlIHJlcHJlc2VudGluZyB0aGUgZmFjdG9yeSBmdW5jdGlvbnMgZm9yIHRoZSBgQGFuZ3VsYXIvbG9jYWxpemVgIHRyYW5zbGF0aW9uIEJhYmVsIHBsdWdpbnMuXG4gKiBUaGlzIG11c3QgYmUgcHJvdmlkZWQgZm9yIHRoZSBFU00gaW1wb3J0cyBzaW5jZSBkeW5hbWljIGltcG9ydHMgYXJlIHJlcXVpcmVkIHRvIGJlIGFzeW5jaHJvbm91cyBhbmRcbiAqIEJhYmVsIHByZXNldHMgY3VycmVudGx5IGNhbiBvbmx5IGJlIHN5bmNocm9ub3VzLlxuICpcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJMThuUGx1Z2luQ3JlYXRvcnMge1xuICBtYWtlRXMyMDE1VHJhbnNsYXRlUGx1Z2luOiB0eXBlb2YgbWFrZUVzMjAxNVRyYW5zbGF0ZVBsdWdpbjtcbiAgbWFrZUxvY2FsZVBsdWdpbjogdHlwZW9mIG1ha2VMb2NhbGVQbHVnaW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBwbGljYXRpb25QcmVzZXRPcHRpb25zIHtcbiAgaTE4bj86IHtcbiAgICBsb2NhbGU6IHN0cmluZztcbiAgICBtaXNzaW5nVHJhbnNsYXRpb25CZWhhdmlvcj86ICdlcnJvcicgfCAnd2FybmluZycgfCAnaWdub3JlJztcbiAgICB0cmFuc2xhdGlvbj86IFJlY29yZDxzdHJpbmcsIMm1UGFyc2VkVHJhbnNsYXRpb24+O1xuICAgIHRyYW5zbGF0aW9uRmlsZXM/OiBzdHJpbmdbXTtcbiAgICBwbHVnaW5DcmVhdG9yczogSTE4blBsdWdpbkNyZWF0b3JzO1xuICB9O1xuXG4gIGFuZ3VsYXJMaW5rZXI/OiB7XG4gICAgc2hvdWxkTGluazogYm9vbGVhbjtcbiAgICBqaXRNb2RlOiBib29sZWFuO1xuICAgIGxpbmtlclBsdWdpbkNyZWF0b3I6IHR5cGVvZiBpbXBvcnQoJ0Bhbmd1bGFyL2NvbXBpbGVyLWNsaS9saW5rZXIvYmFiZWwnKS5jcmVhdGVFczIwMTVMaW5rZXJQbHVnaW47XG4gIH07XG5cbiAgZm9yY2VBc3luY1RyYW5zZm9ybWF0aW9uPzogYm9vbGVhbjtcbiAgaW5zdHJ1bWVudENvZGU/OiB7XG4gICAgaW5jbHVkZWRCYXNlUGF0aDogc3RyaW5nO1xuICAgIGlucHV0U291cmNlTWFwOiB1bmtub3duO1xuICB9O1xuICBvcHRpbWl6ZT86IHtcbiAgICBwdXJlVG9wTGV2ZWw6IGJvb2xlYW47XG4gICAgd3JhcERlY29yYXRvcnM6IGJvb2xlYW47XG4gIH07XG5cbiAgc3VwcG9ydGVkQnJvd3NlcnM/OiBzdHJpbmdbXTtcbiAgZGlhZ25vc3RpY1JlcG9ydGVyPzogRGlhZ25vc3RpY1JlcG9ydGVyO1xufVxuXG4vLyBFeHRyYWN0IExvZ2dlciB0eXBlIGZyb20gdGhlIGxpbmtlciBmdW5jdGlvbiB0byBhdm9pZCBkZWVwIGltcG9ydGluZyB0byBhY2Nlc3MgdGhlIHR5cGVcbnR5cGUgTmd0c2NMb2dnZXIgPSBQYXJhbWV0ZXJzPFxuICB0eXBlb2YgaW1wb3J0KCdAYW5ndWxhci9jb21waWxlci1jbGkvbGlua2VyL2JhYmVsJykuY3JlYXRlRXMyMDE1TGlua2VyUGx1Z2luXG4+WzBdWydsb2dnZXInXTtcblxuZnVuY3Rpb24gY3JlYXRlSTE4bkRpYWdub3N0aWNzKHJlcG9ydGVyOiBEaWFnbm9zdGljUmVwb3J0ZXIgfCB1bmRlZmluZWQpOiBEaWFnbm9zdGljcyB7XG4gIGNvbnN0IGRpYWdub3N0aWNzOiBEaWFnbm9zdGljcyA9IG5ldyAoY2xhc3Mge1xuICAgIHJlYWRvbmx5IG1lc3NhZ2VzOiBEaWFnbm9zdGljc1snbWVzc2FnZXMnXSA9IFtdO1xuICAgIGhhc0Vycm9ycyA9IGZhbHNlO1xuXG4gICAgYWRkKHR5cGU6IERpYWdub3N0aWNIYW5kbGluZ1N0cmF0ZWd5LCBtZXNzYWdlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgIGlmICh0eXBlID09PSAnaWdub3JlJykge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHRoaXMubWVzc2FnZXMucHVzaCh7IHR5cGUsIG1lc3NhZ2UgfSk7XG4gICAgICB0aGlzLmhhc0Vycm9ycyB8fD0gdHlwZSA9PT0gJ2Vycm9yJztcbiAgICAgIHJlcG9ydGVyPy4odHlwZSwgbWVzc2FnZSk7XG4gICAgfVxuXG4gICAgZXJyb3IobWVzc2FnZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICB0aGlzLmFkZCgnZXJyb3InLCBtZXNzYWdlKTtcbiAgICB9XG5cbiAgICB3YXJuKG1lc3NhZ2U6IHN0cmluZyk6IHZvaWQge1xuICAgICAgdGhpcy5hZGQoJ3dhcm5pbmcnLCBtZXNzYWdlKTtcbiAgICB9XG5cbiAgICBtZXJnZShvdGhlcjogRGlhZ25vc3RpY3MpOiB2b2lkIHtcbiAgICAgIGZvciAoY29uc3QgZGlhZ25vc3RpYyBvZiBvdGhlci5tZXNzYWdlcykge1xuICAgICAgICB0aGlzLmFkZChkaWFnbm9zdGljLnR5cGUsIGRpYWdub3N0aWMubWVzc2FnZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZm9ybWF0RGlhZ25vc3RpY3MoKTogbmV2ZXIge1xuICAgICAgYXNzZXJ0LmZhaWwoXG4gICAgICAgICdAYW5ndWxhci9sb2NhbGl6ZSBEaWFnbm9zdGljcyBmb3JtYXREaWFnbm9zdGljcyBzaG91bGQgbm90IGJlIGNhbGxlZCBmcm9tIHdpdGhpbiBiYWJlbC4nLFxuICAgICAgKTtcbiAgICB9XG4gIH0pKCk7XG5cbiAgcmV0dXJuIGRpYWdub3N0aWNzO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVJMThuUGx1Z2lucyhcbiAgbG9jYWxlOiBzdHJpbmcsXG4gIHRyYW5zbGF0aW9uOiBSZWNvcmQ8c3RyaW5nLCDJtVBhcnNlZFRyYW5zbGF0aW9uPiB8IHVuZGVmaW5lZCxcbiAgbWlzc2luZ1RyYW5zbGF0aW9uQmVoYXZpb3I6ICdlcnJvcicgfCAnd2FybmluZycgfCAnaWdub3JlJyxcbiAgZGlhZ25vc3RpY1JlcG9ydGVyOiBEaWFnbm9zdGljUmVwb3J0ZXIgfCB1bmRlZmluZWQsXG4gIHBsdWdpbkNyZWF0b3JzOiBJMThuUGx1Z2luQ3JlYXRvcnMsXG4pIHtcbiAgY29uc3QgZGlhZ25vc3RpY3MgPSBjcmVhdGVJMThuRGlhZ25vc3RpY3MoZGlhZ25vc3RpY1JlcG9ydGVyKTtcbiAgY29uc3QgcGx1Z2lucyA9IFtdO1xuXG4gIGNvbnN0IHsgbWFrZUVzMjAxNVRyYW5zbGF0ZVBsdWdpbiwgbWFrZUxvY2FsZVBsdWdpbiB9ID0gcGx1Z2luQ3JlYXRvcnM7XG5cbiAgaWYgKHRyYW5zbGF0aW9uKSB7XG4gICAgcGx1Z2lucy5wdXNoKFxuICAgICAgbWFrZUVzMjAxNVRyYW5zbGF0ZVBsdWdpbihkaWFnbm9zdGljcywgdHJhbnNsYXRpb24sIHtcbiAgICAgICAgbWlzc2luZ1RyYW5zbGF0aW9uOiBtaXNzaW5nVHJhbnNsYXRpb25CZWhhdmlvcixcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBwbHVnaW5zLnB1c2gobWFrZUxvY2FsZVBsdWdpbihsb2NhbGUpKTtcblxuICByZXR1cm4gcGx1Z2lucztcbn1cblxuZnVuY3Rpb24gY3JlYXRlTmd0c2NMb2dnZXIocmVwb3J0ZXI6IERpYWdub3N0aWNSZXBvcnRlciB8IHVuZGVmaW5lZCk6IE5ndHNjTG9nZ2VyIHtcbiAgcmV0dXJuIHtcbiAgICBsZXZlbDogMSwgLy8gSW5mbyBsZXZlbFxuICAgIGRlYnVnKC4uLmFyZ3M6IHN0cmluZ1tdKSB7fSxcbiAgICBpbmZvKC4uLmFyZ3M6IHN0cmluZ1tdKSB7XG4gICAgICByZXBvcnRlcj8uKCdpbmZvJywgYXJncy5qb2luKCkpO1xuICAgIH0sXG4gICAgd2FybiguLi5hcmdzOiBzdHJpbmdbXSkge1xuICAgICAgcmVwb3J0ZXI/Lignd2FybmluZycsIGFyZ3Muam9pbigpKTtcbiAgICB9LFxuICAgIGVycm9yKC4uLmFyZ3M6IHN0cmluZ1tdKSB7XG4gICAgICByZXBvcnRlcj8uKCdlcnJvcicsIGFyZ3Muam9pbigpKTtcbiAgICB9LFxuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiAoYXBpOiB1bmtub3duLCBvcHRpb25zOiBBcHBsaWNhdGlvblByZXNldE9wdGlvbnMpIHtcbiAgY29uc3QgcHJlc2V0cyA9IFtdO1xuICBjb25zdCBwbHVnaW5zID0gW107XG4gIGxldCBuZWVkUnVudGltZVRyYW5zZm9ybSA9IGZhbHNlO1xuXG4gIGlmIChvcHRpb25zLmFuZ3VsYXJMaW5rZXI/LnNob3VsZExpbmspIHtcbiAgICBwbHVnaW5zLnB1c2goXG4gICAgICBvcHRpb25zLmFuZ3VsYXJMaW5rZXIubGlua2VyUGx1Z2luQ3JlYXRvcih7XG4gICAgICAgIGxpbmtlckppdE1vZGU6IG9wdGlvbnMuYW5ndWxhckxpbmtlci5qaXRNb2RlLFxuICAgICAgICAvLyBUaGlzIGlzIGEgd29ya2Fyb3VuZCB1bnRpbCBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy80Mjc2OSBpcyBmaXhlZC5cbiAgICAgICAgc291cmNlTWFwcGluZzogZmFsc2UsXG4gICAgICAgIGxvZ2dlcjogY3JlYXRlTmd0c2NMb2dnZXIob3B0aW9ucy5kaWFnbm9zdGljUmVwb3J0ZXIpLFxuICAgICAgICBmaWxlU3lzdGVtOiB7XG4gICAgICAgICAgcmVzb2x2ZTogcGF0aC5yZXNvbHZlLFxuICAgICAgICAgIGV4aXN0czogZnMuZXhpc3RzU3luYyxcbiAgICAgICAgICBkaXJuYW1lOiBwYXRoLmRpcm5hbWUsXG4gICAgICAgICAgcmVsYXRpdmU6IHBhdGgucmVsYXRpdmUsXG4gICAgICAgICAgcmVhZEZpbGU6IGZzLnJlYWRGaWxlU3luYyxcbiAgICAgICAgICAvLyBOb2RlLkpTIHR5cGVzIGRvbid0IG92ZXJsYXAgdGhlIENvbXBpbGVyIHR5cGVzLlxuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgIH0gYXMgYW55LFxuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIC8vIEFwcGxpY2F0aW9ucyBjb2RlIEVTIHZlcnNpb24gY2FuIGJlIGNvbnRyb2xsZWQgdXNpbmcgVHlwZVNjcmlwdCdzIGB0YXJnZXRgIG9wdGlvbi5cbiAgLy8gSG93ZXZlciwgdGhpcyBkb2Vzbid0IGVmZmVjdCBsaWJyYXJpZXMgYW5kIGhlbmNlIHdlIHVzZSBwcmVzZXQtZW52IHRvIGRvd25sZXZlbCBFUyBmZWF0dXJlc1xuICAvLyBiYXNlZCBvbiB0aGUgc3VwcG9ydGVkIGJyb3dzZXJzIGluIGJyb3dzZXJzbGlzdC5cbiAgaWYgKG9wdGlvbnMuc3VwcG9ydGVkQnJvd3NlcnMpIHtcbiAgICBjb25zdCBpbmNsdWRlUGx1Z2luczogc3RyaW5nW10gPSBbXTtcblxuICAgIC8vIElmIGEgU2FmYXJpIGJyb3dzZXIgYWZmZWN0ZWQgYnkgdGhlIGNsYXNzIGZpZWxkIHNjb3BlIGJ1ZyBpcyBzZWxlY3RlZCwgd2VcbiAgICAvLyBkb3dubGV2ZWwgY2xhc3MgcHJvcGVydGllcyBieSBlbnN1cmluZyB0aGUgY2xhc3MgcHJvcGVydGllcyBCYWJlbCBwbHVnaW5cbiAgICAvLyBpcyBhbHdheXMgaW5jbHVkZWQtIHJlZ2FyZGxlc3Mgb2YgdGhlIHByZXNldC1lbnYgdGFyZ2V0cy5cbiAgICBpZiAob3B0aW9ucy5zdXBwb3J0ZWRCcm93c2Vycy5zb21lKChiKSA9PiBzYWZhcmlDbGFzc0ZpZWxkU2NvcGVCdWdCcm93c2Vycy5oYXMoYikpKSB7XG4gICAgICBpbmNsdWRlUGx1Z2lucy5wdXNoKFxuICAgICAgICAnQGJhYmVsL3BsdWdpbi1wcm9wb3NhbC1jbGFzcy1wcm9wZXJ0aWVzJyxcbiAgICAgICAgJ0BiYWJlbC9wbHVnaW4tcHJvcG9zYWwtcHJpdmF0ZS1tZXRob2RzJyxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcHJlc2V0cy5wdXNoKFtcbiAgICAgIHJlcXVpcmUoJ0BiYWJlbC9wcmVzZXQtZW52JykuZGVmYXVsdCxcbiAgICAgIHtcbiAgICAgICAgYnVnZml4ZXM6IHRydWUsXG4gICAgICAgIG1vZHVsZXM6IGZhbHNlLFxuICAgICAgICB0YXJnZXRzOiBvcHRpb25zLnN1cHBvcnRlZEJyb3dzZXJzLFxuICAgICAgICBpbmNsdWRlOiBpbmNsdWRlUGx1Z2lucyxcbiAgICAgICAgZXhjbHVkZTogWyd0cmFuc2Zvcm0tdHlwZW9mLXN5bWJvbCddLFxuICAgICAgfSxcbiAgICBdKTtcbiAgICBuZWVkUnVudGltZVRyYW5zZm9ybSA9IHRydWU7XG4gIH1cblxuICBpZiAob3B0aW9ucy5pMThuKSB7XG4gICAgY29uc3QgeyBsb2NhbGUsIG1pc3NpbmdUcmFuc2xhdGlvbkJlaGF2aW9yLCBwbHVnaW5DcmVhdG9ycywgdHJhbnNsYXRpb24gfSA9IG9wdGlvbnMuaTE4bjtcbiAgICBjb25zdCBpMThuUGx1Z2lucyA9IGNyZWF0ZUkxOG5QbHVnaW5zKFxuICAgICAgbG9jYWxlLFxuICAgICAgdHJhbnNsYXRpb24sXG4gICAgICBtaXNzaW5nVHJhbnNsYXRpb25CZWhhdmlvciB8fCAnaWdub3JlJyxcbiAgICAgIG9wdGlvbnMuZGlhZ25vc3RpY1JlcG9ydGVyLFxuICAgICAgcGx1Z2luQ3JlYXRvcnMsXG4gICAgKTtcblxuICAgIHBsdWdpbnMucHVzaCguLi5pMThuUGx1Z2lucyk7XG4gIH1cblxuICBpZiAob3B0aW9ucy5mb3JjZUFzeW5jVHJhbnNmb3JtYXRpb24pIHtcbiAgICAvLyBBbHdheXMgdHJhbnNmb3JtIGFzeW5jL2F3YWl0IHRvIHN1cHBvcnQgWm9uZS5qc1xuICAgIHBsdWdpbnMucHVzaChcbiAgICAgIHJlcXVpcmUoJ0BiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLWFzeW5jLXRvLWdlbmVyYXRvcicpLmRlZmF1bHQsXG4gICAgICByZXF1aXJlKCdAYmFiZWwvcGx1Z2luLXByb3Bvc2FsLWFzeW5jLWdlbmVyYXRvci1mdW5jdGlvbnMnKS5kZWZhdWx0LFxuICAgICk7XG4gICAgbmVlZFJ1bnRpbWVUcmFuc2Zvcm0gPSB0cnVlO1xuICB9XG5cbiAgaWYgKG9wdGlvbnMub3B0aW1pemUpIHtcbiAgICBpZiAob3B0aW9ucy5vcHRpbWl6ZS5wdXJlVG9wTGV2ZWwpIHtcbiAgICAgIHBsdWdpbnMucHVzaChyZXF1aXJlKCcuLi9wbHVnaW5zL3B1cmUtdG9wbGV2ZWwtZnVuY3Rpb25zJykuZGVmYXVsdCk7XG4gICAgfVxuXG4gICAgcGx1Z2lucy5wdXNoKFxuICAgICAgcmVxdWlyZSgnLi4vcGx1Z2lucy9lbGlkZS1hbmd1bGFyLW1ldGFkYXRhJykuZGVmYXVsdCxcbiAgICAgIFtyZXF1aXJlKCcuLi9wbHVnaW5zL2FkanVzdC10eXBlc2NyaXB0LWVudW1zJykuZGVmYXVsdCwgeyBsb29zZTogdHJ1ZSB9XSxcbiAgICAgIFtcbiAgICAgICAgcmVxdWlyZSgnLi4vcGx1Z2lucy9hZGp1c3Qtc3RhdGljLWNsYXNzLW1lbWJlcnMnKS5kZWZhdWx0LFxuICAgICAgICB7IHdyYXBEZWNvcmF0b3JzOiBvcHRpb25zLm9wdGltaXplLndyYXBEZWNvcmF0b3JzIH0sXG4gICAgICBdLFxuICAgICk7XG4gIH1cblxuICBpZiAob3B0aW9ucy5pbnN0cnVtZW50Q29kZSkge1xuICAgIHBsdWdpbnMucHVzaChbXG4gICAgICByZXF1aXJlKCdiYWJlbC1wbHVnaW4taXN0YW5idWwnKS5kZWZhdWx0LFxuICAgICAge1xuICAgICAgICBpbnB1dFNvdXJjZU1hcDogb3B0aW9ucy5pbnN0cnVtZW50Q29kZS5pbnB1dFNvdXJjZU1hcCA/PyBmYWxzZSxcbiAgICAgICAgY3dkOiBvcHRpb25zLmluc3RydW1lbnRDb2RlLmluY2x1ZGVkQmFzZVBhdGgsXG4gICAgICB9LFxuICAgIF0pO1xuICB9XG5cbiAgaWYgKG5lZWRSdW50aW1lVHJhbnNmb3JtKSB7XG4gICAgLy8gQmFiZWwgZXF1aXZhbGVudCB0byBUeXBlU2NyaXB0J3MgYGltcG9ydEhlbHBlcnNgIG9wdGlvblxuICAgIHBsdWdpbnMucHVzaChbXG4gICAgICByZXF1aXJlKCdAYmFiZWwvcGx1Z2luLXRyYW5zZm9ybS1ydW50aW1lJykuZGVmYXVsdCxcbiAgICAgIHtcbiAgICAgICAgdXNlRVNNb2R1bGVzOiB0cnVlLFxuICAgICAgICB2ZXJzaW9uOiByZXF1aXJlKCdAYmFiZWwvcnVudGltZS9wYWNrYWdlLmpzb24nKS52ZXJzaW9uLFxuICAgICAgICBhYnNvbHV0ZVJ1bnRpbWU6IHBhdGguZGlybmFtZShyZXF1aXJlLnJlc29sdmUoJ0BiYWJlbC9ydW50aW1lL3BhY2thZ2UuanNvbicpKSxcbiAgICAgIH0sXG4gICAgXSk7XG4gIH1cblxuICByZXR1cm4geyBwcmVzZXRzLCBwbHVnaW5zIH07XG59XG4iXX0=
183
+ async function requiresLinking(path, source) {
184
+ // @angular/core and @angular/compiler will cause false positives
185
+ // Also, TypeScript files do not require linking
186
+ if (/[\\/]@angular[\\/](?:compiler|core)|\.tsx?$/.test(path)) {
187
+ return false;
188
+ }
189
+ if (!needsLinking) {
190
+ // Load ESM `@angular/compiler-cli/linker` using the TypeScript dynamic import workaround.
191
+ // Once TypeScript provides support for keeping the dynamic import this workaround can be
192
+ // changed to a direct dynamic import.
193
+ const linkerModule = await (0, load_esm_1.loadEsmModule)('@angular/compiler-cli/linker');
194
+ needsLinking = linkerModule.needsLinking;
195
+ }
196
+ return needsLinking(path, source);
197
+ }
198
+ exports.requiresLinking = requiresLinking;
199
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyX2RldmtpdC9idWlsZF9hbmd1bGFyL3NyYy90b29scy9iYWJlbC9wcmVzZXRzL2FwcGxpY2F0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7Ozs7OztBQVNILDhEQUFpQztBQUNqQyxzREFBeUI7QUFDekIsMERBQTZCO0FBQzdCLHNEQUF3RDtBQUV4RDs7R0FFRztBQUNILElBQUksWUFBb0YsQ0FBQztBQUV6Rjs7Ozs7O0dBTUc7QUFDSCxJQUFJLGdDQUFxRCxDQUFDO0FBaUQxRCxTQUFTLHFCQUFxQixDQUFDLFFBQXdDO0lBQ3JFLE1BQU0sV0FBVyxHQUFnQixJQUFJLENBQUM7UUFBQTtZQUMzQixhQUFRLEdBQTRCLEVBQUUsQ0FBQztZQUNoRCxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBK0JwQixDQUFDO1FBN0JDLEdBQUcsQ0FBQyxJQUFnQyxFQUFFLE9BQWU7WUFDbkQsSUFBSSxJQUFJLEtBQUssUUFBUSxFQUFFO2dCQUNyQixPQUFPO2FBQ1I7WUFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1lBQ3RDLElBQUksQ0FBQyxTQUFTLEtBQWQsSUFBSSxDQUFDLFNBQVMsR0FBSyxJQUFJLEtBQUssT0FBTyxFQUFDO1lBQ3BDLFFBQVEsRUFBRSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM1QixDQUFDO1FBRUQsS0FBSyxDQUFDLE9BQWU7WUFDbkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDN0IsQ0FBQztRQUVELElBQUksQ0FBQyxPQUFlO1lBQ2xCLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FB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QUksQ0FBQztZQUNYLE9BQU8sQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDLE9BQU87WUFDbEQ7Z0JBQ0UsWUFBWSxFQUFFLElBQUk7Z0JBQ2xCLE9BQU8sRUFBRSxPQUFPLENBQUMsNkJBQTZCLENBQUMsQ0FBQyxPQUFPO2dCQUN2RCxlQUFlLEVBQUUsbUJBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO2FBQzlFO1NBQ0YsQ0FBQyxDQUFDO0tBQ0o7SUFFRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDO0FBQzlCLENBQUM7QUE5SEQsNEJBOEhDO0FBRU0sS0FBSyxVQUFVLGVBQWUsQ0FBQyxJQUFZLEVBQUUsTUFBYztJQUNoRSxpRUFBaUU7SUFDakUsZ0RBQWdEO0lBQ2hELElBQUksNkNBQTZDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQzVELE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFFRCxJQUFJLENBQUMsWUFBWSxFQUFFO1FBQ2pCLDBGQUEwRjtRQUMxRix5RkFBeUY7UUFDekYsc0NBQXNDO1FBQ3RDLE1BQU0sWUFBWSxHQUFHLE1BQU0sSUFBQSx3QkFBYSxFQUN0Qyw4QkFBOEIsQ0FDL0IsQ0FBQztRQUNGLFlBQVksR0FBRyxZQUFZLENBQUMsWUFBWSxDQUFDO0tBQzFDO0lBRUQsT0FBTyxZQUFZLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ3BDLENBQUM7QUFsQkQsMENBa0JDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB0eXBlIHsgybVQYXJzZWRUcmFuc2xhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2xvY2FsaXplJztcbmltcG9ydCB0eXBlIHtcbiAgRGlhZ25vc3RpY0hhbmRsaW5nU3RyYXRlZ3ksXG4gIERpYWdub3N0aWNzLFxuICBtYWtlRXMyMDE1VHJhbnNsYXRlUGx1Z2luLFxuICBtYWtlTG9jYWxlUGx1Z2luLFxufSBmcm9tICdAYW5ndWxhci9sb2NhbGl6ZS90b29scyc7XG5pbXBvcnQgYXNzZXJ0IGZyb20gJ25vZGU6YXNzZXJ0JztcbmltcG9ydCBmcyBmcm9tICdub2RlOmZzJztcbmltcG9ydCBwYXRoIGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQgeyBsb2FkRXNtTW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvbG9hZC1lc20nO1xuXG4vKipcbiAqIENhY2hlZCBpbnN0YW5jZSBvZiB0aGUgY29tcGlsZXItY2xpIGxpbmtlcidzIG5lZWRzTGlua2luZyBmdW5jdGlvbi5cbiAqL1xubGV0IG5lZWRzTGlua2luZzogdHlwZW9mIGltcG9ydCgnQGFuZ3VsYXIvY29tcGlsZXItY2xpL2xpbmtlcicpLm5lZWRzTGlua2luZyB8IHVuZGVmaW5lZDtcblxuLyoqXG4gKiBMaXN0IG9mIGJyb3dzZXJzIHdoaWNoIGFyZSBhZmZlY3RlZCBieSBhIFdlYktpdCBidWcgd2hlcmUgY2xhc3MgZmllbGRcbiAqIGluaXRpYWxpemVycyBtaWdodCBoYXZlIGluY29ycmVjdCB2YXJpYWJsZSBzY29wZXMuXG4gKlxuICogU2VlOiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyLWNsaS9pc3N1ZXMvMjQzNTUjaXNzdWVjb21tZW50LTEzMzM0NzcwMzNcbiAqIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL1dlYktpdC9XZWJLaXQvY29tbWl0L2U4Nzg4YTM0YjNkNWY1YjRlZGQ3ZmY2NDUwYjgwOTM2YmZmMzk2ZjJcbiAqL1xubGV0IHNhZmFyaUNsYXNzRmllbGRTY29wZUJ1Z0Jyb3dzZXJzOiBSZWFkb25seVNldDxzdHJpbmc+O1xuXG5leHBvcnQgdHlwZSBEaWFnbm9zdGljUmVwb3J0ZXIgPSAodHlwZTogJ2Vycm9yJyB8ICd3YXJuaW5nJyB8ICdpbmZvJywgbWVzc2FnZTogc3RyaW5nKSA9PiB2b2lkO1xuXG4vKipcbiAqIEFuIGludGVyZmFjZSByZXByZXNlbnRpbmcgdGhlIGZhY3RvcnkgZnVuY3Rpb25zIGZvciB0aGUgYEBhbmd1bGFyL2xvY2FsaXplYCB0cmFuc2xhdGlvbiBCYWJlbCBwbHVnaW5zLlxuICogVGhpcyBtdXN0IGJlIHByb3ZpZGVkIGZvciB0aGUgRVNNIGltcG9ydHMgc2luY2UgZHluYW1pYyBpbXBvcnRzIGFyZSByZXF1aXJlZCB0byBiZSBhc3luY2hyb25vdXMgYW5kXG4gKiBCYWJlbCBwcmVzZXRzIGN1cnJlbnRseSBjYW4gb25seSBiZSBzeW5jaHJvbm91cy5cbiAqXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSTE4blBsdWdpbkNyZWF0b3JzIHtcbiAgbWFrZUVzMjAxNVRyYW5zbGF0ZVBsdWdpbjogdHlwZW9mIG1ha2VFczIwMTVUcmFuc2xhdGVQbHVnaW47XG4gIG1ha2VMb2NhbGVQbHVnaW46IHR5cGVvZiBtYWtlTG9jYWxlUGx1Z2luO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFwcGxpY2F0aW9uUHJlc2V0T3B0aW9ucyB7XG4gIGkxOG4/OiB7XG4gICAgbG9jYWxlOiBzdHJpbmc7XG4gICAgbWlzc2luZ1RyYW5zbGF0aW9uQmVoYXZpb3I/OiAnZXJyb3InIHwgJ3dhcm5pbmcnIHwgJ2lnbm9yZSc7XG4gICAgdHJhbnNsYXRpb24/OiBSZWNvcmQ8c3RyaW5nLCDJtVBhcnNlZFRyYW5zbGF0aW9uPjtcbiAgICB0cmFuc2xhdGlvbkZpbGVzPzogc3RyaW5nW107XG4gICAgcGx1Z2luQ3JlYXRvcnM6IEkxOG5QbHVnaW5DcmVhdG9ycztcbiAgfTtcblxuICBhbmd1bGFyTGlua2VyPzoge1xuICAgIHNob3VsZExpbms6IGJvb2xlYW47XG4gICAgaml0TW9kZTogYm9vbGVhbjtcbiAgICBsaW5rZXJQbHVnaW5DcmVhdG9yOiB0eXBlb2YgaW1wb3J0KCdAYW5ndWxhci9jb21waWxlci1jbGkvbGlua2VyL2JhYmVsJykuY3JlYXRlRXMyMDE1TGlua2VyUGx1Z2luO1xuICB9O1xuXG4gIGZvcmNlQXN5bmNUcmFuc2Zvcm1hdGlvbj86IGJvb2xlYW47XG4gIGluc3RydW1lbnRDb2RlPzoge1xuICAgIGluY2x1ZGVkQmFzZVBhdGg6IHN0cmluZztcbiAgICBpbnB1dFNvdXJjZU1hcDogdW5rbm93bjtcbiAgfTtcbiAgb3B0aW1pemU/OiB7XG4gICAgcHVyZVRvcExldmVsOiBib29sZWFuO1xuICAgIHdyYXBEZWNvcmF0b3JzOiBib29sZWFuO1xuICB9O1xuXG4gIHN1cHBvcnRlZEJyb3dzZXJzPzogc3RyaW5nW107XG4gIGRpYWdub3N0aWNSZXBvcnRlcj86IERpYWdub3N0aWNSZXBvcnRlcjtcbn1cblxuLy8gRXh0cmFjdCBMb2dnZXIgdHlwZSBmcm9tIHRoZSBsaW5rZXIgZnVuY3Rpb24gdG8gYXZvaWQgZGVlcCBpbXBvcnRpbmcgdG8gYWNjZXNzIHRoZSB0eXBlXG50eXBlIE5ndHNjTG9nZ2VyID0gUGFyYW1ldGVyczxcbiAgdHlwZW9mIGltcG9ydCgnQGFuZ3VsYXIvY29tcGlsZXItY2xpL2xpbmtlci9iYWJlbCcpLmNyZWF0ZUVzMjAxNUxpbmtlclBsdWdpblxuPlswXVsnbG9nZ2VyJ107XG5cbmZ1bmN0aW9uIGNyZWF0ZUkxOG5EaWFnbm9zdGljcyhyZXBvcnRlcjogRGlhZ25vc3RpY1JlcG9ydGVyIHwgdW5kZWZpbmVkKTogRGlhZ25vc3RpY3Mge1xuICBjb25zdCBkaWFnbm9zdGljczogRGlhZ25vc3RpY3MgPSBuZXcgKGNsYXNzIHtcbiAgICByZWFkb25seSBtZXNzYWdlczogRGlhZ25vc3RpY3NbJ21lc3NhZ2VzJ10gPSBbXTtcbiAgICBoYXNFcnJvcnMgPSBmYWxzZTtcblxuICAgIGFkZCh0eXBlOiBEaWFnbm9zdGljSGFuZGxpbmdTdHJhdGVneSwgbWVzc2FnZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICBpZiAodHlwZSA9PT0gJ2lnbm9yZScpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLm1lc3NhZ2VzLnB1c2goeyB0eXBlLCBtZXNzYWdlIH0pO1xuICAgICAgdGhpcy5oYXNFcnJvcnMgfHw9IHR5cGUgPT09ICdlcnJvcic7XG4gICAgICByZXBvcnRlcj8uKHR5cGUsIG1lc3NhZ2UpO1xuICAgIH1cblxuICAgIGVycm9yKG1lc3NhZ2U6IHN0cmluZyk6IHZvaWQge1xuICAgICAgdGhpcy5hZGQoJ2Vycm9yJywgbWVzc2FnZSk7XG4gICAgfVxuXG4gICAgd2FybihtZXNzYWdlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgIHRoaXMuYWRkKCd3YXJuaW5nJywgbWVzc2FnZSk7XG4gICAgfVxuXG4gICAgbWVyZ2Uob3RoZXI6IERpYWdub3N0aWNzKTogdm9pZCB7XG4gICAgICBmb3IgKGNvbnN0IGRpYWdub3N0aWMgb2Ygb3RoZXIubWVzc2FnZXMpIHtcbiAgICAgICAgdGhpcy5hZGQoZGlhZ25vc3RpYy50eXBlLCBkaWFnbm9zdGljLm1lc3NhZ2UpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGZvcm1hdERpYWdub3N0aWNzKCk6IG5ldmVyIHtcbiAgICAgIGFzc2VydC5mYWlsKFxuICAgICAgICAnQGFuZ3VsYXIvbG9jYWxpemUgRGlhZ25vc3RpY3MgZm9ybWF0RGlhZ25vc3RpY3Mgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZnJvbSB3aXRoaW4gYmFiZWwuJyxcbiAgICAgICk7XG4gICAgfVxuICB9KSgpO1xuXG4gIHJldHVybiBkaWFnbm9zdGljcztcbn1cblxuZnVuY3Rpb24gY3JlYXRlSTE4blBsdWdpbnMoXG4gIGxvY2FsZTogc3RyaW5nLFxuICB0cmFuc2xhdGlvbjogUmVjb3JkPHN0cmluZywgybVQYXJzZWRUcmFuc2xhdGlvbj4gfCB1bmRlZmluZWQsXG4gIG1pc3NpbmdUcmFuc2xhdGlvbkJlaGF2aW9yOiAnZXJyb3InIHwgJ3dhcm5pbmcnIHwgJ2lnbm9yZScsXG4gIGRpYWdub3N0aWNSZXBvcnRlcjogRGlhZ25vc3RpY1JlcG9ydGVyIHwgdW5kZWZpbmVkLFxuICBwbHVnaW5DcmVhdG9yczogSTE4blBsdWdpbkNyZWF0b3JzLFxuKSB7XG4gIGNvbnN0IGRpYWdub3N0aWNzID0gY3JlYXRlSTE4bkRpYWdub3N0aWNzKGRpYWdub3N0aWNSZXBvcnRlcik7XG4gIGNvbnN0IHBsdWdpbnMgPSBbXTtcblxuICBjb25zdCB7IG1ha2VFczIwMTVUcmFuc2xhdGVQbHVnaW4sIG1ha2VMb2NhbGVQbHVnaW4gfSA9IHBsdWdpbkNyZWF0b3JzO1xuXG4gIGlmICh0cmFuc2xhdGlvbikge1xuICAgIHBsdWdpbnMucHVzaChcbiAgICAgIG1ha2VFczIwMTVUcmFuc2xhdGVQbHVnaW4oZGlhZ25vc3RpY3MsIHRyYW5zbGF0aW9uLCB7XG4gICAgICAgIG1pc3NpbmdUcmFuc2xhdGlvbjogbWlzc2luZ1RyYW5zbGF0aW9uQmVoYXZpb3IsXG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgcGx1Z2lucy5wdXNoKG1ha2VMb2NhbGVQbHVnaW4obG9jYWxlKSk7XG5cbiAgcmV0dXJuIHBsdWdpbnM7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZU5ndHNjTG9nZ2VyKHJlcG9ydGVyOiBEaWFnbm9zdGljUmVwb3J0ZXIgfCB1bmRlZmluZWQpOiBOZ3RzY0xvZ2dlciB7XG4gIHJldHVybiB7XG4gICAgbGV2ZWw6IDEsIC8vIEluZm8gbGV2ZWxcbiAgICBkZWJ1ZyguLi5hcmdzOiBzdHJpbmdbXSkge30sXG4gICAgaW5mbyguLi5hcmdzOiBzdHJpbmdbXSkge1xuICAgICAgcmVwb3J0ZXI/LignaW5mbycsIGFyZ3Muam9pbigpKTtcbiAgICB9LFxuICAgIHdhcm4oLi4uYXJnczogc3RyaW5nW10pIHtcbiAgICAgIHJlcG9ydGVyPy4oJ3dhcm5pbmcnLCBhcmdzLmpvaW4oKSk7XG4gICAgfSxcbiAgICBlcnJvciguLi5hcmdzOiBzdHJpbmdbXSkge1xuICAgICAgcmVwb3J0ZXI/LignZXJyb3InLCBhcmdzLmpvaW4oKSk7XG4gICAgfSxcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gKGFwaTogdW5rbm93biwgb3B0aW9uczogQXBwbGljYXRpb25QcmVzZXRPcHRpb25zKSB7XG4gIGNvbnN0IHByZXNldHMgPSBbXTtcbiAgY29uc3QgcGx1Z2lucyA9IFtdO1xuICBsZXQgbmVlZFJ1bnRpbWVUcmFuc2Zvcm0gPSBmYWxzZTtcblxuICBpZiAob3B0aW9ucy5hbmd1bGFyTGlua2VyPy5zaG91bGRMaW5rKSB7XG4gICAgcGx1Z2lucy5wdXNoKFxuICAgICAgb3B0aW9ucy5hbmd1bGFyTGlua2VyLmxpbmtlclBsdWdpbkNyZWF0b3Ioe1xuICAgICAgICBsaW5rZXJKaXRNb2RlOiBvcHRpb25zLmFuZ3VsYXJMaW5rZXIuaml0TW9kZSxcbiAgICAgICAgLy8gVGhpcyBpcyBhIHdvcmthcm91bmQgdW50aWwgaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvNDI3NjkgaXMgZml4ZWQuXG4gICAgICAgIHNvdXJjZU1hcHBpbmc6IGZhbHNlLFxuICAgICAgICBsb2dnZXI6IGNyZWF0ZU5ndHNjTG9nZ2VyKG9wdGlvbnMuZGlhZ25vc3RpY1JlcG9ydGVyKSxcbiAgICAgICAgZmlsZVN5c3RlbToge1xuICAgICAgICAgIHJlc29sdmU6IHBhdGgucmVzb2x2ZSxcbiAgICAgICAgICBleGlzdHM6IGZzLmV4aXN0c1N5bmMsXG4gICAgICAgICAgZGlybmFtZTogcGF0aC5kaXJuYW1lLFxuICAgICAgICAgIHJlbGF0aXZlOiBwYXRoLnJlbGF0aXZlLFxuICAgICAgICAgIHJlYWRGaWxlOiBmcy5yZWFkRmlsZVN5bmMsXG4gICAgICAgICAgLy8gTm9kZS5KUyB0eXBlcyBkb24ndCBvdmVybGFwIHRoZSBDb21waWxlciB0eXBlcy5cbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICB9IGFzIGFueSxcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICAvLyBBcHBsaWNhdGlvbnMgY29kZSBFUyB2ZXJzaW9uIGNhbiBiZSBjb250cm9sbGVkIHVzaW5nIFR5cGVTY3JpcHQncyBgdGFyZ2V0YCBvcHRpb24uXG4gIC8vIEhvd2V2ZXIsIHRoaXMgZG9lc24ndCBlZmZlY3QgbGlicmFyaWVzIGFuZCBoZW5jZSB3ZSB1c2UgcHJlc2V0LWVudiB0byBkb3dubGV2ZWwgRVMgZmVhdHVyZXNcbiAgLy8gYmFzZWQgb24gdGhlIHN1cHBvcnRlZCBicm93c2VycyBpbiBicm93c2Vyc2xpc3QuXG4gIGlmIChvcHRpb25zLnN1cHBvcnRlZEJyb3dzZXJzKSB7XG4gICAgY29uc3QgaW5jbHVkZVBsdWdpbnM6IHN0cmluZ1tdID0gW107XG5cbiAgICBpZiAoc2FmYXJpQ2xhc3NGaWVsZFNjb3BlQnVnQnJvd3NlcnMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc3QgYnJvd3NlcnNsaXN0ID0gcmVxdWlyZSgnYnJvd3NlcnNsaXN0Jyk7XG4gICAgICBzYWZhcmlDbGFzc0ZpZWxkU2NvcGVCdWdCcm93c2VycyA9IG5ldyBTZXQoXG4gICAgICAgIGJyb3dzZXJzbGlzdChbXG4gICAgICAgICAgLy8gU2FmYXJpIDwxNSBpcyB0ZWNobmljYWxseSBub3Qgc3VwcG9ydGVkIHZpYSBodHRwczovL2FuZ3VsYXIuaW8vZ3VpZGUvYnJvd3Nlci1zdXBwb3J0LFxuICAgICAgICAgIC8vIGJ1dCB3ZSBhcHBseSB0aGUgd29ya2Fyb3VuZCBpZiBmb3JjaWJseSBzZWxlY3RlZC5cbiAgICAgICAgICAnU2FmYXJpIDw9MTUnLFxuICAgICAgICAgICdpT1MgPD0xNScsXG4gICAgICAgIF0pLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBJZiBhIFNhZmFyaSBicm93c2VyIGFmZmVjdGVkIGJ5IHRoZSBjbGFzcyBmaWVsZCBzY29wZSBidWcgaXMgc2VsZWN0ZWQsIHdlXG4gICAgLy8gZG93bmxldmVsIGNsYXNzIHByb3BlcnRpZXMgYnkgZW5zdXJpbmcgdGhlIGNsYXNzIHByb3BlcnRpZXMgQmFiZWwgcGx1Z2luXG4gICAgLy8gaXMgYWx3YXlzIGluY2x1ZGVkLSByZWdhcmRsZXNzIG9mIHRoZSBwcmVzZXQtZW52IHRhcmdldHMuXG4gICAgaWYgKG9wdGlvbnMuc3VwcG9ydGVkQnJvd3NlcnMuc29tZSgoYikgPT4gc2FmYXJpQ2xhc3NGaWVsZFNjb3BlQnVnQnJvd3NlcnMuaGFzKGIpKSkge1xuICAgICAgaW5jbHVkZVBsdWdpbnMucHVzaChcbiAgICAgICAgJ0BiYWJlbC9wbHVnaW4tcHJvcG9zYWwtY2xhc3MtcHJvcGVydGllcycsXG4gICAgICAgICdAYmFiZWwvcGx1Z2luLXByb3Bvc2FsLXByaXZhdGUtbWV0aG9kcycsXG4gICAgICApO1xuICAgIH1cblxuICAgIHByZXNldHMucHVzaChbXG4gICAgICByZXF1aXJlKCdAYmFiZWwvcHJlc2V0LWVudicpLmRlZmF1bHQsXG4gICAgICB7XG4gICAgICAgIGJ1Z2ZpeGVzOiB0cnVlLFxuICAgICAgICBtb2R1bGVzOiBmYWxzZSxcbiAgICAgICAgdGFyZ2V0czogb3B0aW9ucy5zdXBwb3J0ZWRCcm93c2VycyxcbiAgICAgICAgaW5jbHVkZTogaW5jbHVkZVBsdWdpbnMsXG4gICAgICAgIGV4Y2x1ZGU6IFsndHJhbnNmb3JtLXR5cGVvZi1zeW1ib2wnXSxcbiAgICAgIH0sXG4gICAgXSk7XG4gICAgbmVlZFJ1bnRpbWVUcmFuc2Zvcm0gPSB0cnVlO1xuICB9XG5cbiAgaWYgKG9wdGlvbnMuaTE4bikge1xuICAgIGNvbnN0IHsgbG9jYWxlLCBtaXNzaW5nVHJhbnNsYXRpb25CZWhhdmlvciwgcGx1Z2luQ3JlYXRvcnMsIHRyYW5zbGF0aW9uIH0gPSBvcHRpb25zLmkxOG47XG4gICAgY29uc3QgaTE4blBsdWdpbnMgPSBjcmVhdGVJMThuUGx1Z2lucyhcbiAgICAgIGxvY2FsZSxcbiAgICAgIHRyYW5zbGF0aW9uLFxuICAgICAgbWlzc2luZ1RyYW5zbGF0aW9uQmVoYXZpb3IgfHwgJ2lnbm9yZScsXG4gICAgICBvcHRpb25zLmRpYWdub3N0aWNSZXBvcnRlcixcbiAgICAgIHBsdWdpbkNyZWF0b3JzLFxuICAgICk7XG5cbiAgICBwbHVnaW5zLnB1c2goLi4uaTE4blBsdWdpbnMpO1xuICB9XG5cbiAgaWYgKG9wdGlvbnMuZm9yY2VBc3luY1RyYW5zZm9ybWF0aW9uKSB7XG4gICAgLy8gQWx3YXlzIHRyYW5zZm9ybSBhc3luYy9hd2FpdCB0byBzdXBwb3J0IFpvbmUuanNcbiAgICBwbHVnaW5zLnB1c2goXG4gICAgICByZXF1aXJlKCdAYmFiZWwvcGx1Z2luLXRyYW5zZm9ybS1hc3luYy10by1nZW5lcmF0b3InKS5kZWZhdWx0LFxuICAgICAgcmVxdWlyZSgnQGJhYmVsL3BsdWdpbi1wcm9wb3NhbC1hc3luYy1nZW5lcmF0b3ItZnVuY3Rpb25zJykuZGVmYXVsdCxcbiAgICApO1xuICAgIG5lZWRSdW50aW1lVHJhbnNmb3JtID0gdHJ1ZTtcbiAgfVxuXG4gIGlmIChvcHRpb25zLm9wdGltaXplKSB7XG4gICAgaWYgKG9wdGlvbnMub3B0aW1pemUucHVyZVRvcExldmVsKSB7XG4gICAgICBwbHVnaW5zLnB1c2gocmVxdWlyZSgnLi4vcGx1Z2lucy9wdXJlLXRvcGxldmVsLWZ1bmN0aW9ucycpLmRlZmF1bHQpO1xuICAgIH1cblxuICAgIHBsdWdpbnMucHVzaChcbiAgICAgIHJlcXVpcmUoJy4uL3BsdWdpbnMvZWxpZGUtYW5ndWxhci1tZXRhZGF0YScpLmRlZmF1bHQsXG4gICAgICBbcmVxdWlyZSgnLi4vcGx1Z2lucy9hZGp1c3QtdHlwZXNjcmlwdC1lbnVtcycpLmRlZmF1bHQsIHsgbG9vc2U6IHRydWUgfV0sXG4gICAgICBbXG4gICAgICAgIHJlcXVpcmUoJy4uL3BsdWdpbnMvYWRqdXN0LXN0YXRpYy1jbGFzcy1tZW1iZXJzJykuZGVmYXVsdCxcbiAgICAgICAgeyB3cmFwRGVjb3JhdG9yczogb3B0aW9ucy5vcHRpbWl6ZS53cmFwRGVjb3JhdG9ycyB9LFxuICAgICAgXSxcbiAgICApO1xuICB9XG5cbiAgaWYgKG9wdGlvbnMuaW5zdHJ1bWVudENvZGUpIHtcbiAgICBwbHVnaW5zLnB1c2goW1xuICAgICAgcmVxdWlyZSgnYmFiZWwtcGx1Z2luLWlzdGFuYnVsJykuZGVmYXVsdCxcbiAgICAgIHtcbiAgICAgICAgaW5wdXRTb3VyY2VNYXA6IG9wdGlvbnMuaW5zdHJ1bWVudENvZGUuaW5wdXRTb3VyY2VNYXAgPz8gZmFsc2UsXG4gICAgICAgIGN3ZDogb3B0aW9ucy5pbnN0cnVtZW50Q29kZS5pbmNsdWRlZEJhc2VQYXRoLFxuICAgICAgfSxcbiAgICBdKTtcbiAgfVxuXG4gIGlmIChuZWVkUnVudGltZVRyYW5zZm9ybSkge1xuICAgIC8vIEJhYmVsIGVxdWl2YWxlbnQgdG8gVHlwZVNjcmlwdCdzIGBpbXBvcnRIZWxwZXJzYCBvcHRpb25cbiAgICBwbHVnaW5zLnB1c2goW1xuICAgICAgcmVxdWlyZSgnQGJhYmVsL3BsdWdpbi10cmFuc2Zvcm0tcnVudGltZScpLmRlZmF1bHQsXG4gICAgICB7XG4gICAgICAgIHVzZUVTTW9kdWxlczogdHJ1ZSxcbiAgICAgICAgdmVyc2lvbjogcmVxdWlyZSgnQGJhYmVsL3J1bnRpbWUvcGFja2FnZS5qc29uJykudmVyc2lvbixcbiAgICAgICAgYWJzb2x1dGVSdW50aW1lOiBwYXRoLmRpcm5hbWUocmVxdWlyZS5yZXNvbHZlKCdAYmFiZWwvcnVudGltZS9wYWNrYWdlLmpzb24nKSksXG4gICAgICB9LFxuICAgIF0pO1xuICB9XG5cbiAgcmV0dXJuIHsgcHJlc2V0cywgcGx1Z2lucyB9O1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVxdWlyZXNMaW5raW5nKHBhdGg6IHN0cmluZywgc291cmNlOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgLy8gQGFuZ3VsYXIvY29yZSBhbmQgQGFuZ3VsYXIvY29tcGlsZXIgd2lsbCBjYXVzZSBmYWxzZSBwb3NpdGl2ZXNcbiAgLy8gQWxzbywgVHlwZVNjcmlwdCBmaWxlcyBkbyBub3QgcmVxdWlyZSBsaW5raW5nXG4gIGlmICgvW1xcXFwvXUBhbmd1bGFyW1xcXFwvXSg/OmNvbXBpbGVyfGNvcmUpfFxcLnRzeD8kLy50ZXN0KHBhdGgpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCFuZWVkc0xpbmtpbmcpIHtcbiAgICAvLyBMb2FkIEVTTSBgQGFuZ3VsYXIvY29tcGlsZXItY2xpL2xpbmtlcmAgdXNpbmcgdGhlIFR5cGVTY3JpcHQgZHluYW1pYyBpbXBvcnQgd29ya2Fyb3VuZC5cbiAgICAvLyBPbmNlIFR5cGVTY3JpcHQgcHJvdmlkZXMgc3VwcG9ydCBmb3Iga2VlcGluZyB0aGUgZHluYW1pYyBpbXBvcnQgdGhpcyB3b3JrYXJvdW5kIGNhbiBiZVxuICAgIC8vIGNoYW5nZWQgdG8gYSBkaXJlY3QgZHluYW1pYyBpbXBvcnQuXG4gICAgY29uc3QgbGlua2VyTW9kdWxlID0gYXdhaXQgbG9hZEVzbU1vZHVsZTx0eXBlb2YgaW1wb3J0KCdAYW5ndWxhci9jb21waWxlci1jbGkvbGlua2VyJyk+KFxuICAgICAgJ0Bhbmd1bGFyL2NvbXBpbGVyLWNsaS9saW5rZXInLFxuICAgICk7XG4gICAgbmVlZHNMaW5raW5nID0gbGlua2VyTW9kdWxlLm5lZWRzTGlua2luZztcbiAgfVxuXG4gIHJldHVybiBuZWVkc0xpbmtpbmcocGF0aCwgc291cmNlKTtcbn1cbiJdfQ==
@@ -14,6 +14,5 @@ interface AngularCustomOptions extends Omit<ApplicationPresetOptions, 'instrumen
14
14
  };
15
15
  }
16
16
  export type AngularBabelLoaderOptions = AngularCustomOptions & Record<string, unknown>;
17
- export declare function requiresLinking(path: string, source: string): Promise<boolean>;
18
17
  declare const _default: any;
19
18
  export default _default;
@@ -7,14 +7,10 @@
7
7
  * found in the LICENSE file at https://angular.io/license
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.requiresLinking = void 0;
11
10
  const babel_loader_1 = require("babel-loader");
12
11
  const load_esm_1 = require("../../utils/load-esm");
13
12
  const package_version_1 = require("../../utils/package-version");
14
- /**
15
- * Cached instance of the compiler-cli linker's needsLinking function.
16
- */
17
- let needsLinking;
13
+ const application_1 = require("./presets/application");
18
14
  /**
19
15
  * Cached instance of the compiler-cli linker's Babel plugin factory function.
20
16
  */
@@ -23,22 +19,6 @@ let linkerPluginCreator;
23
19
  * Cached instance of the localize Babel plugins factory functions.
24
20
  */
25
21
  let i18nPluginCreators;
26
- async function requiresLinking(path, source) {
27
- // @angular/core and @angular/compiler will cause false positives
28
- // Also, TypeScript files do not require linking
29
- if (/[\\/]@angular[\\/](?:compiler|core)|\.tsx?$/.test(path)) {
30
- return false;
31
- }
32
- if (!needsLinking) {
33
- // Load ESM `@angular/compiler-cli/linker` using the TypeScript dynamic import workaround.
34
- // Once TypeScript provides support for keeping the dynamic import this workaround can be
35
- // changed to a direct dynamic import.
36
- const linkerModule = await (0, load_esm_1.loadEsmModule)('@angular/compiler-cli/linker');
37
- needsLinking = linkerModule.needsLinking;
38
- }
39
- return needsLinking(path, source);
40
- }
41
- exports.requiresLinking = requiresLinking;
42
22
  // eslint-disable-next-line max-lines-per-function
43
23
  exports.default = (0, babel_loader_1.custom)(() => {
44
24
  const baseOptions = Object.freeze({
@@ -62,7 +42,7 @@ exports.default = (0, babel_loader_1.custom)(() => {
62
42
  supportedBrowsers,
63
43
  };
64
44
  // Analyze file for linking
65
- if (await requiresLinking(this.resourcePath, source)) {
45
+ if (await (0, application_1.requiresLinking)(this.resourcePath, source)) {
66
46
  // Load ESM `@angular/compiler-cli/linker/babel` using the TypeScript dynamic import workaround.
67
47
  // Once TypeScript provides support for keeping the dynamic import this workaround can be
68
48
  // changed to a direct dynamic import.
@@ -186,4 +166,4 @@ exports.default = (0, babel_loader_1.custom)(() => {
186
166
  },
187
167
  };
188
168
  });
189
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2VicGFjay1sb2FkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyX2RldmtpdC9idWlsZF9hbmd1bGFyL3NyYy90b29scy9iYWJlbC93ZWJwYWNrLWxvYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOzs7QUFFSCwrQ0FBc0M7QUFDdEMsbURBQXFEO0FBQ3JELGlFQUFzRDtBQWF0RDs7R0FFRztBQUNILElBQUksWUFBb0YsQ0FBQztBQUV6Rjs7R0FFRztBQUNILElBQUksbUJBRVMsQ0FBQztBQUVkOztHQUVHO0FBQ0gsSUFBSSxrQkFBa0QsQ0FBQztBQUVoRCxLQUFLLFVBQVUsZUFBZSxDQUFDLElBQVksRUFBRSxNQUFjO0lBQ2hFLGlFQUFpRTtJQUNqRSxnREFBZ0Q7SUFDaEQsSUFBSSw2Q0FBNkMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7UUFDNUQsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUVELElBQUksQ0FBQyxZQUFZLEVBQUU7UUFDakIsMEZBQTBGO1FBQzFGLHlGQUF5RjtRQUN6RixzQ0FBc0M7UUFDdEMsTUFBTSxZQUFZLEdBQUcsTUFBTSxJQUFBLHdCQUFhLEVBQ3RDLDhCQUE4QixDQUMvQixDQUFDO1FBQ0YsWUFBWSxHQUFHLFlBQVksQ0FBQyxZQUFZLENBQUM7S0FDMUM7SUFFRCxPQUFPLFlBQVksQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDcEMsQ0FBQztBQWxCRCwwQ0FrQkM7QUFFRCxrREFBa0Q7QUFDbEQsa0JBQWUsSUFBQSxxQkFBTSxFQUEyQixHQUFHLEVBQUU7SUFDbkQsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUNoQyxPQUFPLEVBQUUsS0FBSztRQUNkLFVBQVUsRUFBRSxLQUFLO1FBQ2pCLE9BQU8sRUFBRSxLQUFLO1FBQ2QsZ0JBQWdCLEVBQUUsS0FBSztR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LENBQUMsTUFBTSxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDckM7WUFFRCxPQUFPLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLENBQUM7UUFDMUQsQ0FBQztRQUNELE1BQU0sQ0FBQyxhQUFhLEVBQUUsRUFBRSxhQUFhLEVBQUU7WUFDckMsT0FBTztnQkFDTCxHQUFHLGFBQWEsQ0FBQyxPQUFPO2dCQUN4QixnR0FBZ0c7Z0JBQ2hHLDBFQUEwRTtnQkFDMUUsOERBQThEO2dCQUM5RCxjQUFjLEVBQUUsYUFBYSxDQUFDLE9BQU8sQ0FBQyxjQUFjLElBQUssS0FBYTtnQkFDdEUsT0FBTyxFQUFFO29CQUNQLEdBQUcsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7b0JBQ3hDO3dCQUNFLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLE9BQU87d0JBQ3hDOzRCQUNFLEdBQUcsYUFBYTs0QkFDaEIsa0JBQWtCLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUU7Z0NBQ3BDLFFBQVEsSUFBSSxFQUFFO29DQUNaLEtBQUssT0FBTzt3Q0FDVixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO3dDQUN4QixNQUFNO29DQUNSLEtBQUssTUFBTSxDQUFDO29DQUNaLDhEQUE4RDtvQ0FDOUQsS0FBSyxTQUFTO3dDQUNaLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7d0NBQzFCLE1BQU07aUNBQ1Q7NEJBQ0gsQ0FBQzt5QkFDMEI7cUJBQzlCO2lCQUNGO2FBQ0YsQ0FBQztRQUNKLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHsgY3VzdG9tIH0gZnJvbSAnYmFiZWwtbG9hZGVyJztcbmltcG9ydCB7IGxvYWRFc21Nb2R1bGUgfSBmcm9tICcuLi8uLi91dGlscy9sb2FkLWVzbSc7XG5pbXBvcnQgeyBWRVJTSU9OIH0gZnJvbSAnLi4vLi4vdXRpbHMvcGFja2FnZS12ZXJzaW9uJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uUHJlc2V0T3B0aW9ucywgSTE4blBsdWdpbkNyZWF0b3JzIH0gZnJvbSAnLi9wcmVzZXRzL2FwcGxpY2F0aW9uJztcblxuaW50ZXJmYWNlIEFuZ3VsYXJDdXN0b21PcHRpb25zIGV4dGVuZHMgT21pdDxBcHBsaWNhdGlvblByZXNldE9wdGlvbnMsICdpbnN0cnVtZW50Q29kZSc+IHtcbiAgaW5zdHJ1bWVudENvZGU/OiB7XG4gICAgLyoqIG5vZGVfbW9kdWxlcyBhbmQgdGVzdCBmaWxlcyBhcmUgYWx3YXlzIGV4Y2x1ZGVkLiAqL1xuICAgIGV4Y2x1ZGVkUGF0aHM6IFNldDxzdHJpbmc+O1xuICAgIGluY2x1ZGVkQmFzZVBhdGg6IHN0cmluZztcbiAgfTtcbn1cblxuZXhwb3J0IHR5cGUgQW5ndWxhckJhYmVsTG9hZGVyT3B0aW9ucyA9IEFuZ3VsYXJDdXN0b21PcHRpb25zICYgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cbi8qKlxuICogQ2FjaGVkIGluc3RhbmNlIG9mIHRoZSBjb21waWxlci1jbGkgbGlua2VyJ3MgbmVlZHNMaW5raW5nIGZ1bmN0aW9uLlxuICovXG5sZXQgbmVlZHNMaW5raW5nOiB0eXBlb2YgaW1wb3J0KCdAYW5ndWxhci9jb21waWxlci1jbGkvbGlua2VyJykubmVlZHNMaW5raW5nIHwgdW5kZWZpbmVkO1xuXG4vKipcbiAqIENhY2hlZCBpbnN0YW5jZSBvZiB0aGUgY29tcGlsZXItY2xpIGxpbmtlcidzIEJhYmVsIHBsdWdpbiBmYWN0b3J5IGZ1bmN0aW9uLlxuICovXG5sZXQgbGlua2VyUGx1Z2luQ3JlYXRvcjpcbiAgfCB0eXBlb2YgaW1wb3J0KCdAYW5ndWxhci9jb21waWxlci1jbGkvbGlua2VyL2JhYmVsJykuY3JlYXRlRXMyMDE1TGlua2VyUGx1Z2luXG4gIHwgdW5kZWZpbmVkO1xuXG4vKipcbiAqIENhY2hlZCBpbnN0YW5jZSBvZiB0aGUgbG9jYWxpemUgQmFiZWwgcGx1Z2lucyBmYWN0b3J5IGZ1bmN0aW9ucy5cbiAqL1xubGV0IGkxOG5QbHVnaW5DcmVhdG9yczogSTE4blBsdWdpbkNyZWF0b3JzIHwgdW5kZWZpbmVkO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVxdWlyZXNMaW5raW5nKHBhdGg6IHN0cmluZywgc291cmNlOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgLy8gQGFuZ3VsYXIvY29yZSBhbmQgQGFuZ3VsYXIvY29tcGlsZXIgd2lsbCBjYXVzZSBmYWxzZSBwb3NpdGl2ZXNcbiAgLy8gQWxzbywgVHlwZVNjcmlwdCBmaWxlcyBkbyBub3QgcmVxdWlyZSBsaW5raW5nXG4gIGlmICgvW1xcXFwvXUBhbmd1bGFyW1xcXFwvXSg/OmNvbXBpbGVyfGNvcmUpfFxcLnRzeD8kLy50ZXN0KHBhdGgpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCFuZWVkc0xpbmtpbmcpIHtcbiAgICAvLyBMb2FkIEVTTSBgQGFuZ3VsYXIvY29tcGlsZXItY2xpL2xpbmtlcmAgdXNpbmcgdGhlIFR5cGVTY3JpcHQgZHluYW1pYyBpbXBvcnQgd29ya2Fyb3VuZC5cbiAgICAvLyBPbmNlIFR5cGVTY3JpcHQgcHJvdmlkZXMgc3VwcG9ydCBmb3Iga2VlcGluZyB0aGUgZHluYW1pYyBpbXBvcnQgdGhpcyB3b3JrYXJvdW5kIGNhbiBiZVxuICAgIC8vIGNoYW5nZWQgdG8gYSBkaXJlY3QgZHluYW1pYyBpbXBvcnQuXG4gICAgY29uc3QgbGlua2VyTW9kdWxlID0gYXdhaXQgbG9hZEVzbU1vZHVsZTx0eXBlb2YgaW1wb3J0KCdAYW5ndWxhci9jb21waWxlci1jbGkvbGlua2VyJyk+KFxuICAgICAgJ0Bhbmd1bGFyL2NvbXBpbGVyLWNsaS9saW5rZXInLFxuICAgICk7XG4gICAgbmVlZHNMaW5raW5nID0gbGlua2VyTW9kdWxlLm5lZWRzTGlua2luZztcbiAgfVxuXG4gIHJldHVybiBuZWVkc0xpbmtpbmcocGF0aCwgc291cmNlKTtcbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1saW5lcy1wZXItZnVuY3Rpb25cbmV4cG9ydCBkZWZhdWx0IGN1c3RvbTxBcHBsaWNhdGlvblByZXNldE9wdGlvbnM+KCgpID0+IHtcbiAgY29uc3QgYmFzZU9wdGlvbnMgPSBPYmplY3QuZnJlZXplKHtcbiAgICBiYWJlbHJjOiBmYWxzZSxcbiAgICBjb25maWdGaWxlOiBmYWxzZSxcbiAgICBjb21wYWN0OiBmYWxzZSxcbiAgICBjYWNoZUNvbXByZXNzaW9uOiBmYWxzZSxcbiAgICBzb3VyY2VUeXBlOiAndW5hbWJpZ3VvdXMnLFxuICAgIGlucHV0U291cmNlTWFwOiBmYWxzZSxcbiAgfSk7XG5cbiAgcmV0dXJuIHtcbiAgICBhc3luYyBjdXN0b21PcHRpb25zKG9wdGlvbnMsIHsgc291cmNlLCBtYXAgfSkge1xuICAgICAgY29uc3QgeyBpMThuLCBhb3QsIG9wdGltaXplLCBpbnN0cnVtZW50Q29kZSwgc3VwcG9ydGVkQnJvd3NlcnMsIC4uLnJhd09wdGlvbnMgfSA9XG4gICAgICAgIG9wdGlvbnMgYXMgQW5ndWxhckJhYmVsTG9hZGVyT3B0aW9ucztcblxuICAgICAgLy8gTXVzdCBwcm9jZXNzIGZpbGUgaWYgcGx1Z2lucyBhcmUgYWRkZWRcbiAgICAgIGxldCBzaG91bGRQcm9jZXNzID0gQXJyYXkuaXNBcnJheShyYXdPcHRpb25zLnBsdWdpbnMpICYmIHJhd09wdGlvbnMucGx1Z2lucy5sZW5ndGggPiAwO1xuXG4gICAgICBjb25zdCBjdXN0b21PcHRpb25zOiBBcHBsaWNhdGlvblByZXNldE9wdGlvbnMgPSB7XG4gICAgICAgIGZvcmNlQXN5bmNUcmFuc2Zvcm1hdGlvbjogZmFsc2UsXG4gICAgICAgIGFuZ3VsYXJMaW5rZXI6IHVuZGVmaW5lZCxcbiAgICAgICAgaTE4bjogdW5kZWZpbmVkLFxuICAgICAgICBpbnN0cnVtZW50Q29kZTogdW5kZWZpbmVkLFxuICAgICAgICBzdXBwb3J0ZWRCcm93c2VycyxcbiAgICAgIH07XG5cbiAgICAgIC8vIEFuYWx5emUgZmlsZSBmb3IgbGlua2luZ1xuICAgICAgaWYgKGF3YWl0IHJlcXVpcmVzTGlua2luZyh0aGlzLnJlc291cmNlUGF0aCwgc291cmNlKSkge1xuICAgICAgICAvLyBMb2FkIEVTTSBgQGFuZ3VsYXIvY29tcGlsZXItY2xpL2xpbmtlci9iYWJlbGAgdXNpbmcgdGhlIFR5cGVTY3JpcHQgZHluYW1pYyBpbXBvcnQgd29ya2Fyb3VuZC5cbiAgICAgICAgLy8gT25jZSBUeXBlU2NyaXB0IHByb3ZpZGVzIHN1cHBvcnQgZm9yIGtlZXBpbmcgdGhlIGR5bmFtaWMgaW1wb3J0IHRoaXMgd29ya2Fyb3VuZCBjYW4gYmVcbiAgICAgICAgLy8gY2hhbmdlZCB0byBhIGRpcmVjdCBkeW5hbWljIGltcG9ydC5cbiAgICAgICAgbGlua2VyUGx1Z2luQ3JlYXRvciA/Pz0gKFxuICAgICAgICAgIGF3YWl0IGxvYWRFc21Nb2R1bGU8dHlwZW9mIGltcG9ydCgnQGFuZ3VsYXIvY29tcGlsZXItY2xpL2xpbmtlci9iYWJlbCcpPihcbiAgICAgICAgICAgICdAYW5ndWxhci9jb21waWxlci1jbGkvbGlua2VyL2JhYmVsJyxcbiAgICAgICAgICApXG4gICAgICAgICkuY3JlYXRlRXMyMDE1TGlua2VyUGx1Z2luO1xuXG4gICAgICAgIGN1c3RvbU9wdGlvbnMuYW5ndWxhckxpbmtlciA9IHtcbiAgICAgICAgICBzaG91bGRMaW5rOiB0cnVlLFxuICAgICAgICAgIGppdE1vZGU6IGFvdCAhPT0gdHJ1ZSxcbiAgICAgICAgICBsaW5rZXJQbHVnaW5DcmVhdG9yLFxuICAgICAgICB9O1xuICAgICAgICBzaG91bGRQcm9jZXNzID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgLy8gQXBwbGljYXRpb24gY29kZSAoVFMgZmlsZXMpIHdpbGwgb25seSBjb250YWluIG5hdGl2ZSBhc3luYyBpZiB0YXJnZXQgaXMgRVMyMDE3Ky5cbiAgICAgIC8vIEhvd2V2ZXIsIHRoaXJkLXBhcnR5IGxpYnJhcmllcyBjYW4gcmVnYXJkbGVzcyBvZiB0aGUgdGFyZ2V0IG9wdGlvbi5cbiAgICAgIC8vIEFQRiBwYWNrYWdlcyB3aXRoIGNvZGUgaW4gW2ZdZXNtMjAxNSBkaXJlY3RvcmllcyBpcyBkb3dubGV2ZWxsZWQgdG8gRVMyMDE1IGFuZFxuICAgICAgLy8gd2lsbCBub3QgaGF2ZSBuYXRpdmUgYXN5bmMuXG4gICAgICBjdXN0b21PcHRpb25zLmZvcmNlQXN5bmNUcmFuc2Zvcm1hdGlvbiA9XG4gICAgICAgICEvW1xcXFwvXVtfZl0/ZXNtMjAxNVtcXFxcL10vLnRlc3QodGhpcy5yZXNvdXJjZVBhdGgpICYmIHNvdXJjZS5pbmNsdWRlcygnYXN5bmMnKTtcblxuICAgICAgc2hvdWxkUHJvY2VzcyB8fD1cbiAgICAgICAgY3VzdG9tT3B0aW9ucy5mb3JjZUFzeW5jVHJhbnNmb3JtYXRpb24gfHxcbiAgICAgICAgY3VzdG9tT3B0aW9ucy5zdXBwb3J0ZWRCcm93c2VycyAhPT0gdW5kZWZpbmVkIHx8XG4gICAgICAgIGZhbHNlO1xuXG4gICAgICAvLyBBbmFseXplIGZvciBpMThuIGlubGluaW5nXG4gICAgICBpZiAoXG4gICAgICAgIGkxOG4gJiZcbiAgICAgICAgIS9bXFxcXC9dQGFuZ3VsYXJbXFxcXC9dKD86Y29tcGlsZXJ8bG9jYWxpemUpLy50ZXN0KHRoaXMucmVzb3VyY2VQYXRoKSAmJlxuICAgICAgICBzb3VyY2UuaW5jbHVkZXMoJyRsb2NhbGl6ZScpXG4gICAgICApIHtcbiAgICAgICAgLy8gTG9hZCB0aGUgaTE4biBwbHVnaW4gY3JlYXRvcnMgZnJvbSB0aGUgbmV3IGBAYW5ndWxhci9sb2NhbGl6ZS90b29sc2AgZW50cnkgcG9pbnQuXG4gICAgICAgIC8vIFRoaXMgbWF5IGZhaWwgZHVyaW5nIHRoZSB0cmFuc2l0aW9uIHRvIEVTTSBkdWUgdG8gdGhlIGVudHJ5IHBvaW50IG5vdCB5ZXQgZXhpc3RpbmcuXG4gICAgICAgIC8vIER1cmluZyB0aGUgdHJhbnNpdGlvbiwgdGhpcyB3aWxsIGFsd2F5cyBhdHRlbXB0IHRvIGxvYWQgdGhlIGVudHJ5IHBvaW50IGZvciBlYWNoIGZpbGUuXG4gICAgICAgIC8vIFRoaXMgd2lsbCBvbmx5IG9jY3VyIGR1cmluZyBwcmVyZWxlYXNlIGFuZCB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgY29ycmVjdGVkIG9uY2UgdGhlIG5ld1xuICAgICAgICAvLyBlbnRyeSBwb2ludCBleGlzdHMuXG4gICAgICAgIGlmIChpMThuUGx1Z2luQ3JlYXRvcnMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIC8vIExvYWQgRVNNIGBAYW5ndWxhci9sb2NhbGl6ZS90b29sc2AgdXNpbmcgdGhlIFR5cGVTY3JpcHQgZHluYW1pYyBpbXBvcnQgd29ya2Fyb3VuZC5cbiAgICAgICAgICAvLyBPbmNlIFR5cGVTY3JpcHQgcHJvdmlkZXMgc3VwcG9ydCBmb3Iga2VlcGluZyB0aGUgZHluYW1pYyBpbXBvcnQgdGhpcyB3b3JrYXJvdW5kIGNhbiBiZVxuICAgICAgICAgIC8vIGNoYW5nZWQgdG8gYSBkaXJlY3QgZHluYW1pYyBpbXBvcnQuXG4gICAgICAgICAgaTE4blBsdWdpbkNyZWF0b3JzID0gYXdhaXQgbG9hZEVzbU1vZHVsZTxJMThuUGx1Z2luQ3JlYXRvcnM+KCdAYW5ndWxhci9sb2NhbGl6ZS90b29scycpO1xuICAgICAgICB9XG5cbiAgICAgICAgY3VzdG9tT3B0aW9ucy5pMThuID0ge1xuICAgICAgICAgIC4uLihpMThuIGFzIE5vbk51bGxhYmxlPEFwcGxpY2F0aW9uUHJlc2V0T3B0aW9uc1snaTE4biddPiksXG4gICAgICAgICAgcGx1Z2luQ3JlYXRvcnM6IGkxOG5QbHVnaW5DcmVhdG9ycyxcbiAgICAgICAgfTtcblxuICAgICAgICAvLyBBZGQgdHJhbnNsYXRpb24gZmlsZXMgYXMgZGVwZW5kZW5jaWVzIG9mIHRoZSBmaWxlIHRvIHN1cHBvcnQgcmVidWlsZHNcbiAgICAgICAgLy8gRXhjZXB0IGZvciBgQGFuZ3VsYXIvY29yZWAgd2hpY2ggbmVlZHMgbG9jYWxlIGluamVjdGlvbiBidXQgaGFzIG5vIHRyYW5zbGF0aW9uc1xuICAgICAgICBpZiAoXG4gICAgICAgICAgY3VzdG9tT3B0aW9ucy5pMThuLnRyYW5zbGF0aW9uRmlsZXMgJiZcbiAgICAgICAgICAhL1tcXFxcL11AYW5ndWxhcltcXFxcL11jb3JlLy50ZXN0KHRoaXMucmVzb3VyY2VQYXRoKVxuICAgICAgICApIHtcbiAgICAgICAgICBmb3IgKGNvbnN0IGZpbGUgb2YgY3VzdG9tT3B0aW9ucy5pMThuLnRyYW5zbGF0aW9uRmlsZXMpIHtcbiAgICAgICAgICAgIHRoaXMuYWRkRGVwZW5kZW5jeShmaWxlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBzaG91bGRQcm9jZXNzID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKG9wdGltaXplKSB7XG4gICAgICAgIGNvbnN0IEFuZ3VsYXJQYWNrYWdlID0gL1tcXFxcL11ub2RlX21vZHVsZXNbXFxcXC9dQGFuZ3VsYXJbXFxcXC9dLy50ZXN0KHRoaXMucmVzb3VyY2VQYXRoKTtcbiAgICAgICAgY29uc3Qgc2lkZUVmZmVjdEZyZWUgPSAhIXRoaXMuX21vZHVsZT8uZmFjdG9yeU1ldGE/LnNpZGVFZmZlY3RGcmVlO1xuICAgICAgICBjdXN0b21PcHRpb25zLm9wdGltaXplID0ge1xuICAgICAgICAgIC8vIEFuZ3VsYXIgcGFja2FnZXMgcHJvdmlkZSBhZGRpdGlvbmFsIHRlc3RlZCBzaWRlIGVmZmVjdHMgZ3VhcmFudGVlcyBhbmQgY2FuIHVzZVxuICAgICAgICAgIC8vIG90aGVyd2lzZSB1bnNhZmUgb3B0aW1pemF0aW9ucy4gKEBhbmd1bGFyL3BsYXRmb3JtLXNlcnZlci9pbml0KSBob3dldmVyIGhhcyBzaWRlLWVmZmVjdHMuXG4gICAgICAgICAgcHVyZVRvcExldmVsOiBBbmd1bGFyUGFja2FnZSAmJiBzaWRlRWZmZWN0RnJlZSxcbiAgICAgICAgICAvLyBKYXZhU2NyaXB0IG1vZHVsZXMgdGhhdCBhcmUgbWFya2VkIGFzIHNpZGUgZWZmZWN0IGZyZWUgYXJlIGNvbnNpZGVyZWQgdG8gaGF2ZVxuICAgICAgICAgIC8vIG5vIGRlY29yYXRvcnMgdGhhdCBjb250YWluIG5vbi1sb2NhbCBlZmZlY3RzLlxuICAgICAgICAgIHdyYXBEZWNvcmF0b3JzOiBzaWRlRWZmZWN0RnJlZSxcbiAgICAgICAgfTtcblxuICAgICAgICBzaG91bGRQcm9jZXNzID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKFxuICAgICAgICBpbnN0cnVtZW50Q29kZSAmJlxuICAgICAgICAhaW5zdHJ1bWVudENvZGUuZXhjbHVkZWRQYXRocy5oYXModGhpcy5yZXNvdXJjZVBhdGgpICYmXG4gICAgICAgICEvXFwuKGUyZXxzcGVjKVxcLnRzeD8kfFtcXFxcL11ub2RlX21vZHVsZXNbXFxcXC9dLy50ZXN0KHRoaXMucmVzb3VyY2VQYXRoKSAmJlxuICAgICAgICB0aGlzLnJlc291cmNlUGF0aC5zdGFydHNXaXRoKGluc3RydW1lbnRDb2RlLmluY2x1ZGVkQmFzZVBhdGgpXG4gICAgICApIHtcbiAgICAgICAgLy8gYGJhYmVsLXBsdWdpbi1pc3RhbmJ1bGAgaGFzIGl0J3Mgb3duIGluY2x1ZGVzIGJ1dCB3ZSBkbyB0aGUgYmVsb3cgc28gdGhhdCB3ZSBhdm9pZCBydW5uaW5nIHRoZSB0aGUgbG9hZGVyLlxuICAgICAgICBjdXN0b21PcHRpb25zLmluc3RydW1lbnRDb2RlID0ge1xuICAgICAgICAgIGluY2x1ZGVkQmFzZVBhdGg6IGluc3RydW1lbnRDb2RlLmluY2x1ZGVkQmFzZVBhdGgsXG4gICAgICAgICAgaW5wdXRTb3VyY2VNYXA6IG1hcCxcbiAgICAgICAgfTtcblxuICAgICAgICBzaG91bGRQcm9jZXNzID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgLy8gQWRkIHByb3ZpZGVkIGxvYWRlciBvcHRpb25zIHRvIGRlZmF1bHQgYmFzZSBvcHRpb25zXG4gICAgICBjb25zdCBsb2FkZXJPcHRpb25zOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHtcbiAgICAgICAgLi4uYmFzZU9wdGlvbnMsXG4gICAgICAgIC4uLnJhd09wdGlvbnMsXG4gICAgICAgIGNhY2hlSWRlbnRpZmllcjogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgIGJ1aWxkQW5ndWxhcjogVkVSU0lPTixcbiAgICAgICAgICBjdXN0b21PcHRpb25zLFxuICAgICAgICAgIGJhc2VPcHRpb25zLFxuICAgICAgICAgIHJhd09wdGlvbnMsXG4gICAgICAgIH0pLFxuICAgICAgfTtcblxuICAgICAgLy8gU2tpcCBiYWJlbCBwcm9jZXNzaW5nIGlmIG5vIGFjdGlvbnMgYXJlIG5lZWRlZFxuICAgICAgaWYgKCFzaG91bGRQcm9jZXNzKSB7XG4gICAgICAgIC8vIEZvcmNlIHRoZSBjdXJyZW50IGZpbGUgdG8gYmUgaWdub3JlZFxuICAgICAgICBsb2FkZXJPcHRpb25zLmlnbm9yZSA9IFsoKSA9PiB0cnVlXTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHsgY3VzdG9tOiBjdXN0b21PcHRpb25zLCBsb2FkZXI6IGxvYWRlck9wdGlvbnMgfTtcbiAgICB9LFxuICAgIGNvbmZpZyhjb25maWd1cmF0aW9uLCB7IGN1c3RvbU9wdGlvbnMgfSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uY29uZmlndXJhdGlvbi5vcHRpb25zLFxuICAgICAgICAvLyBVc2luZyBgZmFsc2VgIGRpc2FibGVzIGJhYmVsIGZyb20gYXR0ZW1wdGluZyB0byBsb2NhdGUgc291cmNlbWFwcyBvciBwcm9jZXNzIGFueSBpbmxpbmUgbWFwcy5cbiAgICAgICAgLy8gVGhlIGJhYmVsIHR5cGVzIGRvIG5vdCBpbmNsdWRlIHRoZSBmYWxzZSBvcHRpb24gZXZlbiB0aG91Z2ggaXQgaXMgdmFsaWRcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgICAgaW5wdXRTb3VyY2VNYXA6IGNvbmZpZ3VyYXRpb24ub3B0aW9ucy5pbnB1dFNvdXJjZU1hcCA/PyAoZmFsc2UgYXMgYW55KSxcbiAgICAgICAgcHJlc2V0czogW1xuICAgICAgICAgIC4uLihjb25maWd1cmF0aW9uLm9wdGlvbnMucHJlc2V0cyB8fCBbXSksXG4gICAgICAgICAgW1xuICAgICAgICAgICAgcmVxdWlyZSgnLi9wcmVzZXRzL2FwcGxpY2F0aW9uJykuZGVmYXVsdCxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgLi4uY3VzdG9tT3B0aW9ucyxcbiAgICAgICAgICAgICAgZGlhZ25vc3RpY1JlcG9ydGVyOiAodHlwZSwgbWVzc2FnZSkgPT4ge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICAgICAgICAgICAgY2FzZSAnZXJyb3InOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmVtaXRFcnJvcihtZXNzYWdlKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICBjYXNlICdpbmZvJzpcbiAgICAgICAgICAgICAgICAgIC8vIFdlYnBhY2sgZG9lcyBub3QgY3VycmVudGx5IGhhdmUgYW4gaW5mb3JtYXRpb25hbCBkaWFnbm9zdGljXG4gICAgICAgICAgICAgICAgICBjYXNlICd3YXJuaW5nJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbWl0V2FybmluZyhtZXNzYWdlKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSBhcyBBcHBsaWNhdGlvblByZXNldE9wdGlvbnMsXG4gICAgICAgICAgXSxcbiAgICAgICAgXSxcbiAgICAgIH07XG4gICAgfSxcbiAgfTtcbn0pO1xuIl19
169
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2VicGFjay1sb2FkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyX2RldmtpdC9idWlsZF9hbmd1bGFyL3NyYy90b29scy9iYWJlbC93ZWJwYWNrLWxvYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOztBQUVILCtDQUFzQztBQUN0QyxtREFBcUQ7QUFDckQsaUVBQXNEO0FBQ3RELHVEQUkrQjtBQVkvQjs7R0FFRztBQUNILElBQUksbUJBRVMsQ0FBQztBQUVkOztHQUVHO0FBQ0gsSUFBSSxrQkFBa0QsQ0FBQztBQUV2RCxrREFBa0Q7QUFDbEQsa0JBQWUsSUFBQSxxQkFBTSxFQUEyQixHQUFHLEVBQUU7SUFDbkQsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUNoQyxPQUFPLEVBQUUsS0FBSztRQUNkLFVBQVUsRUFBRSxLQUFLO1FBQ2pCLE9BQU8sRUFBRSxLQUFLO1FBQ2QsZ0JBQWdCLEVBQUUsS0FBSztRQUN2QixVQUFVLEVBQUUsYUFBYTtRQUN6QixjQUFjLEVBQUUsS0FBSztLQUN0QixDQUFDLENBQUM7SUFFSCxPQUFPO1FBQ0wsS0FBSyxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFO1lBQzFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsaUJBQWlCLEVBQUUsR0FBRyxVQUFVLEVBQUUsR0FDN0UsT0FBb0MsQ0FBQztZQUV2Qyx5Q0FBeUM7WUFDekMsSUFBSSxhQUFhLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksVUFBVSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBRXZGLE1BQU0sYUFBYSxHQUE2QjtnQkFDOUMsd0JBQXdCLEVBQUUsS0FBSztnQkFD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Q0FBQyx1QkFBdUIsQ0FBQyxDQUFDLE9BQU87d0JBQ3hDOzRCQUNFLEdBQUcsYUFBYTs0QkFDaEIsa0JBQWtCLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUU7Z0NBQ3BDLFFBQVEsSUFBSSxFQUFFO29DQUNaLEtBQUssT0FBTzt3Q0FDVixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO3dDQUN4QixNQUFNO29DQUNSLEtBQUssTUFBTSxDQUFDO29DQUNaLDhEQUE4RDtvQ0FDOUQsS0FBSyxTQUFTO3dDQUNaLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7d0NBQzFCLE1BQU07aUNBQ1Q7NEJBQ0gsQ0FBQzt5QkFDMEI7cUJBQzlCO2lCQUNGO2FBQ0YsQ0FBQztRQUNKLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHsgY3VzdG9tIH0gZnJvbSAnYmFiZWwtbG9hZGVyJztcbmltcG9ydCB7IGxvYWRFc21Nb2R1bGUgfSBmcm9tICcuLi8uLi91dGlscy9sb2FkLWVzbSc7XG5pbXBvcnQgeyBWRVJTSU9OIH0gZnJvbSAnLi4vLi4vdXRpbHMvcGFja2FnZS12ZXJzaW9uJztcbmltcG9ydCB7XG4gIEFwcGxpY2F0aW9uUHJlc2V0T3B0aW9ucyxcbiAgSTE4blBsdWdpbkNyZWF0b3JzLFxuICByZXF1aXJlc0xpbmtpbmcsXG59IGZyb20gJy4vcHJlc2V0cy9hcHBsaWNhdGlvbic7XG5cbmludGVyZmFjZSBBbmd1bGFyQ3VzdG9tT3B0aW9ucyBleHRlbmRzIE9taXQ8QXBwbGljYXRpb25QcmVzZXRPcHRpb25zLCAnaW5zdHJ1bWVudENvZGUnPiB7XG4gIGluc3RydW1lbnRDb2RlPzoge1xuICAgIC8qKiBub2RlX21vZHVsZXMgYW5kIHRlc3QgZmlsZXMgYXJlIGFsd2F5cyBleGNsdWRlZC4gKi9cbiAgICBleGNsdWRlZFBhdGhzOiBTZXQ8c3RyaW5nPjtcbiAgICBpbmNsdWRlZEJhc2VQYXRoOiBzdHJpbmc7XG4gIH07XG59XG5cbmV4cG9ydCB0eXBlIEFuZ3VsYXJCYWJlbExvYWRlck9wdGlvbnMgPSBBbmd1bGFyQ3VzdG9tT3B0aW9ucyAmIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuXG4vKipcbiAqIENhY2hlZCBpbnN0YW5jZSBvZiB0aGUgY29tcGlsZXItY2xpIGxpbmtlcidzIEJhYmVsIHBsdWdpbiBmYWN0b3J5IGZ1bmN0aW9uLlxuICovXG5sZXQgbGlua2VyUGx1Z2luQ3JlYXRvcjpcbiAgfCB0eXBlb2YgaW1wb3J0KCdAYW5ndWxhci9jb21waWxlci1jbGkvbGlua2VyL2JhYmVsJykuY3JlYXRlRXMyMDE1TGlua2VyUGx1Z2luXG4gIHwgdW5kZWZpbmVkO1xuXG4vKipcbiAqIENhY2hlZCBpbnN0YW5jZSBvZiB0aGUgbG9jYWxpemUgQmFiZWwgcGx1Z2lucyBmYWN0b3J5IGZ1bmN0aW9ucy5cbiAqL1xubGV0IGkxOG5QbHVnaW5DcmVhdG9yczogSTE4blBsdWdpbkNyZWF0b3JzIHwgdW5kZWZpbmVkO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LWxpbmVzLXBlci1mdW5jdGlvblxuZXhwb3J0IGRlZmF1bHQgY3VzdG9tPEFwcGxpY2F0aW9uUHJlc2V0T3B0aW9ucz4oKCkgPT4ge1xuICBjb25zdCBiYXNlT3B0aW9ucyA9IE9iamVjdC5mcmVlemUoe1xuICAgIGJhYmVscmM6IGZhbHNlLFxuICAgIGNvbmZpZ0ZpbGU6IGZhbHNlLFxuICAgIGNvbXBhY3Q6IGZhbHNlLFxuICAgIGNhY2hlQ29tcHJlc3Npb246IGZhbHNlLFxuICAgIHNvdXJjZVR5cGU6ICd1bmFtYmlndW91cycsXG4gICAgaW5wdXRTb3VyY2VNYXA6IGZhbHNlLFxuICB9KTtcblxuICByZXR1cm4ge1xuICAgIGFzeW5jIGN1c3RvbU9wdGlvbnMob3B0aW9ucywgeyBzb3VyY2UsIG1hcCB9KSB7XG4gICAgICBjb25zdCB7IGkxOG4sIGFvdCwgb3B0aW1pemUsIGluc3RydW1lbnRDb2RlLCBzdXBwb3J0ZWRCcm93c2VycywgLi4ucmF3T3B0aW9ucyB9ID1cbiAgICAgICAgb3B0aW9ucyBhcyBBbmd1bGFyQmFiZWxMb2FkZXJPcHRpb25zO1xuXG4gICAgICAvLyBNdXN0IHByb2Nlc3MgZmlsZSBpZiBwbHVnaW5zIGFyZSBhZGRlZFxuICAgICAgbGV0IHNob3VsZFByb2Nlc3MgPSBBcnJheS5pc0FycmF5KHJhd09wdGlvbnMucGx1Z2lucykgJiYgcmF3T3B0aW9ucy5wbHVnaW5zLmxlbmd0aCA+IDA7XG5cbiAgICAgIGNvbnN0IGN1c3RvbU9wdGlvbnM6IEFwcGxpY2F0aW9uUHJlc2V0T3B0aW9ucyA9IHtcbiAgICAgICAgZm9yY2VBc3luY1RyYW5zZm9ybWF0aW9uOiBmYWxzZSxcbiAgICAgICAgYW5ndWxhckxpbmtlcjogdW5kZWZpbmVkLFxuICAgICAgICBpMThuOiB1bmRlZmluZWQsXG4gICAgICAgIGluc3RydW1lbnRDb2RlOiB1bmRlZmluZWQsXG4gICAgICAgIHN1cHBvcnRlZEJyb3dzZXJzLFxuICAgICAgfTtcblxuICAgICAgLy8gQW5hbHl6ZSBmaWxlIGZvciBsaW5raW5nXG4gICAgICBpZiAoYXdhaXQgcmVxdWlyZXNMaW5raW5nKHRoaXMucmVzb3VyY2VQYXRoLCBzb3VyY2UpKSB7XG4gICAgICAgIC8vIExvYWQgRVNNIGBAYW5ndWxhci9jb21waWxlci1jbGkvbGlua2VyL2JhYmVsYCB1c2luZyB0aGUgVHlwZVNjcmlwdCBkeW5hbWljIGltcG9ydCB3b3JrYXJvdW5kLlxuICAgICAgICAvLyBPbmNlIFR5cGVTY3JpcHQgcHJvdmlkZXMgc3VwcG9ydCBmb3Iga2VlcGluZyB0aGUgZHluYW1pYyBpbXBvcnQgdGhpcyB3b3JrYXJvdW5kIGNhbiBiZVxuICAgICAgICAvLyBjaGFuZ2VkIHRvIGEgZGlyZWN0IGR5bmFtaWMgaW1wb3J0LlxuICAgICAgICBsaW5rZXJQbHVnaW5DcmVhdG9yID8/PSAoXG4gICAgICAgICAgYXdhaXQgbG9hZEVzbU1vZHVsZTx0eXBlb2YgaW1wb3J0KCdAYW5ndWxhci9jb21waWxlci1jbGkvbGlua2VyL2JhYmVsJyk+KFxuICAgICAgICAgICAgJ0Bhbmd1bGFyL2NvbXBpbGVyLWNsaS9saW5rZXIvYmFiZWwnLFxuICAgICAgICAgIClcbiAgICAgICAgKS5jcmVhdGVFczIwMTVMaW5rZXJQbHVnaW47XG5cbiAgICAgICAgY3VzdG9tT3B0aW9ucy5hbmd1bGFyTGlua2VyID0ge1xuICAgICAgICAgIHNob3VsZExpbms6IHRydWUsXG4gICAgICAgICAgaml0TW9kZTogYW90ICE9PSB0cnVlLFxuICAgICAgICAgIGxpbmtlclBsdWdpbkNyZWF0b3IsXG4gICAgICAgIH07XG4gICAgICAgIHNob3VsZFByb2Nlc3MgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICAvLyBBcHBsaWNhdGlvbiBjb2RlIChUUyBmaWxlcykgd2lsbCBvbmx5IGNvbnRhaW4gbmF0aXZlIGFzeW5jIGlmIHRhcmdldCBpcyBFUzIwMTcrLlxuICAgICAgLy8gSG93ZXZlciwgdGhpcmQtcGFydHkgbGlicmFyaWVzIGNhbiByZWdhcmRsZXNzIG9mIHRoZSB0YXJnZXQgb3B0aW9uLlxuICAgICAgLy8gQVBGIHBhY2thZ2VzIHdpdGggY29kZSBpbiBbZl1lc20yMDE1IGRpcmVjdG9yaWVzIGlzIGRvd25sZXZlbGxlZCB0byBFUzIwMTUgYW5kXG4gICAgICAvLyB3aWxsIG5vdCBoYXZlIG5hdGl2ZSBhc3luYy5cbiAgICAgIGN1c3RvbU9wdGlvbnMuZm9yY2VBc3luY1RyYW5zZm9ybWF0aW9uID1cbiAgICAgICAgIS9bXFxcXC9dW19mXT9lc20yMDE1W1xcXFwvXS8udGVzdCh0aGlzLnJlc291cmNlUGF0aCkgJiYgc291cmNlLmluY2x1ZGVzKCdhc3luYycpO1xuXG4gICAgICBzaG91bGRQcm9jZXNzIHx8PVxuICAgICAgICBjdXN0b21PcHRpb25zLmZvcmNlQXN5bmNUcmFuc2Zvcm1hdGlvbiB8fFxuICAgICAgICBjdXN0b21PcHRpb25zLnN1cHBvcnRlZEJyb3dzZXJzICE9PSB1bmRlZmluZWQgfHxcbiAgICAgICAgZmFsc2U7XG5cbiAgICAgIC8vIEFuYWx5emUgZm9yIGkxOG4gaW5saW5pbmdcbiAgICAgIGlmIChcbiAgICAgICAgaTE4biAmJlxuICAgICAgICAhL1tcXFxcL11AYW5ndWxhcltcXFxcL10oPzpjb21waWxlcnxsb2NhbGl6ZSkvLnRlc3QodGhpcy5yZXNvdXJjZVBhdGgpICYmXG4gICAgICAgIHNvdXJjZS5pbmNsdWRlcygnJGxvY2FsaXplJylcbiAgICAgICkge1xuICAgICAgICAvLyBMb2FkIHRoZSBpMThuIHBsdWdpbiBjcmVhdG9ycyBmcm9tIHRoZSBuZXcgYEBhbmd1bGFyL2xvY2FsaXplL3Rvb2xzYCBlbnRyeSBwb2ludC5cbiAgICAgICAgLy8gVGhpcyBtYXkgZmFpbCBkdXJpbmcgdGhlIHRyYW5zaXRpb24gdG8gRVNNIGR1ZSB0byB0aGUgZW50cnkgcG9pbnQgbm90IHlldCBleGlzdGluZy5cbiAgICAgICAgLy8gRHVyaW5nIHRoZSB0cmFuc2l0aW9uLCB0aGlzIHdpbGwgYWx3YXlzIGF0dGVtcHQgdG8gbG9hZCB0aGUgZW50cnkgcG9pbnQgZm9yIGVhY2ggZmlsZS5cbiAgICAgICAgLy8gVGhpcyB3aWxsIG9ubHkgb2NjdXIgZHVyaW5nIHByZXJlbGVhc2UgYW5kIHdpbGwgYmUgYXV0b21hdGljYWxseSBjb3JyZWN0ZWQgb25jZSB0aGUgbmV3XG4gICAgICAgIC8vIGVudHJ5IHBvaW50IGV4aXN0cy5cbiAgICAgICAgaWYgKGkxOG5QbHVnaW5DcmVhdG9ycyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgLy8gTG9hZCBFU00gYEBhbmd1bGFyL2xvY2FsaXplL3Rvb2xzYCB1c2luZyB0aGUgVHlwZVNjcmlwdCBkeW5hbWljIGltcG9ydCB3b3JrYXJvdW5kLlxuICAgICAgICAgIC8vIE9uY2UgVHlwZVNjcmlwdCBwcm92aWRlcyBzdXBwb3J0IGZvciBrZWVwaW5nIHRoZSBkeW5hbWljIGltcG9ydCB0aGlzIHdvcmthcm91bmQgY2FuIGJlXG4gICAgICAgICAgLy8gY2hhbmdlZCB0byBhIGRpcmVjdCBkeW5hbWljIGltcG9ydC5cbiAgICAgICAgICBpMThuUGx1Z2luQ3JlYXRvcnMgPSBhd2FpdCBsb2FkRXNtTW9kdWxlPEkxOG5QbHVnaW5DcmVhdG9ycz4oJ0Bhbmd1bGFyL2xvY2FsaXplL3Rvb2xzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBjdXN0b21PcHRpb25zLmkxOG4gPSB7XG4gICAgICAgICAgLi4uKGkxOG4gYXMgTm9uTnVsbGFibGU8QXBwbGljYXRpb25QcmVzZXRPcHRpb25zWydpMThuJ10+KSxcbiAgICAgICAgICBwbHVnaW5DcmVhdG9yczogaTE4blBsdWdpbkNyZWF0b3JzLFxuICAgICAgICB9O1xuXG4gICAgICAgIC8vIEFkZCB0cmFuc2xhdGlvbiBmaWxlcyBhcyBkZXBlbmRlbmNpZXMgb2YgdGhlIGZpbGUgdG8gc3VwcG9ydCByZWJ1aWxkc1xuICAgICAgICAvLyBFeGNlcHQgZm9yIGBAYW5ndWxhci9jb3JlYCB3aGljaCBuZWVkcyBsb2NhbGUgaW5qZWN0aW9uIGJ1dCBoYXMgbm8gdHJhbnNsYXRpb25zXG4gICAgICAgIGlmIChcbiAgICAgICAgICBjdXN0b21PcHRpb25zLmkxOG4udHJhbnNsYXRpb25GaWxlcyAmJlxuICAgICAgICAgICEvW1xcXFwvXUBhbmd1bGFyW1xcXFwvXWNvcmUvLnRlc3QodGhpcy5yZXNvdXJjZVBhdGgpXG4gICAgICAgICkge1xuICAgICAgICAgIGZvciAoY29uc3QgZmlsZSBvZiBjdXN0b21PcHRpb25zLmkxOG4udHJhbnNsYXRpb25GaWxlcykge1xuICAgICAgICAgICAgdGhpcy5hZGREZXBlbmRlbmN5KGZpbGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHNob3VsZFByb2Nlc3MgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAob3B0aW1pemUpIHtcbiAgICAgICAgY29uc3QgQW5ndWxhclBhY2thZ2UgPSAvW1xcXFwvXW5vZGVfbW9kdWxlc1tcXFxcL11AYW5ndWxhcltcXFxcL10vLnRlc3QodGhpcy5yZXNvdXJjZVBhdGgpO1xuICAgICAgICBjb25zdCBzaWRlRWZmZWN0RnJlZSA9ICEhdGhpcy5fbW9kdWxlPy5mYWN0b3J5TWV0YT8uc2lkZUVmZmVjdEZyZWU7XG4gICAgICAgIGN1c3RvbU9wdGlvbnMub3B0aW1pemUgPSB7XG4gICAgICAgICAgLy8gQW5ndWxhciBwYWNrYWdlcyBwcm92aWRlIGFkZGl0aW9uYWwgdGVzdGVkIHNpZGUgZWZmZWN0cyBndWFyYW50ZWVzIGFuZCBjYW4gdXNlXG4gICAgICAgICAgLy8gb3RoZXJ3aXNlIHVuc2FmZSBvcHRpbWl6YXRpb25zLiAoQGFuZ3VsYXIvcGxhdGZvcm0tc2VydmVyL2luaXQpIGhvd2V2ZXIgaGFzIHNpZGUtZWZmZWN0cy5cbiAgICAgICAgICBwdXJlVG9wTGV2ZWw6IEFuZ3VsYXJQYWNrYWdlICYmIHNpZGVFZmZlY3RGcmVlLFxuICAgICAgICAgIC8vIEphdmFTY3JpcHQgbW9kdWxlcyB0aGF0IGFyZSBtYXJrZWQgYXMgc2lkZSBlZmZlY3QgZnJlZSBhcmUgY29uc2lkZXJlZCB0byBoYXZlXG4gICAgICAgICAgLy8gbm8gZGVjb3JhdG9ycyB0aGF0IGNvbnRhaW4gbm9uLWxvY2FsIGVmZmVjdHMuXG4gICAgICAgICAgd3JhcERlY29yYXRvcnM6IHNpZGVFZmZlY3RGcmVlLFxuICAgICAgICB9O1xuXG4gICAgICAgIHNob3VsZFByb2Nlc3MgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAoXG4gICAgICAgIGluc3RydW1lbnRDb2RlICYmXG4gICAgICAgICFpbnN0cnVtZW50Q29kZS5leGNsdWRlZFBhdGhzLmhhcyh0aGlzLnJlc291cmNlUGF0aCkgJiZcbiAgICAgICAgIS9cXC4oZTJlfHNwZWMpXFwudHN4PyR8W1xcXFwvXW5vZGVfbW9kdWxlc1tcXFxcL10vLnRlc3QodGhpcy5yZXNvdXJjZVBhdGgpICYmXG4gICAgICAgIHRoaXMucmVzb3VyY2VQYXRoLnN0YXJ0c1dpdGgoaW5zdHJ1bWVudENvZGUuaW5jbHVkZWRCYXNlUGF0aClcbiAgICAgICkge1xuICAgICAgICAvLyBgYmFiZWwtcGx1Z2luLWlzdGFuYnVsYCBoYXMgaXQncyBvd24gaW5jbHVkZXMgYnV0IHdlIGRvIHRoZSBiZWxvdyBzbyB0aGF0IHdlIGF2b2lkIHJ1bm5pbmcgdGhlIHRoZSBsb2FkZXIuXG4gICAgICAgIGN1c3RvbU9wdGlvbnMuaW5zdHJ1bWVudENvZGUgPSB7XG4gICAgICAgICAgaW5jbHVkZWRCYXNlUGF0aDogaW5zdHJ1bWVudENvZGUuaW5jbHVkZWRCYXNlUGF0aCxcbiAgICAgICAgICBpbnB1dFNvdXJjZU1hcDogbWFwLFxuICAgICAgICB9O1xuXG4gICAgICAgIHNob3VsZFByb2Nlc3MgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICAvLyBBZGQgcHJvdmlkZWQgbG9hZGVyIG9wdGlvbnMgdG8gZGVmYXVsdCBiYXNlIG9wdGlvbnNcbiAgICAgIGNvbnN0IGxvYWRlck9wdGlvbnM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge1xuICAgICAgICAuLi5iYXNlT3B0aW9ucyxcbiAgICAgICAgLi4ucmF3T3B0aW9ucyxcbiAgICAgICAgY2FjaGVJZGVudGlmaWVyOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgYnVpbGRBbmd1bGFyOiBWRVJTSU9OLFxuICAgICAgICAgIGN1c3RvbU9wdGlvbnMsXG4gICAgICAgICAgYmFzZU9wdGlvbnMsXG4gICAgICAgICAgcmF3T3B0aW9ucyxcbiAgICAgICAgfSksXG4gICAgICB9O1xuXG4gICAgICAvLyBTa2lwIGJhYmVsIHByb2Nlc3NpbmcgaWYgbm8gYWN0aW9ucyBhcmUgbmVlZGVkXG4gICAgICBpZiAoIXNob3VsZFByb2Nlc3MpIHtcbiAgICAgICAgLy8gRm9yY2UgdGhlIGN1cnJlbnQgZmlsZSB0byBiZSBpZ25vcmVkXG4gICAgICAgIGxvYWRlck9wdGlvbnMuaWdub3JlID0gWygpID0+IHRydWVdO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4geyBjdXN0b206IGN1c3RvbU9wdGlvbnMsIGxvYWRlcjogbG9hZGVyT3B0aW9ucyB9O1xuICAgIH0sXG4gICAgY29uZmlnKGNvbmZpZ3VyYXRpb24sIHsgY3VzdG9tT3B0aW9ucyB9KSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5jb25maWd1cmF0aW9uLm9wdGlvbnMsXG4gICAgICAgIC8vIFVzaW5nIGBmYWxzZWAgZGlzYWJsZXMgYmFiZWwgZnJvbSBhdHRlbXB0aW5nIHRvIGxvY2F0ZSBzb3VyY2VtYXBzIG9yIHByb2Nlc3MgYW55IGlubGluZSBtYXBzLlxuICAgICAgICAvLyBUaGUgYmFiZWwgdHlwZXMgZG8gbm90IGluY2x1ZGUgdGhlIGZhbHNlIG9wdGlvbiBldmVuIHRob3VnaCBpdCBpcyB2YWxpZFxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICBpbnB1dFNvdXJjZU1hcDogY29uZmlndXJhdGlvbi5vcHRpb25zLmlucHV0U291cmNlTWFwID8/IChmYWxzZSBhcyBhbnkpLFxuICAgICAgICBwcmVzZXRzOiBbXG4gICAgICAgICAgLi4uKGNvbmZpZ3VyYXRpb24ub3B0aW9ucy5wcmVzZXRzIHx8IFtdKSxcbiAgICAgICAgICBbXG4gICAgICAgICAgICByZXF1aXJlKCcuL3ByZXNldHMvYXBwbGljYXRpb24nKS5kZWZhdWx0LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAuLi5jdXN0b21PcHRpb25zLFxuICAgICAgICAgICAgICBkaWFnbm9zdGljUmVwb3J0ZXI6ICh0eXBlLCBtZXNzYWdlKSA9PiB7XG4gICAgICAgICAgICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgICAgICAgICBjYXNlICdlcnJvcic6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZW1pdEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgIGNhc2UgJ2luZm8nOlxuICAgICAgICAgICAgICAgICAgLy8gV2VicGFjayBkb2VzIG5vdCBjdXJyZW50bHkgaGF2ZSBhbiBpbmZvcm1hdGlvbmFsIGRpYWdub3N0aWNcbiAgICAgICAgICAgICAgICAgIGNhc2UgJ3dhcm5pbmcnOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmVtaXRXYXJuaW5nKG1lc3NhZ2UpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9IGFzIEFwcGxpY2F0aW9uUHJlc2V0T3B0aW9ucyxcbiAgICAgICAgICBdLFxuICAgICAgICBdLFxuICAgICAgfTtcbiAgICB9LFxuICB9O1xufSk7XG4iXX0=
@@ -48,7 +48,10 @@ function createAngularCompilerHost(compilerOptions, hostOptions) {
48
48
  };
49
49
  // Augment TypeScript Host for file replacements option
50
50
  if (hostOptions.fileReplacements) {
51
- augmentHostWithReplacements(host, hostOptions.fileReplacements);
51
+ // Provide a resolution cache since overriding resolution prevents automatic creation
52
+ const resolutionCache = typescript_1.default.createModuleResolutionCache(host.getCurrentDirectory(), host.getCanonicalFileName.bind(host), compilerOptions);
53
+ host.getModuleResolutionCache = () => resolutionCache;
54
+ augmentHostWithReplacements(host, hostOptions.fileReplacements, resolutionCache);
52
55
  }
53
56
  // Augment TypeScript Host with source file caching if provided
54
57
  if (hostOptions.sourceFileCache) {
@@ -57,4 +60,4 @@ function createAngularCompilerHost(compilerOptions, hostOptions) {
57
60
  return host;
58
61
  }
59
62
  exports.createAngularCompilerHost = createAngularCompilerHost;
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1ob3N0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhcl9kZXZraXQvYnVpbGRfYW5ndWxhci9zcmMvdG9vbHMvZXNidWlsZC9hbmd1bGFyL2FuZ3VsYXItaG9zdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOzs7Ozs7QUFHSCw0REFBNEI7QUFnQjVCLHVEQUF1RDtBQUN2RCwrRkFBK0Y7QUFDL0YsTUFBTSxFQUNKLHNCQUFzQixFQUN0QiwyQkFBMkIsRUFDM0IsNEJBQTRCLEdBQzdCLEdBQUcsT0FBTyxDQUFDLCtCQUErQixDQUFDLENBQUM7QUFFN0M7Ozs7O0dBS0c7QUFDSCxTQUFnQix3QkFBd0IsQ0FBQyxPQUFtQjtJQUMxRCw0QkFBNEIsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUN4QyxDQUFDO0FBRkQsNERBRUM7QUFFRCxTQUFnQix5QkFBeUIsQ0FDdkMsZUFBdUMsRUFDdkMsV0FBK0I7SUFFL0Isa0NBQWtDO0lBQ2xDLE1BQU0sSUFBSSxHQUF3QixvQkFBRSxDQUFDLDZCQUE2QixDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBRXBGLHVGQUF1RjtJQUN2Rix1RkFBdUY7SUFDdkYsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLFdBQVcsUUFBUTtRQUMxQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3ZDLENBQUMsQ0FBQztJQUVGLDhDQUE4QztJQUM5QyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxXQUFXLElBQUksRUFBRSxPQUFPO1FBQ3BELGlEQUFpRDtRQUNqRCxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssT0FBTyxFQUFFO1lBQzVCLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxNQUFNLE1BQU0sR0FBRyxNQUFNLFdBQVcsQ0FBQyxtQkFBbUIsQ0FDbEQsSUFBSSxFQUNKLE9BQU8sQ0FBQyxjQUFjLEVBQ3RCLE9BQU8sQ0FBQyxZQUFZLElBQUksU0FBUyxDQUNsQyxDQUFDO1FBRUYsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDN0MsQ0FBQyxDQUFDO0lBRUYsNEVBQTRFO0lBQzVFLElBQUksQ0FBQyx3QkFBd0IsR0FBRztRQUM5QixPQUFPLFdBQVcsQ0FBQyxhQUFhLENBQUM7SUFDbkMsQ0FBQyxDQUFDO0lBRUYsdURBQXVEO0lBQ3ZELElBQUksV0FBVyxDQUFDLGdCQUFnQixFQUFFO1FBQ2hDLDJCQUEyQixDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztLQUNqRTtJQUVELCtEQUErRDtJQUMvRCxJQUFJLFdBQVcsQ0FBQyxlQUFlLEVBQUU7UUFDL0Isc0JBQXNCLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxlQUFlLENBQUMsQ0FBQztLQUMzRDtJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQTdDRCw4REE2Q0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHR5cGUgbmcgZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXItY2xpJztcbmltcG9ydCB0cyBmcm9tICd0eXBlc2NyaXB0JztcblxuZXhwb3J0IHR5cGUgQW5ndWxhckNvbXBpbGVyT3B0aW9ucyA9IG5nLkNvbXBpbGVyT3B0aW9ucztcbmV4cG9ydCB0eXBlIEFuZ3VsYXJDb21waWxlckhvc3QgPSBuZy5Db21waWxlckhvc3Q7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQW5ndWxhckhvc3RPcHRpb25zIHtcbiAgZmlsZVJlcGxhY2VtZW50cz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIHNvdXJjZUZpbGVDYWNoZT86IE1hcDxzdHJpbmcsIHRzLlNvdXJjZUZpbGU+O1xuICBtb2RpZmllZEZpbGVzPzogU2V0PHN0cmluZz47XG4gIHRyYW5zZm9ybVN0eWxlc2hlZXQoXG4gICAgZGF0YTogc3RyaW5nLFxuICAgIGNvbnRhaW5pbmdGaWxlOiBzdHJpbmcsXG4gICAgc3R5bGVzaGVldEZpbGU/OiBzdHJpbmcsXG4gICk6IFByb21pc2U8c3RyaW5nIHwgbnVsbD47XG59XG5cbi8vIFRlbXBvcmFyeSBkZWVwIGltcG9ydCBmb3IgaG9zdCBhdWdtZW50YXRpb24gc3VwcG9ydC5cbi8vIFRPRE86IE1vdmUgdGhlc2UgdG8gYSBwcml2YXRlIGV4cG9ydHMgbG9jYXRpb24gb3IgbW92ZSB0aGUgaW1wbGVtZW50YXRpb24gaW50byB0aGlzIHBhY2thZ2UuXG5jb25zdCB7XG4gIGF1Z21lbnRIb3N0V2l0aENhY2hpbmcsXG4gIGF1Z21lbnRIb3N0V2l0aFJlcGxhY2VtZW50cyxcbiAgYXVnbWVudFByb2dyYW1XaXRoVmVyc2lvbmluZyxcbn0gPSByZXF1aXJlKCdAbmd0b29scy93ZWJwYWNrL3NyYy9pdnkvaG9zdCcpO1xuXG4vKipcbiAqIFBhdGNoZXMgaW4tcGxhY2UgdGhlIGBnZXRTb3VyY2VGaWxlc2AgZnVuY3Rpb24gb24gYW4gaW5zdGFuY2Ugb2YgYSBUeXBlU2NyaXB0XG4gKiBgUHJvZ3JhbWAgdG8gZW5zdXJlIHRoYXQgYWxsIHJldHVybmVkIFNvdXJjZUZpbGUgaW5zdGFuY2VzIGhhdmUgYSBgdmVyc2lvbmBcbiAqIGZpZWxkLiBUaGUgYHZlcnNpb25gIGZpZWxkIGlzIHJlcXVpcmVkIHdoZW4gdXNlZCB3aXRoIGEgVHlwZVNjcmlwdCBCdWlsZGVyUHJvZ3JhbS5cbiAqIEBwYXJhbSBwcm9ncmFtIFRoZSBUeXBlU2NyaXB0IFByb2dyYW0gaW5zdGFuY2UgdG8gcGF0Y2guXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbnN1cmVTb3VyY2VGaWxlVmVyc2lvbnMocHJvZ3JhbTogdHMuUHJvZ3JhbSk6IHZvaWQge1xuICBhdWdtZW50UHJvZ3JhbVdpdGhWZXJzaW9uaW5nKHByb2dyYW0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQW5ndWxhckNvbXBpbGVySG9zdChcbiAgY29tcGlsZXJPcHRpb25zOiBBbmd1bGFyQ29tcGlsZXJPcHRpb25zLFxuICBob3N0T3B0aW9uczogQW5ndWxhckhvc3RPcHRpb25zLFxuKTogQW5ndWxhckNvbXBpbGVySG9zdCB7XG4gIC8vIENyZWF0ZSBUeXBlU2NyaXB0IGNvbXBpbGVyIGhvc3RcbiAgY29uc3QgaG9zdDogQW5ndWxhckNvbXBpbGVySG9zdCA9IHRzLmNyZWF0ZUluY3JlbWVudGFsQ29tcGlsZXJIb3N0KGNvbXBpbGVyT3B0aW9ucyk7XG5cbiAgLy8gVGhlIEFPVCBjb21waWxlciBjdXJyZW50bHkgcmVxdWlyZXMgdGhpcyBob29rIHRvIGFsbG93IGZvciBhIHRyYW5zZm9ybVJlc291cmNlIGhvb2suXG4gIC8vIE9uY2UgdGhlIEFPVCBjb21waWxlciBhbGxvd3Mgb25seSBhIHRyYW5zZm9ybVJlc291cmNlIGhvb2ssIHRoaXMgY2FuIGJlIHJlZXZhbHVhdGVkLlxuICBob3N0LnJlYWRSZXNvdXJjZSA9IGFzeW5jIGZ1bmN0aW9uIChmaWxlbmFtZSkge1xuICAgIHJldHVybiB0aGlzLnJlYWRGaWxlKGZpbGVuYW1lKSA/PyAnJztcbiAgfTtcblxuICAvLyBBZGQgYW4gQU9UIGNvbXBpbGVyIHJlc291cmNlIHRyYW5zZm9ybSBob29rXG4gIGhvc3QudHJhbnNmb3JtUmVzb3VyY2UgPSBhc3luYyBmdW5jdGlvbiAoZGF0YSwgY29udGV4dCkge1xuICAgIC8vIE9ubHkgc3R5bGUgcmVzb3VyY2VzIGFyZSB0cmFuc2Zvcm1lZCBjdXJyZW50bHlcbiAgICBpZiAoY29udGV4dC50eXBlICE9PSAnc3R5bGUnKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBob3N0T3B0aW9ucy50cmFuc2Zvcm1TdHlsZXNoZWV0KFxuICAgICAgZGF0YSxcbiAgICAgIGNvbnRleHQuY29udGFpbmluZ0ZpbGUsXG4gICAgICBjb250ZXh0LnJlc291cmNlRmlsZSA/PyB1bmRlZmluZWQsXG4gICAgKTtcblxuICAgIHJldHVybiByZXN1bHQgPyB7IGNvbnRlbnQ6IHJlc3VsdCB9IDogbnVsbDtcbiAgfTtcblxuICAvLyBBbGxvdyB0aGUgQU9UIGNvbXBpbGVyIHRvIHJlcXVlc3QgdGhlIHNldCBvZiBjaGFuZ2VkIHRlbXBsYXRlcyBhbmQgc3R5bGVzXG4gIGhvc3QuZ2V0TW9kaWZpZWRSZXNvdXJjZUZpbGVzID0gZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBob3N0T3B0aW9ucy5tb2RpZmllZEZpbGVzO1xuICB9O1xuXG4gIC8vIEF1Z21lbnQgVHlwZVNjcmlwdCBIb3N0IGZvciBmaWxlIHJlcGxhY2VtZW50cyBvcHRpb25cbiAgaWYgKGhvc3RPcHRpb25zLmZpbGVSZXBsYWNlbWVudHMpIHtcbiAgICBhdWdtZW50SG9zdFdpdGhSZXBsYWNlbWVudHMoaG9zdCwgaG9zdE9wdGlvbnMuZmlsZVJlcGxhY2VtZW50cyk7XG4gIH1cblxuICAvLyBBdWdtZW50IFR5cGVTY3JpcHQgSG9zdCB3aXRoIHNvdXJjZSBmaWxlIGNhY2hpbmcgaWYgcHJvdmlkZWRcbiAgaWYgKGhvc3RPcHRpb25zLnNvdXJjZUZpbGVDYWNoZSkge1xuICAgIGF1Z21lbnRIb3N0V2l0aENhY2hpbmcoaG9zdCwgaG9zdE9wdGlvbnMuc291cmNlRmlsZUNhY2hlKTtcbiAgfVxuXG4gIHJldHVybiBob3N0O1xufVxuIl19
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1ob3N0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhcl9kZXZraXQvYnVpbGRfYW5ndWxhci9zcmMvdG9vbHMvZXNidWlsZC9hbmd1bGFyL2FuZ3VsYXItaG9zdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOzs7Ozs7QUFHSCw0REFBNEI7QUFnQjVCLHVEQUF1RDtBQUN2RCwrRkFBK0Y7QUFDL0YsTUFBTSxFQUNKLHNCQUFzQixFQUN0QiwyQkFBMkIsRUFDM0IsNEJBQTRCLEdBQzdCLEdBQUcsT0FBTyxDQUFDLCtCQUErQixDQUFDLENBQUM7QUFFN0M7Ozs7O0dBS0c7QUFDSCxTQUFnQix3QkFBd0IsQ0FBQyxPQUFtQjtJQUMxRCw0QkFBNEIsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUN4QyxDQUFDO0FBRkQsNERBRUM7QUFFRCxTQUFnQix5QkFBeUIsQ0FDdkMsZUFBdUMsRUFDdkMsV0FBK0I7SUFFL0Isa0NBQWtDO0lBQ2xDLE1BQU0sSUFBSSxHQUF3QixvQkFBRSxDQUFDLDZCQUE2QixDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBRXBGLHVGQUF1RjtJQUN2Rix1RkFBdUY7SUFDdkYsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLFdBQVcsUUFBUTtRQUMxQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3ZDLENBQUMsQ0FBQztJQUVGLDhDQUE4QztJQUM5QyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxXQUFXLElBQUksRUFBRSxPQUFPO1FBQ3BELGlEQUFpRDtRQUNqRCxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssT0FBTyxFQUFFO1lBQzVCLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxNQUFNLE1BQU0sR0FBRyxNQUFNLFdBQVcsQ0FBQyxtQkFBbUIsQ0FDbEQsSUFBSSxFQUNKLE9BQU8sQ0FBQyxjQUFjLEVBQ3RCLE9BQU8sQ0FBQyxZQUFZLElBQUksU0FBUyxDQUNsQyxDQUFDO1FBRUYsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDN0MsQ0FBQyxDQUFDO0lBRUYsNEVBQTRFO0lBQzVFLElBQUksQ0FBQyx3QkFBd0IsR0FBRztRQUM5QixPQUFPLFdBQVcsQ0FBQyxhQUFhLENBQUM7SUFDbkMsQ0FBQyxDQUFDO0lBRUYsdURBQXVEO0lBQ3ZELElBQUksV0FBVyxDQUFDLGdCQUFnQixFQUFFO1FBQ2hDLHFGQUFxRjtRQUNyRixNQUFNLGVBQWUsR0FBRyxvQkFBRSxDQUFDLDJCQUEyQixDQUNwRCxJQUFJLENBQUMsbUJBQW1CLEVBQUUsRUFDMUIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFDcEMsZUFBZSxDQUNoQixDQUFDO1FBQ0YsSUFBSSxDQUFDLHdCQUF3QixHQUFHLEdBQUcsRUFBRSxDQUFDLGVBQWUsQ0FBQztRQUV0RCwyQkFBMkIsQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLGdCQUFnQixFQUFFLGVBQWUsQ0FBQyxDQUFDO0tBQ2xGO0lBRUQsK0RBQStEO0lBQy9ELElBQUksV0FBVyxDQUFDLGVBQWUsRUFBRTtRQUMvQixzQkFBc0IsQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0tBQzNEO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBckRELDhEQXFEQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgdHlwZSBuZyBmcm9tICdAYW5ndWxhci9jb21waWxlci1jbGknO1xuaW1wb3J0IHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuXG5leHBvcnQgdHlwZSBBbmd1bGFyQ29tcGlsZXJPcHRpb25zID0gbmcuQ29tcGlsZXJPcHRpb25zO1xuZXhwb3J0IHR5cGUgQW5ndWxhckNvbXBpbGVySG9zdCA9IG5nLkNvbXBpbGVySG9zdDtcblxuZXhwb3J0IGludGVyZmFjZSBBbmd1bGFySG9zdE9wdGlvbnMge1xuICBmaWxlUmVwbGFjZW1lbnRzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgc291cmNlRmlsZUNhY2hlPzogTWFwPHN0cmluZywgdHMuU291cmNlRmlsZT47XG4gIG1vZGlmaWVkRmlsZXM/OiBTZXQ8c3RyaW5nPjtcbiAgdHJhbnNmb3JtU3R5bGVzaGVldChcbiAgICBkYXRhOiBzdHJpbmcsXG4gICAgY29udGFpbmluZ0ZpbGU6IHN0cmluZyxcbiAgICBzdHlsZXNoZWV0RmlsZT86IHN0cmluZyxcbiAgKTogUHJvbWlzZTxzdHJpbmcgfCBudWxsPjtcbn1cblxuLy8gVGVtcG9yYXJ5IGRlZXAgaW1wb3J0IGZvciBob3N0IGF1Z21lbnRhdGlvbiBzdXBwb3J0LlxuLy8gVE9ETzogTW92ZSB0aGVzZSB0byBhIHByaXZhdGUgZXhwb3J0cyBsb2NhdGlvbiBvciBtb3ZlIHRoZSBpbXBsZW1lbnRhdGlvbiBpbnRvIHRoaXMgcGFja2FnZS5cbmNvbnN0IHtcbiAgYXVnbWVudEhvc3RXaXRoQ2FjaGluZyxcbiAgYXVnbWVudEhvc3RXaXRoUmVwbGFjZW1lbnRzLFxuICBhdWdtZW50UHJvZ3JhbVdpdGhWZXJzaW9uaW5nLFxufSA9IHJlcXVpcmUoJ0BuZ3Rvb2xzL3dlYnBhY2svc3JjL2l2eS9ob3N0Jyk7XG5cbi8qKlxuICogUGF0Y2hlcyBpbi1wbGFjZSB0aGUgYGdldFNvdXJjZUZpbGVzYCBmdW5jdGlvbiBvbiBhbiBpbnN0YW5jZSBvZiBhIFR5cGVTY3JpcHRcbiAqIGBQcm9ncmFtYCB0byBlbnN1cmUgdGhhdCBhbGwgcmV0dXJuZWQgU291cmNlRmlsZSBpbnN0YW5jZXMgaGF2ZSBhIGB2ZXJzaW9uYFxuICogZmllbGQuIFRoZSBgdmVyc2lvbmAgZmllbGQgaXMgcmVxdWlyZWQgd2hlbiB1c2VkIHdpdGggYSBUeXBlU2NyaXB0IEJ1aWxkZXJQcm9ncmFtLlxuICogQHBhcmFtIHByb2dyYW0gVGhlIFR5cGVTY3JpcHQgUHJvZ3JhbSBpbnN0YW5jZSB0byBwYXRjaC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVuc3VyZVNvdXJjZUZpbGVWZXJzaW9ucyhwcm9ncmFtOiB0cy5Qcm9ncmFtKTogdm9pZCB7XG4gIGF1Z21lbnRQcm9ncmFtV2l0aFZlcnNpb25pbmcocHJvZ3JhbSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVBbmd1bGFyQ29tcGlsZXJIb3N0KFxuICBjb21waWxlck9wdGlvbnM6IEFuZ3VsYXJDb21waWxlck9wdGlvbnMsXG4gIGhvc3RPcHRpb25zOiBBbmd1bGFySG9zdE9wdGlvbnMsXG4pOiBBbmd1bGFyQ29tcGlsZXJIb3N0IHtcbiAgLy8gQ3JlYXRlIFR5cGVTY3JpcHQgY29tcGlsZXIgaG9zdFxuICBjb25zdCBob3N0OiBBbmd1bGFyQ29tcGlsZXJIb3N0ID0gdHMuY3JlYXRlSW5jcmVtZW50YWxDb21waWxlckhvc3QoY29tcGlsZXJPcHRpb25zKTtcblxuICAvLyBUaGUgQU9UIGNvbXBpbGVyIGN1cnJlbnRseSByZXF1aXJlcyB0aGlzIGhvb2sgdG8gYWxsb3cgZm9yIGEgdHJhbnNmb3JtUmVzb3VyY2UgaG9vay5cbiAgLy8gT25jZSB0aGUgQU9UIGNvbXBpbGVyIGFsbG93cyBvbmx5IGEgdHJhbnNmb3JtUmVzb3VyY2UgaG9vaywgdGhpcyBjYW4gYmUgcmVldmFsdWF0ZWQuXG4gIGhvc3QucmVhZFJlc291cmNlID0gYXN5bmMgZnVuY3Rpb24gKGZpbGVuYW1lKSB7XG4gICAgcmV0dXJuIHRoaXMucmVhZEZpbGUoZmlsZW5hbWUpID8/ICcnO1xuICB9O1xuXG4gIC8vIEFkZCBhbiBBT1QgY29tcGlsZXIgcmVzb3VyY2UgdHJhbnNmb3JtIGhvb2tcbiAgaG9zdC50cmFuc2Zvcm1SZXNvdXJjZSA9IGFzeW5jIGZ1bmN0aW9uIChkYXRhLCBjb250ZXh0KSB7XG4gICAgLy8gT25seSBzdHlsZSByZXNvdXJjZXMgYXJlIHRyYW5zZm9ybWVkIGN1cnJlbnRseVxuICAgIGlmIChjb250ZXh0LnR5cGUgIT09ICdzdHlsZScpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGhvc3RPcHRpb25zLnRyYW5zZm9ybVN0eWxlc2hlZXQoXG4gICAgICBkYXRhLFxuICAgICAgY29udGV4dC5jb250YWluaW5nRmlsZSxcbiAgICAgIGNvbnRleHQucmVzb3VyY2VGaWxlID8/IHVuZGVmaW5lZCxcbiAgICApO1xuXG4gICAgcmV0dXJuIHJlc3VsdCA/IHsgY29udGVudDogcmVzdWx0IH0gOiBudWxsO1xuICB9O1xuXG4gIC8vIEFsbG93IHRoZSBBT1QgY29tcGlsZXIgdG8gcmVxdWVzdCB0aGUgc2V0IG9mIGNoYW5nZWQgdGVtcGxhdGVzIGFuZCBzdHlsZXNcbiAgaG9zdC5nZXRNb2RpZmllZFJlc291cmNlRmlsZXMgPSBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIGhvc3RPcHRpb25zLm1vZGlmaWVkRmlsZXM7XG4gIH07XG5cbiAgLy8gQXVnbWVudCBUeXBlU2NyaXB0IEhvc3QgZm9yIGZpbGUgcmVwbGFjZW1lbnRzIG9wdGlvblxuICBpZiAoaG9zdE9wdGlvbnMuZmlsZVJlcGxhY2VtZW50cykge1xuICAgIC8vIFByb3ZpZGUgYSByZXNvbHV0aW9uIGNhY2hlIHNpbmNlIG92ZXJyaWRpbmcgcmVzb2x1dGlvbiBwcmV2ZW50cyBhdXRvbWF0aWMgY3JlYXRpb25cbiAgICBjb25zdCByZXNvbHV0aW9uQ2FjaGUgPSB0cy5jcmVhdGVNb2R1bGVSZXNvbHV0aW9uQ2FjaGUoXG4gICAgICBob3N0LmdldEN1cnJlbnREaXJlY3RvcnkoKSxcbiAgICAgIGhvc3QuZ2V0Q2Fub25pY2FsRmlsZU5hbWUuYmluZChob3N0KSxcbiAgICAgIGNvbXBpbGVyT3B0aW9ucyxcbiAgICApO1xuICAgIGhvc3QuZ2V0TW9kdWxlUmVzb2x1dGlvbkNhY2hlID0gKCkgPT4gcmVzb2x1dGlvbkNhY2hlO1xuXG4gICAgYXVnbWVudEhvc3RXaXRoUmVwbGFjZW1lbnRzKGhvc3QsIGhvc3RPcHRpb25zLmZpbGVSZXBsYWNlbWVudHMsIHJlc29sdXRpb25DYWNoZSk7XG4gIH1cblxuICAvLyBBdWdtZW50IFR5cGVTY3JpcHQgSG9zdCB3aXRoIHNvdXJjZSBmaWxlIGNhY2hpbmcgaWYgcHJvdmlkZWRcbiAgaWYgKGhvc3RPcHRpb25zLnNvdXJjZUZpbGVDYWNoZSkge1xuICAgIGF1Z21lbnRIb3N0V2l0aENhY2hpbmcoaG9zdCwgaG9zdE9wdGlvbnMuc291cmNlRmlsZUNhY2hlKTtcbiAgfVxuXG4gIHJldHVybiBob3N0O1xufVxuIl19
@@ -7,7 +7,7 @@
7
7
  */
8
8
  import type ng from '@angular/compiler-cli';
9
9
  import type ts from 'typescript';
10
- import type { AngularHostOptions } from './angular-host';
10
+ import type { AngularHostOptions } from '../angular-host';
11
11
  export interface EmitFileResult {
12
12
  filename: string;
13
13
  contents: string;
@@ -0,0 +1,52 @@
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 __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
10
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
11
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
12
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
13
+ };
14
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
15
+ if (kind === "m") throw new TypeError("Private method is not writable");
16
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
17
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
18
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
19
+ };
20
+ var _a, _AngularCompilation_angularCompilerCliModule;
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.AngularCompilation = void 0;
23
+ const load_esm_1 = require("../../../../utils/load-esm");
24
+ const profiling_1 = require("../../profiling");
25
+ class AngularCompilation {
26
+ static async loadCompilerCli() {
27
+ var _b;
28
+ // This uses a wrapped dynamic import to load `@angular/compiler-cli` which is ESM.
29
+ // Once TypeScript provides support for retaining dynamic imports this workaround can be dropped.
30
+ __classPrivateFieldSet(_b = AngularCompilation, _a, __classPrivateFieldGet(_b, _a, "f", _AngularCompilation_angularCompilerCliModule) ?? await (0, load_esm_1.loadEsmModule)('@angular/compiler-cli'), "f", _AngularCompilation_angularCompilerCliModule);
31
+ return __classPrivateFieldGet(AngularCompilation, _a, "f", _AngularCompilation_angularCompilerCliModule);
32
+ }
33
+ async loadConfiguration(tsconfig) {
34
+ const { readConfiguration } = await AngularCompilation.loadCompilerCli();
35
+ return (0, profiling_1.profileSync)('NG_READ_CONFIG', () => readConfiguration(tsconfig, {
36
+ // Angular specific configuration defaults and overrides to ensure a functioning compilation.
37
+ suppressOutputPathCheck: true,
38
+ outDir: undefined,
39
+ sourceMap: false,
40
+ declaration: false,
41
+ declarationMap: false,
42
+ allowEmptyCodegenFiles: false,
43
+ annotationsAs: 'decorators',
44
+ enableResourceInlining: false,
45
+ supportTestBed: false,
46
+ }));
47
+ }
48
+ }
49
+ exports.AngularCompilation = AngularCompilation;
50
+ _a = AngularCompilation;
51
+ _AngularCompilation_angularCompilerCliModule = { value: void 0 };
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1jb21waWxhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXJfZGV2a2l0L2J1aWxkX2FuZ3VsYXIvc3JjL3Rvb2xzL2VzYnVpbGQvYW5ndWxhci9jb21waWxhdGlvbi9hbmd1bGFyLWNvbXBpbGF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7Ozs7Ozs7Ozs7Ozs7OztBQUlILHlEQUEyRDtBQUMzRCwrQ0FBOEM7QUFTOUMsTUFBc0Isa0JBQWtCO0lBR3RDLE1BQU0sQ0FBQyxLQUFLLENBQUMsZUFBZTs7UUFDMUIsbUZBQW1GO1FBQ25GLGlHQUFpRztRQUNqRyx5SUFBaUQsTUFBTSxJQUFBLHdCQUFhLEVBQ2xFLHVCQUF1QixDQUN4QixvREFBQSxDQUFDO1FBRUYsT0FBTyx1QkFBQSxrQkFBa0Isd0RBQTBCLENBQUM7SUFDdEQsQ0FBQztJQUVTLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxRQUFnQjtRQUNoRCxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsR0FBRyxNQUFNLGtCQUFrQixDQUFDLGVBQWUsRUFBRSxDQUFDO1FBRXpFLE9BQU8sSUFBQSx1QkFBVyxFQUFDLGdCQUFnQixFQUFFLEdBQUcsRUFBRSxDQUN4QyxpQkFBaUIsQ0FBQyxRQUFRLEVBQUU7WUFDMUIsNkZBQTZGO1lBQzdGLHVCQUF1QixFQUFFLElBQUk7WUFDN0IsTUFBTSxFQUFFLFNBQVM7WUFDakIsU0FBUyxFQUFFLEtBQUs7WUFDaEIsV0FBVyxFQUFFLEtBQUs7WUFDbEIsY0FBYyxFQUFFLEtBQUs7WUFDckIsc0JBQXNCLEVBQUUsS0FBSztZQUM3QixhQUFhLEVBQUUsWUFBWTtZQUMzQixzQkFBc0IsRUFBRSxLQUFLO1lBQzdCLGNBQWMsRUFBRSxLQUFLO1NBQ3RCLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztDQWVGO0FBN0NELGdEQTZDQzs7QUE1Q1EsZ0VBQXlCLENBQWEiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHR5cGUgbmcgZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXItY2xpJztcbmltcG9ydCB0eXBlIHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuaW1wb3J0IHsgbG9hZEVzbU1vZHVsZSB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxzL2xvYWQtZXNtJztcbmltcG9ydCB7IHByb2ZpbGVTeW5jIH0gZnJvbSAnLi4vLi4vcHJvZmlsaW5nJztcbmltcG9ydCB0eXBlIHsgQW5ndWxhckhvc3RPcHRpb25zIH0gZnJvbSAnLi4vYW5ndWxhci1ob3N0JztcblxuZXhwb3J0IGludGVyZmFjZSBFbWl0RmlsZVJlc3VsdCB7XG4gIGZpbGVuYW1lOiBzdHJpbmc7XG4gIGNvbnRlbnRzOiBzdHJpbmc7XG4gIGRlcGVuZGVuY2llcz86IHJlYWRvbmx5IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQW5ndWxhckNvbXBpbGF0aW9uIHtcbiAgc3RhdGljICNhbmd1bGFyQ29tcGlsZXJDbGlNb2R1bGU/OiB0eXBlb2Ygbmc7XG5cbiAgc3RhdGljIGFzeW5jIGxvYWRDb21waWxlckNsaSgpOiBQcm9taXNlPHR5cGVvZiBuZz4ge1xuICAgIC8vIFRoaXMgdXNlcyBhIHdyYXBwZWQgZHluYW1pYyBpbXBvcnQgdG8gbG9hZCBgQGFuZ3VsYXIvY29tcGlsZXItY2xpYCB3aGljaCBpcyBFU00uXG4gICAgLy8gT25jZSBUeXBlU2NyaXB0IHByb3ZpZGVzIHN1cHBvcnQgZm9yIHJldGFpbmluZyBkeW5hbWljIGltcG9ydHMgdGhpcyB3b3JrYXJvdW5kIGNhbiBiZSBkcm9wcGVkLlxuICAgIEFuZ3VsYXJDb21waWxhdGlvbi4jYW5ndWxhckNvbXBpbGVyQ2xpTW9kdWxlID8/PSBhd2FpdCBsb2FkRXNtTW9kdWxlPHR5cGVvZiBuZz4oXG4gICAgICAnQGFuZ3VsYXIvY29tcGlsZXItY2xpJyxcbiAgICApO1xuXG4gICAgcmV0dXJuIEFuZ3VsYXJDb21waWxhdGlvbi4jYW5ndWxhckNvbXBpbGVyQ2xpTW9kdWxlO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGxvYWRDb25maWd1cmF0aW9uKHRzY29uZmlnOiBzdHJpbmcpOiBQcm9taXNlPG5nLkNvbXBpbGVyT3B0aW9ucz4ge1xuICAgIGNvbnN0IHsgcmVhZENvbmZpZ3VyYXRpb24gfSA9IGF3YWl0IEFuZ3VsYXJDb21waWxhdGlvbi5sb2FkQ29tcGlsZXJDbGkoKTtcblxuICAgIHJldHVybiBwcm9maWxlU3luYygnTkdfUkVBRF9DT05GSUcnLCAoKSA9PlxuICAgICAgcmVhZENvbmZpZ3VyYXRpb24odHNjb25maWcsIHtcbiAgICAgICAgLy8gQW5ndWxhciBzcGVjaWZpYyBjb25maWd1cmF0aW9uIGRlZmF1bHRzIGFuZCBvdmVycmlkZXMgdG8gZW5zdXJlIGEgZnVuY3Rpb25pbmcgY29tcGlsYXRpb24uXG4gICAgICAgIHN1cHByZXNzT3V0cHV0UGF0aENoZWNrOiB0cnVlLFxuICAgICAgICBvdXREaXI6IHVuZGVmaW5lZCxcbiAgICAgICAgc291cmNlTWFwOiBmYWxzZSxcbiAgICAgICAgZGVjbGFyYXRpb246IGZhbHNlLFxuICAgICAgICBkZWNsYXJhdGlvbk1hcDogZmFsc2UsXG4gICAgICAgIGFsbG93RW1wdHlDb2RlZ2VuRmlsZXM6IGZhbHNlLFxuICAgICAgICBhbm5vdGF0aW9uc0FzOiAnZGVjb3JhdG9ycycsXG4gICAgICAgIGVuYWJsZVJlc291cmNlSW5saW5pbmc6IGZhbHNlLFxuICAgICAgICBzdXBwb3J0VGVzdEJlZDogZmFsc2UsXG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgYWJzdHJhY3QgaW5pdGlhbGl6ZShcbiAgICB0c2NvbmZpZzogc3RyaW5nLFxuICAgIGhvc3RPcHRpb25zOiBBbmd1bGFySG9zdE9wdGlvbnMsXG4gICAgY29tcGlsZXJPcHRpb25zVHJhbnNmb3JtZXI/OiAoY29tcGlsZXJPcHRpb25zOiBuZy5Db21waWxlck9wdGlvbnMpID0+IG5nLkNvbXBpbGVyT3B0aW9ucyxcbiAgKTogUHJvbWlzZTx7XG4gICAgYWZmZWN0ZWRGaWxlczogUmVhZG9ubHlTZXQ8dHMuU291cmNlRmlsZT47XG4gICAgY29tcGlsZXJPcHRpb25zOiBuZy5Db21waWxlck9wdGlvbnM7XG4gICAgcmVmZXJlbmNlZEZpbGVzOiByZWFkb25seSBzdHJpbmdbXTtcbiAgfT47XG5cbiAgYWJzdHJhY3QgY29sbGVjdERpYWdub3N0aWNzKCk6IEl0ZXJhYmxlPHRzLkRpYWdub3N0aWM+O1xuXG4gIGFic3RyYWN0IGVtaXRBZmZlY3RlZEZpbGVzKCk6IEl0ZXJhYmxlPEVtaXRGaWxlUmVzdWx0Pjtcbn1cbiJdfQ==
@@ -7,8 +7,8 @@
7
7
  */
8
8
  import type ng from '@angular/compiler-cli';
9
9
  import ts from 'typescript';
10
+ import { AngularHostOptions } from '../angular-host';
10
11
  import { AngularCompilation, EmitFileResult } from './angular-compilation';
11
- import { AngularHostOptions } from './angular-host';
12
12
  export declare class AotCompilation extends AngularCompilation {
13
13
  #private;
14
14
  initialize(tsconfig: string, hostOptions: AngularHostOptions, compilerOptionsTransformer?: (compilerOptions: ng.CompilerOptions) => ng.CompilerOptions): Promise<{