@angular-devkit/build-angular 17.0.0-next.4 → 17.0.0-next.6

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 (67) hide show
  1. package/package.json +9 -10
  2. package/src/builders/app-shell/render-worker.js +2 -2
  3. package/src/builders/application/execute-build.js +20 -6
  4. package/src/builders/application/i18n.d.ts +25 -0
  5. package/src/builders/application/i18n.js +110 -0
  6. package/src/builders/application/index.js +12 -1
  7. package/src/builders/application/options.d.ts +6 -2
  8. package/src/builders/application/options.js +9 -8
  9. package/src/builders/application/schema.d.ts +4 -16
  10. package/src/builders/application/schema.js +1 -1
  11. package/src/builders/application/schema.json +3 -19
  12. package/src/builders/browser-esbuild/builder-status-warnings.js +1 -6
  13. package/src/builders/dev-server/vite-server.js +21 -2
  14. package/src/builders/extract-i18n/application-extraction.js +2 -1
  15. package/src/builders/prerender/index.js +45 -10
  16. package/src/builders/prerender/render-worker.js +2 -2
  17. package/src/builders/prerender/routes-extractor-worker.d.ts +20 -0
  18. package/src/builders/prerender/routes-extractor-worker.js +71 -0
  19. package/src/builders/prerender/schema.d.ts +2 -2
  20. package/src/builders/prerender/schema.js +1 -1
  21. package/src/builders/prerender/schema.json +2 -2
  22. package/src/builders/server/platform-server-exports-loader.js +7 -2
  23. package/src/tools/esbuild/angular/angular-host.d.ts +1 -0
  24. package/src/tools/esbuild/angular/angular-host.js +1 -1
  25. package/src/tools/esbuild/angular/compilation/aot-compilation.js +12 -6
  26. package/src/tools/esbuild/angular/compilation/jit-compilation.js +12 -5
  27. package/src/tools/esbuild/angular/compiler-plugin.js +50 -30
  28. package/src/tools/esbuild/angular/web-worker-transformer.d.ts +17 -0
  29. package/src/tools/esbuild/angular/web-worker-transformer.js +95 -0
  30. package/src/tools/esbuild/application-code-bundle.js +74 -22
  31. package/src/tools/esbuild/bundler-context.js +3 -3
  32. package/src/tools/esbuild/bundler-execution-result.d.ts +2 -2
  33. package/src/tools/esbuild/bundler-execution-result.js +1 -1
  34. package/src/tools/esbuild/global-scripts.js +2 -2
  35. package/src/tools/esbuild/i18n-inliner-worker.d.ts +37 -0
  36. package/src/tools/esbuild/i18n-inliner-worker.js +138 -0
  37. package/src/tools/esbuild/i18n-inliner.d.ts +40 -0
  38. package/src/tools/esbuild/i18n-inliner.js +119 -0
  39. package/src/tools/esbuild/i18n-locale-plugin.d.ts +18 -0
  40. package/src/tools/esbuild/i18n-locale-plugin.js +91 -0
  41. package/src/tools/esbuild/index-html-generator.d.ts +2 -2
  42. package/src/tools/esbuild/index-html-generator.js +4 -4
  43. package/src/tools/esbuild/rxjs-esm-resolution-plugin.js +2 -2
  44. package/src/tools/esbuild/sourcemap-ignorelist-plugin.d.ts +1 -1
  45. package/src/tools/esbuild/sourcemap-ignorelist-plugin.js +4 -4
  46. package/src/tools/esbuild/utils.d.ts +2 -0
  47. package/src/tools/esbuild/utils.js +34 -2
  48. package/src/tools/esbuild/virtual-module-plugin.d.ts +2 -0
  49. package/src/tools/esbuild/virtual-module-plugin.js +3 -3
  50. package/src/tools/vite/i18n-locale-plugin.d.ts +18 -0
  51. package/src/tools/vite/i18n-locale-plugin.js +56 -0
  52. package/src/utils/routes-extractor/extractor.d.ts +15 -0
  53. package/src/utils/routes-extractor/extractor.js +80 -0
  54. package/src/utils/server-rendering/esm-in-memory-file-loader.d.ts +8 -0
  55. package/src/utils/server-rendering/esm-in-memory-file-loader.js +8 -8
  56. package/src/utils/server-rendering/main-bundle-exports.d.ts +22 -0
  57. package/src/utils/server-rendering/main-bundle-exports.js +10 -0
  58. package/src/utils/server-rendering/prerender.d.ts +1 -2
  59. package/src/utils/server-rendering/prerender.js +55 -55
  60. package/src/utils/server-rendering/render-page.d.ts +1 -13
  61. package/src/utils/server-rendering/render-page.js +2 -2
  62. package/src/utils/server-rendering/render-worker.d.ts +2 -2
  63. package/src/utils/server-rendering/render-worker.js +1 -1
  64. package/src/utils/server-rendering/routes-extractor-worker.d.ts +17 -0
  65. package/src/utils/server-rendering/routes-extractor-worker.js +47 -0
  66. package/src/builders/prerender/utils.d.ts +0 -22
  67. package/src/builders/prerender/utils.js +0 -79
@@ -6,29 +6,6 @@
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
  };
@@ -36,19 +13,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
36
13
  exports.prerenderPages = void 0;
37
14
  const promises_1 = require("node:fs/promises");
38
15
  const node_path_1 = require("node:path");
16
+ const node_url_1 = require("node:url");
39
17
  const piscina_1 = __importDefault(require("piscina"));
40
- async function prerenderPages(workspaceRoot, tsConfigPath, appShellOptions = {}, prerenderOptions = {}, outputFiles, document, inlineCriticalCss, maxThreads = 1) {
18
+ async function prerenderPages(workspaceRoot, appShellOptions = {}, prerenderOptions = {}, outputFiles, document, inlineCriticalCss, maxThreads = 1, verbose = false) {
41
19
  const output = {};
42
20
  const warnings = [];
43
21
  const errors = [];
44
- const allRoutes = await getAllRoutes(tsConfigPath, appShellOptions, prerenderOptions);
45
- if (allRoutes.size < 1) {
46
- return {
47
- errors,
48
- warnings,
49
- output,
50
- };
51
- }
52
22
  const outputFilesForWorker = {};
53
23
  for (const { text, path } of outputFiles) {
54
24
  switch ((0, node_path_1.extname)(path)) {
@@ -58,6 +28,17 @@ async function prerenderPages(workspaceRoot, tsConfigPath, appShellOptions = {},
58
28
  break;
59
29
  }
60
30
  }
31
+ const { routes: allRoutes, warnings: routesWarnings } = await getAllRoutes(workspaceRoot, outputFilesForWorker, document, appShellOptions, prerenderOptions, verbose);
32
+ if (routesWarnings?.length) {
33
+ warnings.push(...routesWarnings);
34
+ }
35
+ if (allRoutes.size < 1) {
36
+ return {
37
+ errors,
38
+ warnings,
39
+ output,
40
+ };
41
+ }
61
42
  const renderWorker = new piscina_1.default({
62
43
  filename: require.resolve('./render-worker'),
63
44
  maxThreads: Math.min(allRoutes.size, maxThreads),
@@ -70,20 +51,19 @@ async function prerenderPages(workspaceRoot, tsConfigPath, appShellOptions = {},
70
51
  execArgv: [
71
52
  '--no-warnings',
72
53
  '--loader',
73
- require.resolve('./esm-in-memory-file-loader.js'),
54
+ (0, node_url_1.pathToFileURL)((0, node_path_1.join)(__dirname, 'esm-in-memory-file-loader.js')).href, // Loader cannot be an absolute path on Windows.
74
55
  ],
75
56
  });
76
57
  try {
77
58
  const renderingPromises = [];
59
+ const appShellRoute = appShellOptions.route && removeLeadingSlash(appShellOptions.route);
78
60
  for (const route of allRoutes) {
79
- const isAppShellRoute = appShellOptions.route === route;
61
+ const isAppShellRoute = appShellRoute === route;
80
62
  const serverContext = isAppShellRoute ? 'app-shell' : 'ssg';
81
63
  const render = renderWorker.run({ route, serverContext });
82
64
  const renderResult = render.then(({ content, warnings, errors }) => {
83
65
  if (content !== undefined) {
84
- const outPath = isAppShellRoute
85
- ? 'index.html'
86
- : node_path_1.posix.join(route.startsWith('/') ? route.slice(1) /* Remove leading slash */ : route, 'index.html');
66
+ const outPath = isAppShellRoute ? 'index.html' : node_path_1.posix.join(route, 'index.html');
87
67
  output[outPath] = content;
88
68
  }
89
69
  if (warnings) {
@@ -107,31 +87,51 @@ async function prerenderPages(workspaceRoot, tsConfigPath, appShellOptions = {},
107
87
  };
108
88
  }
109
89
  exports.prerenderPages = prerenderPages;
110
- async function getAllRoutes(tsConfigPath, appShellOptions, prerenderOptions) {
111
- const { routesFile, discoverRoutes, routes: existingRoutes } = prerenderOptions;
112
- const routes = new Set(existingRoutes);
90
+ class RoutesSet extends Set {
91
+ add(value) {
92
+ return super.add(removeLeadingSlash(value));
93
+ }
94
+ }
95
+ async function getAllRoutes(workspaceRoot, outputFilesForWorker, document, appShellOptions, prerenderOptions, verbose) {
96
+ const { routesFile, discoverRoutes } = prerenderOptions;
97
+ const routes = new RoutesSet();
113
98
  const { route: appShellRoute } = appShellOptions;
114
99
  if (appShellRoute !== undefined) {
115
100
  routes.add(appShellRoute);
116
101
  }
117
102
  if (routesFile) {
118
103
  const routesFromFile = (await (0, promises_1.readFile)(routesFile, 'utf8')).split(/\r?\n/);
119
- for (let route of routesFromFile) {
120
- route = route.trim();
121
- if (route) {
122
- routes.add(route);
123
- }
104
+ for (const route of routesFromFile) {
105
+ routes.add(route.trim());
124
106
  }
125
107
  }
126
- if (discoverRoutes) {
127
- const { parseAngularRoutes } = await Promise.resolve().then(() => __importStar(require('guess-parser')));
128
- for (const { path } of parseAngularRoutes(tsConfigPath)) {
129
- // Exclude dynamic routes as these cannot be pre-rendered.
130
- if (!/[*:]/.test(path)) {
131
- routes.add(path);
132
- }
133
- }
108
+ if (!discoverRoutes) {
109
+ return { routes };
110
+ }
111
+ const renderWorker = new piscina_1.default({
112
+ filename: require.resolve('./routes-extractor-worker'),
113
+ maxThreads: 1,
114
+ workerData: {
115
+ workspaceRoot,
116
+ outputFiles: outputFilesForWorker,
117
+ document,
118
+ verbose,
119
+ },
120
+ execArgv: [
121
+ '--no-warnings',
122
+ '--loader',
123
+ (0, node_url_1.pathToFileURL)((0, node_path_1.join)(__dirname, 'esm-in-memory-file-loader.js')).href, // Loader cannot be an absolute path on Windows.
124
+ ],
125
+ });
126
+ const { routes: extractedRoutes, warnings } = await renderWorker
127
+ .run({})
128
+ .finally(() => void renderWorker.destroy());
129
+ for (const route of extractedRoutes) {
130
+ routes.add(route);
134
131
  }
135
- return routes;
132
+ return { routes, warnings };
133
+ }
134
+ function removeLeadingSlash(value) {
135
+ return value.charAt(0) === '/' ? value.slice(1) : value;
136
136
  }
137
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlcmVuZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhcl9kZXZraXQvYnVpbGRfYW5ndWxhci9zcmMvdXRpbHMvc2VydmVyLXJlbmRlcmluZy9wcmVyZW5kZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHSCwrQ0FBNEM7QUFDNUMseUNBQTJDO0FBQzNDLHNEQUE4QjtBQWN2QixLQUFLLFVBQVUsY0FBYyxDQUNsQyxhQUFxQixFQUNyQixZQUFvQixFQUNwQixrQkFBbUMsRUFBRSxFQUNyQyxtQkFBcUMsRUFBRSxFQUN2QyxXQUFtQyxFQUNuQyxRQUFnQixFQUNoQixpQkFBMkIsRUFDM0IsVUFBVSxHQUFHLENBQUM7SUFNZCxNQUFNLE1BQU0sR0FBMkIsRUFBRSxDQUFDO0lBQzFDLE1BQU0sUUFBUSxHQUFhLEVBQUUsQ0FBQztJQUM5QixNQUFNLE1BQU0sR0FBYSxFQUFFLENBQUM7SUFDNUIsTUFBTSxTQUFTLEdBQUcsTUFBTSxZQUFZLENBQUMsWUFBWSxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0lBRXRGLElBQUksU0FBUyxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUU7UUFDdEIsT0FBTztZQUNMLE1BQU07WUFDTixRQUFRO1lBQ1IsTUFBTTtTQUNQLENBQUM7S0FDSDtJQUVELE1BQU0sb0JBQW9CLEdBQTJCLEVBQUUsQ0FBQztJQUV4RCxLQUFLLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksV0FBVyxFQUFFO1FBQ3hDLFFBQVEsSUFBQSxtQkFBTyxFQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3JCLEtBQUssTUFBTSxDQUFDLENBQUMsaURBQWlEO1lBQzlELEtBQUssTUFBTSxFQUFFLDJDQUEyQztnQkFDdEQsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEdB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QUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDM0UsS0FBSyxJQUFJLEtBQUssSUFBSSxjQUFjLEVBQUU7WUFDaEMsS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNyQixJQUFJLEtBQUssRUFBRTtnQkFDVCxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ25CO1NBQ0Y7S0FDRjtJQUVELElBQUksY0FBYyxFQUFFO1FBQ2xCLE1BQU0sRUFBRSxrQkFBa0IsRUFBRSxHQUFHLHdEQUFhLGNBQWMsR0FBQyxDQUFDO1FBQzVELEtBQUssTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQ3ZELDBEQUEwRDtZQUMxRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDdEIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNsQjtTQUNGO0tBQ0Y7SUFFRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7IE91dHB1dEZpbGUgfSBmcm9tICdlc2J1aWxkJztcbmltcG9ydCB7IHJlYWRGaWxlIH0gZnJvbSAnbm9kZTpmcy9wcm9taXNlcyc7XG5pbXBvcnQgeyBleHRuYW1lLCBwb3NpeCB9IGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQgUGlzY2luYSBmcm9tICdwaXNjaW5hJztcbmltcG9ydCB0eXBlIHsgUmVuZGVyUmVzdWx0LCBTZXJ2ZXJDb250ZXh0IH0gZnJvbSAnLi9yZW5kZXItcGFnZSc7XG5pbXBvcnQgdHlwZSB7IFdvcmtlckRhdGEgfSBmcm9tICcuL3JlbmRlci13b3JrZXInO1xuXG5pbnRlcmZhY2UgUHJlcmVuZGVyT3B0aW9ucyB7XG4gIHJvdXRlc0ZpbGU/OiBzdHJpbmc7XG4gIGRpc2NvdmVyUm91dGVzPzogYm9vbGVhbjtcbiAgcm91dGVzPzogc3RyaW5nW107XG59XG5cbmludGVyZmFjZSBBcHBTaGVsbE9wdGlvbnMge1xuICByb3V0ZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHByZXJlbmRlclBhZ2VzKFxuICB3b3Jrc3BhY2VSb290OiBzdHJpbmcsXG4gIHRzQ29uZmlnUGF0aDogc3RyaW5nLFxuICBhcHBTaGVsbE9wdGlvbnM6IEFwcFNoZWxsT3B0aW9ucyA9IHt9LFxuICBwcmVyZW5kZXJPcHRpb25zOiBQcmVyZW5kZXJPcHRpb25zID0ge30sXG4gIG91dHB1dEZpbGVzOiBSZWFkb25seTxPdXRwdXRGaWxlW10+LFxuICBkb2N1bWVudDogc3RyaW5nLFxuICBpbmxpbmVDcml0aWNhbENzcz86IGJvb2xlYW4sXG4gIG1heFRocmVhZHMgPSAxLFxuKTogUHJvbWlzZTx7XG4gIG91dHB1dDogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgd2FybmluZ3M6IHN0cmluZ1tdO1xuICBlcnJvcnM6IHN0cmluZ1tdO1xufT4ge1xuICBjb25zdCBvdXRwdXQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcbiAgY29uc3Qgd2FybmluZ3M6IHN0cmluZ1tdID0gW107XG4gIGNvbnN0IGVycm9yczogc3RyaW5nW10gPSBbXTtcbiAgY29uc3QgYWxsUm91dGVzID0gYXdhaXQgZ2V0QWxsUm91dGVzKHRzQ29uZmlnUGF0aCwgYXBwU2hlbGxPcHRpb25zLCBwcmVyZW5kZXJPcHRpb25zKTtcblxuICBpZiAoYWxsUm91dGVzLnNpemUgPCAxKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGVycm9ycyxcbiAgICAgIHdhcm5pbmdzLFxuICAgICAgb3V0cHV0LFxuICAgIH07XG4gIH1cblxuICBjb25zdCBvdXRwdXRGaWxlc0ZvcldvcmtlcjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuXG4gIGZvciAoY29uc3QgeyB0ZXh0LCBwYXRoIH0gb2Ygb3V0cHV0RmlsZXMpIHtcbiAgICBzd2l0Y2ggKGV4dG5hbWUocGF0aCkpIHtcbiAgICAgIGNhc2UgJy5tanMnOiAvLyBDb250YWlucyB0aGUgc2VydmVyIHJ1bm5hYmxlIGFwcGxpY2F0aW9uIGNvZGUuXG4gICAgICBjYXNlICcuY3NzJzogLy8gR2xvYmFsIHN0eWxlcyBmb3IgY3JpdGljYWwgQ1NTIGlubGluaW5nLlxuICAgICAgICBvdXRwdXRGaWxlc0ZvcldvcmtlcltwYXRoXSA9IHRleHQ7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHJlbmRlcldvcmtlciA9IG5ldyBQaXNjaW5hKHtcbiAgICBmaWxlbmFtZTogcmVxdWlyZS5yZXNvbHZlKCcuL3JlbmRlci13b3JrZXInKSxcbiAgICBtYXhUaHJlYWRzOiBNYXRoLm1pbihhbGxSb3V0ZXMuc2l6ZSwgbWF4VGhyZWFkcyksXG4gICAgd29ya2VyRGF0YToge1xuICAgICAgd29ya3NwYWNlUm9vdCxcbiAgICAgIG91dHB1dEZpbGVzOiBvdXRwdXRGaWxlc0ZvcldvcmtlcixcbiAgICAgIGlubGluZUNyaXRpY2FsQ3NzLFxuICAgICAgZG9jdW1lbnQsXG4gICAgfSBhcyBXb3JrZXJEYXRhLFxuICAgIGV4ZWNBcmd2OiBbXG4gICAgICAnLS1uby13YXJuaW5ncycsIC8vIFN1cHByZXNzIGBFeHBlcmltZW50YWxXYXJuaW5nOiBDdXN0b20gRVNNIExvYWRlcnMgaXMgYW4gZXhwZXJpbWVudGFsIGZlYXR1cmUuLi5gLlxuICAgICAgJy0tbG9hZGVyJyxcbiAgICAgIHJlcXVpcmUucmVzb2x2ZSgnLi9lc20taW4tbWVtb3J5LWZpbGUtbG9hZGVyLmpzJyksXG4gICAgXSxcbiAgfSk7XG5cbiAgdHJ5IHtcbiAgICBjb25zdCByZW5kZXJpbmdQcm9taXNlczogUHJvbWlzZTx2b2lkPltdID0gW107XG5cbiAgICBmb3IgKGNvbnN0IHJvdXRlIG9mIGFsbFJvdXRlcykge1xuICAgICAgY29uc3QgaXNBcHBTaGVsbFJvdXRlID0gYXBwU2hlbGxPcHRpb25zLnJvdXRlID09PSByb3V0ZTtcbiAgICAgIGNvbnN0IHNlcnZlckNvbnRleHQ6IFNlcnZlckNvbnRleHQgPSBpc0FwcFNoZWxsUm91dGUgPyAnYXBwLXNoZWxsJyA6ICdzc2cnO1xuXG4gICAgICBjb25zdCByZW5kZXI6IFByb21pc2U8UmVuZGVyUmVzdWx0PiA9IHJlbmRlcldvcmtlci5ydW4oeyByb3V0ZSwgc2VydmVyQ29udGV4dCB9KTtcbiAgICAgIGNvbnN0IHJlbmRlclJlc3VsdDogUHJvbWlzZTx2b2lkPiA9IHJlbmRlci50aGVuKCh7IGNvbnRlbnQsIHdhcm5pbmdzLCBlcnJvcnMgfSkgPT4ge1xuICAgICAgICBpZiAoY29udGVudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgY29uc3Qgb3V0UGF0aCA9IGlzQXBwU2hlbGxSb3V0ZVxuICAgICAgICAgICAgPyAnaW5kZXguaHRtbCdcbiAgICAgICAgICAgIDogcG9zaXguam9pbihcbiAgICAgICAgICAgICAgICByb3V0ZS5zdGFydHNXaXRoKCcvJykgPyByb3V0ZS5zbGljZSgxKSAvKiBSZW1vdmUgbGVhZGluZyBzbGFzaCAqLyA6IHJvdXRlLFxuICAgICAgICAgICAgICAgICdpbmRleC5odG1sJyxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICBvdXRwdXRbb3V0UGF0aF0gPSBjb250ZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHdhcm5pbmdzKSB7XG4gICAgICAgICAgd2FybmluZ3MucHVzaCguLi53YXJuaW5ncyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZXJyb3JzKSB7XG4gICAgICAgICAgZXJyb3JzLnB1c2goLi4uZXJyb3JzKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIHJlbmRlcmluZ1Byb21pc2VzLnB1c2gocmVuZGVyUmVzdWx0KTtcbiAgICB9XG5cbiAgICBhd2FpdCBQcm9taXNlLmFsbChyZW5kZXJpbmdQcm9taXNlcyk7XG4gIH0gZmluYWxseSB7XG4gICAgdm9pZCByZW5kZXJXb3JrZXIuZGVzdHJveSgpO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBlcnJvcnMsXG4gICAgd2FybmluZ3MsXG4gICAgb3V0cHV0LFxuICB9O1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRBbGxSb3V0ZXMoXG4gIHRzQ29uZmlnUGF0aDogc3RyaW5nLFxuICBhcHBTaGVsbE9wdGlvbnM6IEFwcFNoZWxsT3B0aW9ucyxcbiAgcHJlcmVuZGVyT3B0aW9uczogUHJlcmVuZGVyT3B0aW9ucyxcbik6IFByb21pc2U8U2V0PHN0cmluZz4+IHtcbiAgY29uc3QgeyByb3V0ZXNGaWxlLCBkaXNjb3ZlclJvdXRlcywgcm91dGVzOiBleGlzdGluZ1JvdXRlcyB9ID0gcHJlcmVuZGVyT3B0aW9ucztcbiAgY29uc3Qgcm91dGVzID0gbmV3IFNldChleGlzdGluZ1JvdXRlcyk7XG5cbiAgY29uc3QgeyByb3V0ZTogYXBwU2hlbGxSb3V0ZSB9ID0gYXBwU2hlbGxPcHRpb25zO1xuICBpZiAoYXBwU2hlbGxSb3V0ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcm91dGVzLmFkZChhcHBTaGVsbFJvdXRlKTtcbiAgfVxuXG4gIGlmIChyb3V0ZXNGaWxlKSB7XG4gICAgY29uc3Qgcm91dGVzRnJvbUZpbGUgPSAoYXdhaXQgcmVhZEZpbGUocm91dGVzRmlsZSwgJ3V0ZjgnKSkuc3BsaXQoL1xccj9cXG4vKTtcbiAgICBmb3IgKGxldCByb3V0ZSBvZiByb3V0ZXNGcm9tRmlsZSkge1xuICAgICAgcm91dGUgPSByb3V0ZS50cmltKCk7XG4gICAgICBpZiAocm91dGUpIHtcbiAgICAgICAgcm91dGVzLmFkZChyb3V0ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKGRpc2NvdmVyUm91dGVzKSB7XG4gICAgY29uc3QgeyBwYXJzZUFuZ3VsYXJSb3V0ZXMgfSA9IGF3YWl0IGltcG9ydCgnZ3Vlc3MtcGFyc2VyJyk7XG4gICAgZm9yIChjb25zdCB7IHBhdGggfSBvZiBwYXJzZUFuZ3VsYXJSb3V0ZXModHNDb25maWdQYXRoKSkge1xuICAgICAgLy8gRXhjbHVkZSBkeW5hbWljIHJvdXRlcyBhcyB0aGVzZSBjYW5ub3QgYmUgcHJlLXJlbmRlcmVkLlxuICAgICAgaWYgKCEvWyo6XS8udGVzdChwYXRoKSkge1xuICAgICAgICByb3V0ZXMuYWRkKHBhdGgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiByb3V0ZXM7XG59XG4iXX0=
137
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlcmVuZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhcl9kZXZraXQvYnVpbGRfYW5ndWxhci9zcmMvdXRpbHMvc2VydmVyLXJlbmRlcmluZy9wcmVyZW5kZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7Ozs7O0FBR0gsK0NBQTRDO0FBQzVDLHlDQUFpRDtBQUNqRCx1Q0FBeUM7QUFDekMsc0RBQThCO0FBaUJ2QixLQUFLLFVBQVUsY0FBYyxDQUNsQyxhQUFxQixFQUNyQixrQkFBbUMsRUFBRSxFQUNyQyxtQkFBcUMsRUFBRSxFQUN2QyxXQUFtQyxFQUNuQyxRQUFnQixFQUNoQixpQkFBMkIsRUFDM0IsVUFBVSxHQUFHLENBQUMsRUFDZCxPQUFPLEdBQUcsS0FBSztJQU1mLE1BQU0sTUFBTSxHQUEyQixFQUFFLENBQUM7SUFDMUMsTUFBTSxRQUFRLEdBQWEsRUFBRSxDQUFDO0lBQzlCLE1BQU0sTUFBTSxHQUFhLEVBQUUsQ0FBQztJQUM1QixNQUFNLG9CQUFvQixHQUEyQixFQUFFLENBQUM7SUFFeEQsS0FBSyxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLFdBQVcsRUFBRTtRQUN4QyxRQUFRLElBQUEsbUJBQU8sRUFBQyxJQUFJLENBQUMsRUFBRTtZQUNyQixLQUFLLE1BQU0sQ0FBQyxDQUFDLGlEQUFpRDtZQUM5RCxLQUFLLE1BQU0sRUFBRSwyQ0FBMkM7Z0JBQ3RELG9CQUFvQixDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQztnQkFDbEMsTUFBTTtTQUNUO0tBQ0Y7SUFFRCxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLEdBQUcsTUFBTSxZQUFZLENBQ3hFLGFBQWEsRUFDYixvQkFBb0IsRUFDcEIsUUFBUSxFQUNSLGVBQWUsRUFDZixnQkFBZ0IsRUFDaEIsT0FB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QUMsRUFBRSxDQUFDO1NBQ1AsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssWUFBWSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFFOUMsS0FBSyxNQUFNLEtBQUssSUFBSSxlQUFlLEVBQUU7UUFDbkMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUNuQjtJQUVELE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLENBQUM7QUFDOUIsQ0FBQztBQUVELFNBQVMsa0JBQWtCLENBQUMsS0FBYTtJQUN2QyxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7QUFDMUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgeyBPdXRwdXRGaWxlIH0gZnJvbSAnZXNidWlsZCc7XG5pbXBvcnQgeyByZWFkRmlsZSB9IGZyb20gJ25vZGU6ZnMvcHJvbWlzZXMnO1xuaW1wb3J0IHsgZXh0bmFtZSwgam9pbiwgcG9zaXggfSBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHsgcGF0aFRvRmlsZVVSTCB9IGZyb20gJ25vZGU6dXJsJztcbmltcG9ydCBQaXNjaW5hIGZyb20gJ3Bpc2NpbmEnO1xuaW1wb3J0IHR5cGUgeyBSZW5kZXJSZXN1bHQsIFNlcnZlckNvbnRleHQgfSBmcm9tICcuL3JlbmRlci1wYWdlJztcbmltcG9ydCB0eXBlIHsgUmVuZGVyV29ya2VyRGF0YSB9IGZyb20gJy4vcmVuZGVyLXdvcmtlcic7XG5pbXBvcnQgdHlwZSB7XG4gIFJvdXRlcnNFeHRyYWN0b3JXb3JrZXJSZXN1bHQsXG4gIFJvdXRlc0V4dHJhY3RvcldvcmtlckRhdGEsXG59IGZyb20gJy4vcm91dGVzLWV4dHJhY3Rvci13b3JrZXInO1xuXG5pbnRlcmZhY2UgUHJlcmVuZGVyT3B0aW9ucyB7XG4gIHJvdXRlc0ZpbGU/OiBzdHJpbmc7XG4gIGRpc2NvdmVyUm91dGVzPzogYm9vbGVhbjtcbn1cblxuaW50ZXJmYWNlIEFwcFNoZWxsT3B0aW9ucyB7XG4gIHJvdXRlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcHJlcmVuZGVyUGFnZXMoXG4gIHdvcmtzcGFjZVJvb3Q6IHN0cmluZyxcbiAgYXBwU2hlbGxPcHRpb25zOiBBcHBTaGVsbE9wdGlvbnMgPSB7fSxcbiAgcHJlcmVuZGVyT3B0aW9uczogUHJlcmVuZGVyT3B0aW9ucyA9IHt9LFxuICBvdXRwdXRGaWxlczogUmVhZG9ubHk8T3V0cHV0RmlsZVtdPixcbiAgZG9jdW1lbnQ6IHN0cmluZyxcbiAgaW5saW5lQ3JpdGljYWxDc3M/OiBib29sZWFuLFxuICBtYXhUaHJlYWRzID0gMSxcbiAgdmVyYm9zZSA9IGZhbHNlLFxuKTogUHJvbWlzZTx7XG4gIG91dHB1dDogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgd2FybmluZ3M6IHN0cmluZ1tdO1xuICBlcnJvcnM6IHN0cmluZ1tdO1xufT4ge1xuICBjb25zdCBvdXRwdXQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcbiAgY29uc3Qgd2FybmluZ3M6IHN0cmluZ1tdID0gW107XG4gIGNvbnN0IGVycm9yczogc3RyaW5nW10gPSBbXTtcbiAgY29uc3Qgb3V0cHV0RmlsZXNGb3JXb3JrZXI6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcblxuICBmb3IgKGNvbnN0IHsgdGV4dCwgcGF0aCB9IG9mIG91dHB1dEZpbGVzKSB7XG4gICAgc3dpdGNoIChleHRuYW1lKHBhdGgpKSB7XG4gICAgICBjYXNlICcubWpzJzogLy8gQ29udGFpbnMgdGhlIHNlcnZlciBydW5uYWJsZSBhcHBsaWNhdGlvbiBjb2RlLlxuICAgICAgY2FzZSAnLmNzcyc6IC8vIEdsb2JhbCBzdHlsZXMgZm9yIGNyaXRpY2FsIENTUyBpbmxpbmluZy5cbiAgICAgICAgb3V0cHV0RmlsZXNGb3JXb3JrZXJbcGF0aF0gPSB0ZXh0O1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBjb25zdCB7IHJvdXRlczogYWxsUm91dGVzLCB3YXJuaW5nczogcm91dGVzV2FybmluZ3MgfSA9IGF3YWl0IGdldEFsbFJvdXRlcyhcbiAgICB3b3Jrc3BhY2VSb290LFxuICAgIG91dHB1dEZpbGVzRm9yV29ya2VyLFxuICAgIGRvY3VtZW50LFxuICAgIGFwcFNoZWxsT3B0aW9ucyxcbiAgICBwcmVyZW5kZXJPcHRpb25zLFxuICAgIHZlcmJvc2UsXG4gICk7XG5cbiAgaWYgKHJvdXRlc1dhcm5pbmdzPy5sZW5ndGgpIHtcbiAgICB3YXJuaW5ncy5wdXNoKC4uLnJvdXRlc1dhcm5pbmdzKTtcbiAgfVxuXG4gIGlmIChhbGxSb3V0ZXMuc2l6ZSA8IDEpIHtcbiAgICByZXR1cm4ge1xuICAgICAgZXJyb3JzLFxuICAgICAgd2FybmluZ3MsXG4gICAgICBvdXRwdXQsXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0IHJlbmRlcldvcmtlciA9IG5ldyBQaXNjaW5hKHtcbiAgICBmaWxlbmFtZTogcmVxdWlyZS5yZXNvbHZlKCcuL3JlbmRlci13b3JrZXInKSxcbiAgICBtYXhUaHJlYWRzOiBNYXRoLm1pbihhbGxSb3V0ZXMuc2l6ZSwgbWF4VGhyZWFkcyksXG4gICAgd29ya2VyRGF0YToge1xuICAgICAgd29ya3NwYWNlUm9vdCxcbiAgICAgIG91dHB1dEZpbGVzOiBvdXRwdXRGaWxlc0ZvcldvcmtlcixcbiAgICAgIGlubGluZUNyaXRpY2FsQ3NzLFxuICAgICAgZG9jdW1lbnQsXG4gICAgfSBhcyBSZW5kZXJXb3JrZXJEYXRhLFxuICAgIGV4ZWNBcmd2OiBbXG4gICAgICAnLS1uby13YXJuaW5ncycsIC8vIFN1cHByZXNzIGBFeHBlcmltZW50YWxXYXJuaW5nOiBDdXN0b20gRVNNIExvYWRlcnMgaXMgYW4gZXhwZXJpbWVudGFsIGZlYXR1cmUuLi5gLlxuICAgICAgJy0tbG9hZGVyJyxcbiAgICAgIHBhdGhUb0ZpbGVVUkwoam9pbihfX2Rpcm5hbWUsICdlc20taW4tbWVtb3J5LWZpbGUtbG9hZGVyLmpzJykpLmhyZWYsIC8vIExvYWRlciBjYW5ub3QgYmUgYW4gYWJzb2x1dGUgcGF0aCBvbiBXaW5kb3dzLlxuICAgIF0sXG4gIH0pO1xuXG4gIHRyeSB7XG4gICAgY29uc3QgcmVuZGVyaW5nUHJvbWlzZXM6IFByb21pc2U8dm9pZD5bXSA9IFtdO1xuICAgIGNvbnN0IGFwcFNoZWxsUm91dGUgPSBhcHBTaGVsbE9wdGlvbnMucm91dGUgJiYgcmVtb3ZlTGVhZGluZ1NsYXNoKGFwcFNoZWxsT3B0aW9ucy5yb3V0ZSk7XG5cbiAgICBmb3IgKGNvbnN0IHJvdXRlIG9mIGFsbFJvdXRlcykge1xuICAgICAgY29uc3QgaXNBcHBTaGVsbFJvdXRlID0gYXBwU2hlbGxSb3V0ZSA9PT0gcm91dGU7XG4gICAgICBjb25zdCBzZXJ2ZXJDb250ZXh0OiBTZXJ2ZXJDb250ZXh0ID0gaXNBcHBTaGVsbFJvdXRlID8gJ2FwcC1zaGVsbCcgOiAnc3NnJztcblxuICAgICAgY29uc3QgcmVuZGVyOiBQcm9taXNlPFJlbmRlclJlc3VsdD4gPSByZW5kZXJXb3JrZXIucnVuKHsgcm91dGUsIHNlcnZlckNvbnRleHQgfSk7XG4gICAgICBjb25zdCByZW5kZXJSZXN1bHQ6IFByb21pc2U8dm9pZD4gPSByZW5kZXIudGhlbigoeyBjb250ZW50LCB3YXJuaW5ncywgZXJyb3JzIH0pID0+IHtcbiAgICAgICAgaWYgKGNvbnRlbnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGNvbnN0IG91dFBhdGggPSBpc0FwcFNoZWxsUm91dGUgPyAnaW5kZXguaHRtbCcgOiBwb3NpeC5qb2luKHJvdXRlLCAnaW5kZXguaHRtbCcpO1xuICAgICAgICAgIG91dHB1dFtvdXRQYXRoXSA9IGNvbnRlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAod2FybmluZ3MpIHtcbiAgICAgICAgICB3YXJuaW5ncy5wdXNoKC4uLndhcm5pbmdzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChlcnJvcnMpIHtcbiAgICAgICAgICBlcnJvcnMucHVzaCguLi5lcnJvcnMpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgcmVuZGVyaW5nUHJvbWlzZXMucHVzaChyZW5kZXJSZXN1bHQpO1xuICAgIH1cblxuICAgIGF3YWl0IFByb21pc2UuYWxsKHJlbmRlcmluZ1Byb21pc2VzKTtcbiAgfSBmaW5hbGx5IHtcbiAgICB2b2lkIHJlbmRlcldvcmtlci5kZXN0cm95KCk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGVycm9ycyxcbiAgICB3YXJuaW5ncyxcbiAgICBvdXRwdXQsXG4gIH07XG59XG5cbmNsYXNzIFJvdXRlc1NldCBleHRlbmRzIFNldDxzdHJpbmc+IHtcbiAgb3ZlcnJpZGUgYWRkKHZhbHVlOiBzdHJpbmcpOiB0aGlzIHtcbiAgICByZXR1cm4gc3VwZXIuYWRkKHJlbW92ZUxlYWRpbmdTbGFzaCh2YWx1ZSkpO1xuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldEFsbFJvdXRlcyhcbiAgd29ya3NwYWNlUm9vdDogc3RyaW5nLFxuICBvdXRwdXRGaWxlc0ZvcldvcmtlcjogUmVjb3JkPHN0cmluZywgc3RyaW5nPixcbiAgZG9jdW1lbnQ6IHN0cmluZyxcbiAgYXBwU2hlbGxPcHRpb25zOiBBcHBTaGVsbE9wdGlvbnMsXG4gIHByZXJlbmRlck9wdGlvbnM6IFByZXJlbmRlck9wdGlvbnMsXG4gIHZlcmJvc2U6IGJvb2xlYW4sXG4pOiBQcm9taXNlPHsgcm91dGVzOiBTZXQ8c3RyaW5nPjsgd2FybmluZ3M/OiBzdHJpbmdbXSB9PiB7XG4gIGNvbnN0IHsgcm91dGVzRmlsZSwgZGlzY292ZXJSb3V0ZXMgfSA9IHByZXJlbmRlck9wdGlvbnM7XG4gIGNvbnN0IHJvdXRlcyA9IG5ldyBSb3V0ZXNTZXQoKTtcblxuICBjb25zdCB7IHJvdXRlOiBhcHBTaGVsbFJvdXRlIH0gPSBhcHBTaGVsbE9wdGlvbnM7XG4gIGlmIChhcHBTaGVsbFJvdXRlICE9PSB1bmRlZmluZWQpIHtcbiAgICByb3V0ZXMuYWRkKGFwcFNoZWxsUm91dGUpO1xuICB9XG5cbiAgaWYgKHJvdXRlc0ZpbGUpIHtcbiAgICBjb25zdCByb3V0ZXNGcm9tRmlsZSA9IChhd2FpdCByZWFkRmlsZShyb3V0ZXNGaWxlLCAndXRmOCcpKS5zcGxpdCgvXFxyP1xcbi8pO1xuICAgIGZvciAoY29uc3Qgcm91dGUgb2Ygcm91dGVzRnJvbUZpbGUpIHtcbiAgICAgIHJvdXRlcy5hZGQocm91dGUudHJpbSgpKTtcbiAgICB9XG4gIH1cblxuICBpZiAoIWRpc2NvdmVyUm91dGVzKSB7XG4gICAgcmV0dXJuIHsgcm91dGVzIH07XG4gIH1cblxuICBjb25zdCByZW5kZXJXb3JrZXIgPSBuZXcgUGlzY2luYSh7XG4gICAgZmlsZW5hbWU6IHJlcXVpcmUucmVzb2x2ZSgnLi9yb3V0ZXMtZXh0cmFjdG9yLXdvcmtlcicpLFxuICAgIG1heFRocmVhZHM6IDEsXG4gICAgd29ya2VyRGF0YToge1xuICAgICAgd29ya3NwYWNlUm9vdCxcbiAgICAgIG91dHB1dEZpbGVzOiBvdXRwdXRGaWxlc0ZvcldvcmtlcixcbiAgICAgIGRvY3VtZW50LFxuICAgICAgdmVyYm9zZSxcbiAgICB9IGFzIFJvdXRlc0V4dHJhY3RvcldvcmtlckRhdGEsXG4gICAgZXhlY0FyZ3Y6IFtcbiAgICAgICctLW5vLXdhcm5pbmdzJywgLy8gU3VwcHJlc3MgYEV4cGVyaW1lbnRhbFdhcm5pbmc6IEN1c3RvbSBFU00gTG9hZGVycyBpcyBhbiBleHBlcmltZW50YWwgZmVhdHVyZS4uLmAuXG4gICAgICAnLS1sb2FkZXInLFxuICAgICAgcGF0aFRvRmlsZVVSTChqb2luKF9fZGlybmFtZSwgJ2VzbS1pbi1tZW1vcnktZmlsZS1sb2FkZXIuanMnKSkuaHJlZiwgLy8gTG9hZGVyIGNhbm5vdCBiZSBhbiBhYnNvbHV0ZSBwYXRoIG9uIFdpbmRvd3MuXG4gICAgXSxcbiAgfSk7XG5cbiAgY29uc3QgeyByb3V0ZXM6IGV4dHJhY3RlZFJvdXRlcywgd2FybmluZ3MgfTogUm91dGVyc0V4dHJhY3RvcldvcmtlclJlc3VsdCA9IGF3YWl0IHJlbmRlcldvcmtlclxuICAgIC5ydW4oe30pXG4gICAgLmZpbmFsbHkoKCkgPT4gdm9pZCByZW5kZXJXb3JrZXIuZGVzdHJveSgpKTtcblxuICBmb3IgKGNvbnN0IHJvdXRlIG9mIGV4dHJhY3RlZFJvdXRlcykge1xuICAgIHJvdXRlcy5hZGQocm91dGUpO1xuICB9XG5cbiAgcmV0dXJuIHsgcm91dGVzLCB3YXJuaW5ncyB9O1xufVxuXG5mdW5jdGlvbiByZW1vdmVMZWFkaW5nU2xhc2godmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiB2YWx1ZS5jaGFyQXQoMCkgPT09ICcvJyA/IHZhbHVlLnNsaWNlKDEpIDogdmFsdWU7XG59XG4iXX0=
@@ -5,8 +5,7 @@
5
5
  * Use of this source code is governed by an MIT-style license that can be
6
6
  * found in the LICENSE file at https://angular.io/license
7
7
  */
8
- import type { ApplicationRef, Type } from '@angular/core';
9
- import type { renderApplication, renderModule, ɵSERVER_CONTEXT } from '@angular/platform-server';
8
+ import { MainServerBundleExports } from './main-bundle-exports';
10
9
  export interface RenderOptions {
11
10
  route: string;
12
11
  serverContext: ServerContext;
@@ -21,18 +20,7 @@ export interface RenderResult {
21
20
  content?: string;
22
21
  }
23
22
  export type ServerContext = 'app-shell' | 'ssg' | 'ssr';
24
- interface MainServerBundleExports {
25
- /** An internal token that allows providing extra information about the server context. */
26
- ɵSERVER_CONTEXT: typeof ɵSERVER_CONTEXT;
27
- /** Render an NgModule application. */
28
- renderModule: typeof renderModule;
29
- /** Method to render a standalone application. */
30
- renderApplication: typeof renderApplication;
31
- /** Standalone application bootstrapping function. */
32
- default: (() => Promise<ApplicationRef>) | Type<unknown>;
33
- }
34
23
  /**
35
24
  * Renders each route in routes and writes them to <outputPath>/<route>/index.html.
36
25
  */
37
26
  export declare function renderPage({ route, serverContext, document, inlineCriticalCss, outputFiles, loadBundle, }: RenderOptions): Promise<RenderResult>;
38
- export {};
@@ -57,7 +57,7 @@ async function renderPage({ route, serverContext, document, inlineCriticalCss, o
57
57
  }
58
58
  exports.renderPage = renderPage;
59
59
  function isBootstrapFn(value) {
60
- // We can differentiate between a module and a bootstrap function by reading `cmp`:
60
+ // We can differentiate between a module and a bootstrap function by reading compiler-generated `ɵmod` static property:
61
61
  return typeof value === 'function' && !('ɵmod' in value);
62
62
  }
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVuZGVyLXBhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyX2RldmtpdC9idWlsZF9hbmd1bGFyL3NyYy91dGlscy9zZXJ2ZXItcmVuZGVyaW5nL3JlbmRlci1wYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7OztBQUlILHlDQUFxQztBQUNyQywyRUFBK0U7QUFDL0UsMENBQTRDO0FBaUM1Qzs7R0FFRztBQUNJLEtBQUssVUFBVSxVQUFVLENBQUMsRUFDL0IsS0FBSyxFQUNMLGFBQWEsRUFDYixRQUFRLEVBQ1IsaUJBQWlCLEVBQ2pCLFdBQVcsRUFDWCxVQUFVLEdBQUcsd0JBQWEsR0FDWjtJQUNkLE1BQU0sRUFDSixPQUFPLEVBQUUsc0JBQXNCLEVBQy9CLGVBQWUsRUFDZixZQUFZLEVBQ1osaUJBQWlCLEdBQ2xCLEdBQUcsTUFBTSxVQUFVLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUUxQyxNQUFNLGlCQUFpQixHQUFxQjtRQUMxQztZQUNFLE9BQU8sRUFBRSxlQUFlO1lBQ3hCLFFBQVEsRUFBRSxhQUFhO1NBQ3hCO0tBQ0YsQ0FBQztJQUVGLElBQUksSUFBd0IsQ0FBQztJQUU3QixJQUFJLGFBQWEsQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFO1FBQ3pDLElBQUksR0FBRyxNQUFNLGlCQUFpQixDQUFDLHNCQUFzQixFQUFFO1lBQ3JELFFBQVE7WUFDUixHQUFHLEVBQUUsS0FBSztZQUNWLGlCQUFpQjtTQUNsQixDQUFDLENBQUM7S0FDSjtTQUFNO1FBQ0wsSUFBSSxHQUFHLE1BQU0sWUFBWSxDQUFDLHNCQUFzQixFQUFFO1lBQ2hELFFBQVE7WUFDUixHQUFHLEVBQUUsS0FBSztZQUNWLGNBQWMsRUFBRSxpQkFBaUI7U0FDbEMsQ0FBQyxDQUFDO0tBQ0o7SUFFRCxJQUFJLGlCQUFpQixFQUFFO1FBQ3JCLE1BQU0sMEJBQTBCLEdBQUcsSUFBSSxnREFBMEIsQ0FBQztZQUNoRSxNQUFNLEVBQUUsS0FBSztZQUNiLFNBQVMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEVBQUU7Z0JBQzVCLFFBQVEsR0FBRyxJQUFBLG9CQUFRLEVBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzlCLE1BQU0sT0FBTyxHQUFHLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDdEMsSUFBSSxPQUFPLEtBQUssU0FBUyxFQUFFO29CQUN6QixNQUFNLElBQUksS0FBSyxDQUFDLCtCQUErQixRQUFRLEVBQUUsQ0FBQyxDQUFDO2lCQUM1RDtnQkFFRCxPQUFPLE9BQU8sQ0FBQztZQUNqQixDQUFDO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsT0FBTywwQkFBMEIsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7S0FDckU7SUFFRCxPQUFPO1FBQ0wsT0FBTyxFQUFFLElBQUk7S0FDZCxDQUFDO0FBQ0osQ0FBQztBQTFERCxnQ0EwREM7QUFFRCxTQUFTLGFBQWEsQ0FBQyxLQUFjO0lBQ25DLG1GQUFtRjtJQUNuRixPQUFPLE9BQU8sS0FBSyxLQUFLLFVBQVUsSUFBSSxDQUFDLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxDQUFDO0FBQzNELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBBcHBsaWNhdGlvblJlZiwgU3RhdGljUHJvdmlkZXIsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHsgcmVuZGVyQXBwbGljYXRpb24sIHJlbmRlck1vZHVsZSwgybVTRVJWRVJfQ09OVEVYVCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLXNlcnZlcic7XG5pbXBvcnQgeyBiYXNlbmFtZSB9IGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQgeyBJbmxpbmVDcml0aWNhbENzc1Byb2Nlc3NvciB9IGZyb20gJy4uL2luZGV4LWZpbGUvaW5saW5lLWNyaXRpY2FsLWNzcyc7XG5pbXBvcnQgeyBsb2FkRXNtTW9kdWxlIH0gZnJvbSAnLi4vbG9hZC1lc20nO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlbmRlck9wdGlvbnMge1xuICByb3V0ZTogc3RyaW5nO1xuICBzZXJ2ZXJDb250ZXh0OiBTZXJ2ZXJDb250ZXh0O1xuICBvdXRwdXRGaWxlczogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgZG9jdW1lbnQ6IHN0cmluZztcbiAgaW5saW5lQ3JpdGljYWxDc3M/OiBib29sZWFuO1xuICBsb2FkQnVuZGxlPzogKHBhdGg6IHN0cmluZykgPT4gUHJvbWlzZTxNYWluU2VydmVyQnVuZGxlRXhwb3J0cz47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVuZGVyUmVzdWx0IHtcbiAgZXJyb3JzPzogc3RyaW5nW107XG4gIHdhcm5pbmdzPzogc3RyaW5nW107XG4gIGNvbnRlbnQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIFNlcnZlckNvbnRleHQgPSAnYXBwLXNoZWxsJyB8ICdzc2cnIHwgJ3Nzcic7XG5cbmludGVyZmFjZSBNYWluU2VydmVyQnVuZGxlRXhwb3J0cyB7XG4gIC8qKiBBbiBpbnRlcm5hbCB0b2tlbiB0aGF0IGFsbG93cyBwcm92aWRpbmcgZXh0cmEgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHNlcnZlciBjb250ZXh0LiAqL1xuICDJtVNFUlZFUl9DT05URVhUOiB0eXBlb2YgybVTRVJWRVJfQ09OVEVYVDtcblxuICAvKiogUmVuZGVyIGFuIE5nTW9kdWxlIGFwcGxpY2F0aW9uLiAqL1xuICByZW5kZXJNb2R1bGU6IHR5cGVvZiByZW5kZXJNb2R1bGU7XG5cbiAgLyoqIE1ldGhvZCB0byByZW5kZXIgYSBzdGFuZGFsb25lIGFwcGxpY2F0aW9uLiAqL1xuICByZW5kZXJBcHBsaWNhdGlvbjogdHlwZW9mIHJlbmRlckFwcGxpY2F0aW9uO1xuXG4gIC8qKiBTdGFuZGFsb25lIGFwcGxpY2F0aW9uIGJvb3RzdHJhcHBpbmcgZnVuY3Rpb24uICovXG4gIGRlZmF1bHQ6ICgoKSA9PiBQcm9taXNlPEFwcGxpY2F0aW9uUmVmPikgfCBUeXBlPHVua25vd24+O1xufVxuXG4vKipcbiAqIFJlbmRlcnMgZWFjaCByb3V0ZSBpbiByb3V0ZXMgYW5kIHdyaXRlcyB0aGVtIHRvIDxvdXRwdXRQYXRoPi88cm91dGU+L2luZGV4Lmh0bWwuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZW5kZXJQYWdlKHtcbiAgcm91dGUsXG4gIHNlcnZlckNvbnRleHQsXG4gIGRvY3VtZW50LFxuICBpbmxpbmVDcml0aWNhbENzcyxcbiAgb3V0cHV0RmlsZXMsXG4gIGxvYWRCdW5kbGUgPSBsb2FkRXNtTW9kdWxlLFxufTogUmVuZGVyT3B0aW9ucyk6IFByb21pc2U8UmVuZGVyUmVzdWx0PiB7XG4gIGNvbnN0IHtcbiAgICBkZWZhdWx0OiBib290c3RyYXBBcHBGbk9yTW9kdWxlLFxuICAgIMm1U0VSVkVSX0NPTlRFWFQsXG4gICAgcmVuZGVyTW9kdWxlLFxuICAgIHJlbmRlckFwcGxpY2F0aW9uLFxuICB9ID0gYXdhaXQgbG9hZEJ1bmRsZSgnLi9tYWluLnNlcnZlci5tanMnKTtcblxuICBjb25zdCBwbGF0Zm9ybVByb3ZpZGVyczogU3RhdGljUHJvdmlkZXJbXSA9IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiDJtVNFUlZFUl9DT05URVhULFxuICAgICAgdXNlVmFsdWU6IHNlcnZlckNvbnRleHQsXG4gICAgfSxcbiAgXTtcblxuICBsZXQgaHRtbDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIGlmIChpc0Jvb3RzdHJhcEZuKGJvb3RzdHJhcEFwcEZuT3JNb2R1bGUpKSB7XG4gICAgaHRtbCA9IGF3YWl0IHJlbmRlckFwcGxpY2F0aW9uKGJvb3RzdHJhcEFwcEZuT3JNb2R1bGUsIHtcbiAgICAgIGRvY3VtZW50LFxuICAgICAgdXJsOiByb3V0ZSxcbiAgICAgIHBsYXRmb3JtUHJvdmlkZXJzLFxuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIGh0bWwgPSBhd2FpdCByZW5kZXJNb2R1bGUoYm9vdHN0cmFwQXBwRm5Pck1vZHVsZSwge1xuICAgICAgZG9jdW1lbnQsXG4gICAgICB1cmw6IHJvdXRlLFxuICAgICAgZXh0cmFQcm92aWRlcnM6IHBsYXRmb3JtUHJvdmlkZXJzLFxuICAgIH0pO1xuICB9XG5cbiAgaWYgKGlubGluZUNyaXRpY2FsQ3NzKSB7XG4gICAgY29uc3QgaW5saW5lQ3JpdGljYWxDc3NQcm9jZXNzb3IgPSBuZXcgSW5saW5lQ3JpdGljYWxDc3NQcm9jZXNzb3Ioe1xuICAgICAgbWluaWZ5OiBmYWxzZSwgLy8gQ1NTIGhhcyBhbHJlYWR5IGJlZW4gbWluaWZpZWQgZHVyaW5nIHRoZSBidWlsZC5cbiAgICAgIHJlYWRBc3NldDogYXN5bmMgKGZpbGVQYXRoKSA9PiB7XG4gICAgICAgIGZpbGVQYXRoID0gYmFzZW5hbWUoZmlsZVBhdGgpO1xuICAgICAgICBjb25zdCBjb250ZW50ID0gb3V0cHV0RmlsZXNbZmlsZVBhdGhdO1xuICAgICAgICBpZiAoY29udGVudCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBPdXRwdXQgZmlsZSBkb2VzIG5vdCBleGlzdDogJHtmaWxlUGF0aH1gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb250ZW50O1xuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBpbmxpbmVDcml0aWNhbENzc1Byb2Nlc3Nvci5wcm9jZXNzKGh0bWwsIHsgb3V0cHV0UGF0aDogJycgfSk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGNvbnRlbnQ6IGh0bWwsXG4gIH07XG59XG5cbmZ1bmN0aW9uIGlzQm9vdHN0cmFwRm4odmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyAoKSA9PiBQcm9taXNlPEFwcGxpY2F0aW9uUmVmPiB7XG4gIC8vIFdlIGNhbiBkaWZmZXJlbnRpYXRlIGJldHdlZW4gYSBtb2R1bGUgYW5kIGEgYm9vdHN0cmFwIGZ1bmN0aW9uIGJ5IHJlYWRpbmcgYGNtcGA6XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbicgJiYgISgnybVtb2QnIGluIHZhbHVlKTtcbn1cbiJdfQ==
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVuZGVyLXBhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyX2RldmtpdC9idWlsZF9hbmd1bGFyL3NyYy91dGlscy9zZXJ2ZXItcmVuZGVyaW5nL3JlbmRlci1wYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7OztBQUdILHlDQUFxQztBQUNyQywyRUFBK0U7QUFDL0UsMENBQTRDO0FBb0I1Qzs7R0FFRztBQUNJLEtBQUssVUFBVSxVQUFVLENBQUMsRUFDL0IsS0FBSyxFQUNMLGFBQWEsRUFDYixRQUFRLEVBQ1IsaUJBQWlCLEVBQ2pCLFdBQVcsRUFDWCxVQUFVLEdBQUcsd0JBQWEsR0FDWjtJQUNkLE1BQU0sRUFDSixPQUFPLEVBQUUsc0JBQXNCLEVBQy9CLGVBQWUsRUFDZixZQUFZLEVBQ1osaUJBQWlCLEdBQ2xCLEdBQUcsTUFBTSxVQUFVLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUUxQyxNQUFNLGlCQUFpQixHQUFxQjtRQUMxQztZQUNFLE9BQU8sRUFBRSxlQUFlO1lBQ3hCLFFBQVEsRUFBRSxhQUFhO1NBQ3hCO0tBQ0YsQ0FBQztJQUVGLElBQUksSUFBd0IsQ0FBQztJQUU3QixJQUFJLGFBQWEsQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFO1FBQ3pDLElBQUksR0FBRyxNQUFNLGlCQUFpQixDQUFDLHNCQUFzQixFQUFFO1lBQ3JELFFBQVE7WUFDUixHQUFHLEVBQUUsS0FBSztZQUNWLGlCQUFpQjtTQUNsQixDQUFDLENBQUM7S0FDSjtTQUFNO1FBQ0wsSUFBSSxHQUFHLE1BQU0sWUFBWSxDQUFDLHNCQUFzQixFQUFFO1lBQ2hELFFBQVE7WUFDUixHQUFHLEVBQUUsS0FBSztZQUNWLGNBQWMsRUFBRSxpQkFBaUI7U0FDbEMsQ0FBQyxDQUFDO0tBQ0o7SUFFRCxJQUFJLGlCQUFpQixFQUFFO1FBQ3JCLE1BQU0sMEJBQTBCLEdBQUcsSUFBSSxnREFBMEIsQ0FBQztZQUNoRSxNQUFNLEVBQUUsS0FBSztZQUNiLFNBQVMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEVBQUU7Z0JBQzVCLFFBQVEsR0FBRyxJQUFBLG9CQUFRLEVBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzlCLE1BQU0sT0FBTyxHQUFHLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDdEMsSUFBSSxPQUFPLEtBQUssU0FBUyxFQUFFO29CQUN6QixNQUFNLElBQUksS0FBSyxDQUFDLCtCQUErQixRQUFRLEVBQUUsQ0FBQyxDQUFDO2lCQUM1RDtnQkFFRCxPQUFPLE9BQU8sQ0FBQztZQUNqQixDQUFDO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsT0FBTywwQkFBMEIsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7S0FDckU7SUFFRCxPQUFPO1FBQ0wsT0FBTyxFQUFFLElBQUk7S0FDZCxDQUFDO0FBQ0osQ0FBQztBQTFERCxnQ0EwREM7QUFFRCxTQUFTLGFBQWEsQ0FBQyxLQUFjO0lBQ25DLHVIQUF1SDtJQUN2SCxPQUFPLE9BQU8sS0FBSyxLQUFLLFVBQVUsSUFBSSxDQUFDLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxDQUFDO0FBQzNELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBBcHBsaWNhdGlvblJlZiwgU3RhdGljUHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGJhc2VuYW1lIH0gZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCB7IElubGluZUNyaXRpY2FsQ3NzUHJvY2Vzc29yIH0gZnJvbSAnLi4vaW5kZXgtZmlsZS9pbmxpbmUtY3JpdGljYWwtY3NzJztcbmltcG9ydCB7IGxvYWRFc21Nb2R1bGUgfSBmcm9tICcuLi9sb2FkLWVzbSc7XG5pbXBvcnQgeyBNYWluU2VydmVyQnVuZGxlRXhwb3J0cyB9IGZyb20gJy4vbWFpbi1idW5kbGUtZXhwb3J0cyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVuZGVyT3B0aW9ucyB7XG4gIHJvdXRlOiBzdHJpbmc7XG4gIHNlcnZlckNvbnRleHQ6IFNlcnZlckNvbnRleHQ7XG4gIG91dHB1dEZpbGVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICBkb2N1bWVudDogc3RyaW5nO1xuICBpbmxpbmVDcml0aWNhbENzcz86IGJvb2xlYW47XG4gIGxvYWRCdW5kbGU/OiAocGF0aDogc3RyaW5nKSA9PiBQcm9taXNlPE1haW5TZXJ2ZXJCdW5kbGVFeHBvcnRzPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZW5kZXJSZXN1bHQge1xuICBlcnJvcnM/OiBzdHJpbmdbXTtcbiAgd2FybmluZ3M/OiBzdHJpbmdbXTtcbiAgY29udGVudD86IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgU2VydmVyQ29udGV4dCA9ICdhcHAtc2hlbGwnIHwgJ3NzZycgfCAnc3NyJztcblxuLyoqXG4gKiBSZW5kZXJzIGVhY2ggcm91dGUgaW4gcm91dGVzIGFuZCB3cml0ZXMgdGhlbSB0byA8b3V0cHV0UGF0aD4vPHJvdXRlPi9pbmRleC5odG1sLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVuZGVyUGFnZSh7XG4gIHJvdXRlLFxuICBzZXJ2ZXJDb250ZXh0LFxuICBkb2N1bWVudCxcbiAgaW5saW5lQ3JpdGljYWxDc3MsXG4gIG91dHB1dEZpbGVzLFxuICBsb2FkQnVuZGxlID0gbG9hZEVzbU1vZHVsZSxcbn06IFJlbmRlck9wdGlvbnMpOiBQcm9taXNlPFJlbmRlclJlc3VsdD4ge1xuICBjb25zdCB7XG4gICAgZGVmYXVsdDogYm9vdHN0cmFwQXBwRm5Pck1vZHVsZSxcbiAgICDJtVNFUlZFUl9DT05URVhULFxuICAgIHJlbmRlck1vZHVsZSxcbiAgICByZW5kZXJBcHBsaWNhdGlvbixcbiAgfSA9IGF3YWl0IGxvYWRCdW5kbGUoJy4vbWFpbi5zZXJ2ZXIubWpzJyk7XG5cbiAgY29uc3QgcGxhdGZvcm1Qcm92aWRlcnM6IFN0YXRpY1Byb3ZpZGVyW10gPSBbXG4gICAge1xuICAgICAgcHJvdmlkZTogybVTRVJWRVJfQ09OVEVYVCxcbiAgICAgIHVzZVZhbHVlOiBzZXJ2ZXJDb250ZXh0LFxuICAgIH0sXG4gIF07XG5cbiAgbGV0IGh0bWw6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBpZiAoaXNCb290c3RyYXBGbihib290c3RyYXBBcHBGbk9yTW9kdWxlKSkge1xuICAgIGh0bWwgPSBhd2FpdCByZW5kZXJBcHBsaWNhdGlvbihib290c3RyYXBBcHBGbk9yTW9kdWxlLCB7XG4gICAgICBkb2N1bWVudCxcbiAgICAgIHVybDogcm91dGUsXG4gICAgICBwbGF0Zm9ybVByb3ZpZGVycyxcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBodG1sID0gYXdhaXQgcmVuZGVyTW9kdWxlKGJvb3RzdHJhcEFwcEZuT3JNb2R1bGUsIHtcbiAgICAgIGRvY3VtZW50LFxuICAgICAgdXJsOiByb3V0ZSxcbiAgICAgIGV4dHJhUHJvdmlkZXJzOiBwbGF0Zm9ybVByb3ZpZGVycyxcbiAgICB9KTtcbiAgfVxuXG4gIGlmIChpbmxpbmVDcml0aWNhbENzcykge1xuICAgIGNvbnN0IGlubGluZUNyaXRpY2FsQ3NzUHJvY2Vzc29yID0gbmV3IElubGluZUNyaXRpY2FsQ3NzUHJvY2Vzc29yKHtcbiAgICAgIG1pbmlmeTogZmFsc2UsIC8vIENTUyBoYXMgYWxyZWFkeSBiZWVuIG1pbmlmaWVkIGR1cmluZyB0aGUgYnVpbGQuXG4gICAgICByZWFkQXNzZXQ6IGFzeW5jIChmaWxlUGF0aCkgPT4ge1xuICAgICAgICBmaWxlUGF0aCA9IGJhc2VuYW1lKGZpbGVQYXRoKTtcbiAgICAgICAgY29uc3QgY29udGVudCA9IG91dHB1dEZpbGVzW2ZpbGVQYXRoXTtcbiAgICAgICAgaWYgKGNvbnRlbnQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgT3V0cHV0IGZpbGUgZG9lcyBub3QgZXhpc3Q6ICR7ZmlsZVBhdGh9YCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY29udGVudDtcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gaW5saW5lQ3JpdGljYWxDc3NQcm9jZXNzb3IucHJvY2VzcyhodG1sLCB7IG91dHB1dFBhdGg6ICcnIH0pO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBjb250ZW50OiBodG1sLFxuICB9O1xufVxuXG5mdW5jdGlvbiBpc0Jvb3RzdHJhcEZuKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgKCkgPT4gUHJvbWlzZTxBcHBsaWNhdGlvblJlZj4ge1xuICAvLyBXZSBjYW4gZGlmZmVyZW50aWF0ZSBiZXR3ZWVuIGEgbW9kdWxlIGFuZCBhIGJvb3RzdHJhcCBmdW5jdGlvbiBieSByZWFkaW5nIGNvbXBpbGVyLWdlbmVyYXRlZCBgybVtb2RgIHN0YXRpYyBwcm9wZXJ0eTpcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJyAmJiAhKCfJtW1vZCcgaW4gdmFsdWUpO1xufVxuIl19
@@ -5,9 +5,9 @@
5
5
  * Use of this source code is governed by an MIT-style license that can be
6
6
  * found in the LICENSE file at https://angular.io/license
7
7
  */
8
+ import type { ESMInMemoryFileLoaderWorkerData } from './esm-in-memory-file-loader';
8
9
  import { RenderResult, ServerContext } from './render-page';
9
- export interface WorkerData {
10
- outputFiles: Record<string, string>;
10
+ export interface RenderWorkerData extends ESMInMemoryFileLoaderWorkerData {
11
11
  document: string;
12
12
  inlineCriticalCss?: boolean;
13
13
  }
@@ -17,4 +17,4 @@ function default_1(options) {
17
17
  return (0, render_page_1.renderPage)({ ...options, outputFiles, document, inlineCriticalCss });
18
18
  }
19
19
  exports.default = default_1;
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVuZGVyLXdvcmtlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXJfZGV2a2l0L2J1aWxkX2FuZ3VsYXIvc3JjL3V0aWxzL3NlcnZlci1yZW5kZXJpbmcvcmVuZGVyLXdvcmtlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOztBQUVILDZEQUFpRDtBQUNqRCwrQ0FBd0U7QUFheEU7O0dBRUc7QUFDSCxNQUFNLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxHQUFHLGdDQUF3QixDQUFDO0FBRTlFLG1CQUF5QixPQUFzQjtJQUM3QyxPQUFPLElBQUEsd0JBQVUsRUFBQyxFQUFFLEdBQUcsT0FBTyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO0FBQzlFLENBQUM7QUFGRCw0QkFFQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgeyB3b3JrZXJEYXRhIH0gZnJvbSAnbm9kZTp3b3JrZXJfdGhyZWFkcyc7XG5pbXBvcnQgeyBSZW5kZXJSZXN1bHQsIFNlcnZlckNvbnRleHQsIHJlbmRlclBhZ2UgfSBmcm9tICcuL3JlbmRlci1wYWdlJztcblxuZXhwb3J0IGludGVyZmFjZSBXb3JrZXJEYXRhIHtcbiAgb3V0cHV0RmlsZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIGRvY3VtZW50OiBzdHJpbmc7XG4gIGlubGluZUNyaXRpY2FsQ3NzPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZW5kZXJPcHRpb25zIHtcbiAgcm91dGU6IHN0cmluZztcbiAgc2VydmVyQ29udGV4dDogU2VydmVyQ29udGV4dDtcbn1cblxuLyoqXG4gKiBUaGlzIGlzIHBhc3NlZCBhcyB3b3JrZXJEYXRhIHdoZW4gc2V0dGluZyB1cCB0aGUgd29ya2VyIHZpYSB0aGUgYHBpc2NpbmFgIHBhY2thZ2UuXG4gKi9cbmNvbnN0IHsgb3V0cHV0RmlsZXMsIGRvY3VtZW50LCBpbmxpbmVDcml0aWNhbENzcyB9ID0gd29ya2VyRGF0YSBhcyBXb3JrZXJEYXRhO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiAob3B0aW9uczogUmVuZGVyT3B0aW9ucyk6IFByb21pc2U8UmVuZGVyUmVzdWx0PiB7XG4gIHJldHVybiByZW5kZXJQYWdlKHsgLi4ub3B0aW9ucywgb3V0cHV0RmlsZXMsIGRvY3VtZW50LCBpbmxpbmVDcml0aWNhbENzcyB9KTtcbn1cbiJdfQ==
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVuZGVyLXdvcmtlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXJfZGV2a2l0L2J1aWxkX2FuZ3VsYXIvc3JjL3V0aWxzL3NlcnZlci1yZW5kZXJpbmcvcmVuZGVyLXdvcmtlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOztBQUVILDZEQUFpRDtBQUVqRCwrQ0FBd0U7QUFZeEU7O0dBRUc7QUFDSCxNQUFNLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxHQUFHLGdDQUE4QixDQUFDO0FBRXBGLG1CQUF5QixPQUFzQjtJQUM3QyxPQUFPLElBQUEsd0JBQVUsRUFBQyxFQUFFLEdBQUcsT0FBTyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO0FBQzlFLENBQUM7QUFGRCw0QkFFQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgeyB3b3JrZXJEYXRhIH0gZnJvbSAnbm9kZTp3b3JrZXJfdGhyZWFkcyc7XG5pbXBvcnQgdHlwZSB7IEVTTUluTWVtb3J5RmlsZUxvYWRlcldvcmtlckRhdGEgfSBmcm9tICcuL2VzbS1pbi1tZW1vcnktZmlsZS1sb2FkZXInO1xuaW1wb3J0IHsgUmVuZGVyUmVzdWx0LCBTZXJ2ZXJDb250ZXh0LCByZW5kZXJQYWdlIH0gZnJvbSAnLi9yZW5kZXItcGFnZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVuZGVyV29ya2VyRGF0YSBleHRlbmRzIEVTTUluTWVtb3J5RmlsZUxvYWRlcldvcmtlckRhdGEge1xuICBkb2N1bWVudDogc3RyaW5nO1xuICBpbmxpbmVDcml0aWNhbENzcz86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVuZGVyT3B0aW9ucyB7XG4gIHJvdXRlOiBzdHJpbmc7XG4gIHNlcnZlckNvbnRleHQ6IFNlcnZlckNvbnRleHQ7XG59XG5cbi8qKlxuICogVGhpcyBpcyBwYXNzZWQgYXMgd29ya2VyRGF0YSB3aGVuIHNldHRpbmcgdXAgdGhlIHdvcmtlciB2aWEgdGhlIGBwaXNjaW5hYCBwYWNrYWdlLlxuICovXG5jb25zdCB7IG91dHB1dEZpbGVzLCBkb2N1bWVudCwgaW5saW5lQ3JpdGljYWxDc3MgfSA9IHdvcmtlckRhdGEgYXMgUmVuZGVyV29ya2VyRGF0YTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gKG9wdGlvbnM6IFJlbmRlck9wdGlvbnMpOiBQcm9taXNlPFJlbmRlclJlc3VsdD4ge1xuICByZXR1cm4gcmVuZGVyUGFnZSh7IC4uLm9wdGlvbnMsIG91dHB1dEZpbGVzLCBkb2N1bWVudCwgaW5saW5lQ3JpdGljYWxDc3MgfSk7XG59XG4iXX0=
@@ -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 type { ESMInMemoryFileLoaderWorkerData } from './esm-in-memory-file-loader';
9
+ export interface RoutesExtractorWorkerData extends ESMInMemoryFileLoaderWorkerData {
10
+ document: string;
11
+ verbose: boolean;
12
+ }
13
+ export interface RoutersExtractorWorkerResult {
14
+ routes: string[];
15
+ warnings?: string[];
16
+ }
17
+ export default function (): Promise<RoutersExtractorWorkerResult>;
@@ -0,0 +1,47 @@
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
+ const node_worker_threads_1 = require("node:worker_threads");
11
+ const load_esm_1 = require("../load-esm");
12
+ /**
13
+ * This is passed as workerData when setting up the worker via the `piscina` package.
14
+ */
15
+ const { document, verbose } = node_worker_threads_1.workerData;
16
+ async function default_1() {
17
+ const { default: bootstrapAppFnOrModule, extractRoutes } = await (0, load_esm_1.loadEsmModule)('./main.server.mjs');
18
+ const skippedRedirects = [];
19
+ const skippedOthers = [];
20
+ const routes = [];
21
+ for await (const { route, success, redirect } of extractRoutes(bootstrapAppFnOrModule, document)) {
22
+ if (success) {
23
+ routes.push(route);
24
+ continue;
25
+ }
26
+ if (redirect) {
27
+ skippedRedirects.push(route);
28
+ }
29
+ else {
30
+ skippedOthers.push(route);
31
+ }
32
+ }
33
+ if (!verbose) {
34
+ return { routes };
35
+ }
36
+ let warnings;
37
+ if (skippedOthers.length) {
38
+ (warnings ??= []).push('The following routes were skipped from prerendering because they contain routes with dynamic parameters:\n' +
39
+ skippedOthers.join('\n'));
40
+ }
41
+ if (skippedRedirects.length) {
42
+ (warnings ??= []).push('The following routes were skipped from prerendering because they contain redirects:\n', skippedRedirects.join('\n'));
43
+ }
44
+ return { routes, warnings };
45
+ }
46
+ exports.default = default_1;
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVzLWV4dHJhY3Rvci13b3JrZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyX2RldmtpdC9idWlsZF9hbmd1bGFyL3NyYy91dGlscy9zZXJ2ZXItcmVuZGVyaW5nL3JvdXRlcy1leHRyYWN0b3Itd29ya2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7O0FBRUgsNkRBQWlEO0FBQ2pELDBDQUE0QztBQWM1Qzs7R0FFRztBQUNILE1BQU0sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLEdBQUcsZ0NBQXVDLENBQUM7QUFFdkQsS0FBSztJQUNsQixNQUFNLEVBQUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLGFBQWEsRUFBRSxHQUN0RCxNQUFNLElBQUEsd0JBQWEsRUFBMEIsbUJBQW1CLENBQUMsQ0FBQztJQUVwRSxNQUFNLGdCQUFnQixHQUFhLEVBQUUsQ0FBQztJQUN0QyxNQUFNLGFBQWEsR0FBYSxFQUFFLENBQUM7SUFDbkMsTUFBTSxNQUFNLEdBQWEsRUFBRSxDQUFDO0lBRTVCLElBQUksS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJLGFBQWEsQ0FDNUQsc0JBQXNCLEVBQ3RCLFFBQVEsQ0FDVCxFQUFFO1FBQ0QsSUFBSSxPQUFPLEVBQUU7WUFDWCxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ25CLFNBQVM7U0FDVjtRQUVELElBQUksUUFBUSxFQUFFO1lBQ1osZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzlCO2FBQU07WUFDTCxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzNCO0tBQ0Y7SUFFRCxJQUFJLENBQUMsT0FBTyxFQUFFO1FBQ1osT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDO0tBQ25CO0lBRUQsSUFBSSxRQUE4QixDQUFDO0lBQ25DLElBQUksYUFBYSxDQUFDLE1BQU0sRUFBRTtRQUN4QixDQUFDLFFBQVEsS0FBSyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQ3BCLDRHQUE0RztZQUMxRyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUMzQixDQUFDO0tBQ0g7SUFFRCxJQUFJLGdCQUFnQixDQUFDLE1BQU0sRUFBRTtRQUMzQixDQUFDLFFBQVEsS0FBSyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQ3BCLHVGQUF1RixFQUN2RixnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQzVCLENBQUM7S0FDSDtJQUVELE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLENBQUM7QUFDOUIsQ0FBQztBQTVDRCw0QkE0Q0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHsgd29ya2VyRGF0YSB9IGZyb20gJ25vZGU6d29ya2VyX3RocmVhZHMnO1xuaW1wb3J0IHsgbG9hZEVzbU1vZHVsZSB9IGZyb20gJy4uL2xvYWQtZXNtJztcbmltcG9ydCB0eXBlIHsgRVNNSW5NZW1vcnlGaWxlTG9hZGVyV29ya2VyRGF0YSB9IGZyb20gJy4vZXNtLWluLW1lbW9yeS1maWxlLWxvYWRlcic7XG5pbXBvcnQgeyBNYWluU2VydmVyQnVuZGxlRXhwb3J0cyB9IGZyb20gJy4vbWFpbi1idW5kbGUtZXhwb3J0cyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUm91dGVzRXh0cmFjdG9yV29ya2VyRGF0YSBleHRlbmRzIEVTTUluTWVtb3J5RmlsZUxvYWRlcldvcmtlckRhdGEge1xuICBkb2N1bWVudDogc3RyaW5nO1xuICB2ZXJib3NlOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJvdXRlcnNFeHRyYWN0b3JXb3JrZXJSZXN1bHQge1xuICByb3V0ZXM6IHN0cmluZ1tdO1xuICB3YXJuaW5ncz86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIFRoaXMgaXMgcGFzc2VkIGFzIHdvcmtlckRhdGEgd2hlbiBzZXR0aW5nIHVwIHRoZSB3b3JrZXIgdmlhIHRoZSBgcGlzY2luYWAgcGFja2FnZS5cbiAqL1xuY29uc3QgeyBkb2N1bWVudCwgdmVyYm9zZSB9ID0gd29ya2VyRGF0YSBhcyBSb3V0ZXNFeHRyYWN0b3JXb3JrZXJEYXRhO1xuXG5leHBvcnQgZGVmYXVsdCBhc3luYyBmdW5jdGlvbiAoKTogUHJvbWlzZTxSb3V0ZXJzRXh0cmFjdG9yV29ya2VyUmVzdWx0PiB7XG4gIGNvbnN0IHsgZGVmYXVsdDogYm9vdHN0cmFwQXBwRm5Pck1vZHVsZSwgZXh0cmFjdFJvdXRlcyB9ID1cbiAgICBhd2FpdCBsb2FkRXNtTW9kdWxlPE1haW5TZXJ2ZXJCdW5kbGVFeHBvcnRzPignLi9tYWluLnNlcnZlci5tanMnKTtcblxuICBjb25zdCBza2lwcGVkUmVkaXJlY3RzOiBzdHJpbmdbXSA9IFtdO1xuICBjb25zdCBza2lwcGVkT3RoZXJzOiBzdHJpbmdbXSA9IFtdO1xuICBjb25zdCByb3V0ZXM6IHN0cmluZ1tdID0gW107XG5cbiAgZm9yIGF3YWl0IChjb25zdCB7IHJvdXRlLCBzdWNjZXNzLCByZWRpcmVjdCB9IG9mIGV4dHJhY3RSb3V0ZXMoXG4gICAgYm9vdHN0cmFwQXBwRm5Pck1vZHVsZSxcbiAgICBkb2N1bWVudCxcbiAgKSkge1xuICAgIGlmIChzdWNjZXNzKSB7XG4gICAgICByb3V0ZXMucHVzaChyb3V0ZSk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBpZiAocmVkaXJlY3QpIHtcbiAgICAgIHNraXBwZWRSZWRpcmVjdHMucHVzaChyb3V0ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNraXBwZWRPdGhlcnMucHVzaChyb3V0ZSk7XG4gICAgfVxuICB9XG5cbiAgaWYgKCF2ZXJib3NlKSB7XG4gICAgcmV0dXJuIHsgcm91dGVzIH07XG4gIH1cblxuICBsZXQgd2FybmluZ3M6IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xuICBpZiAoc2tpcHBlZE90aGVycy5sZW5ndGgpIHtcbiAgICAod2FybmluZ3MgPz89IFtdKS5wdXNoKFxuICAgICAgJ1RoZSBmb2xsb3dpbmcgcm91dGVzIHdlcmUgc2tpcHBlZCBmcm9tIHByZXJlbmRlcmluZyBiZWNhdXNlIHRoZXkgY29udGFpbiByb3V0ZXMgd2l0aCBkeW5hbWljIHBhcmFtZXRlcnM6XFxuJyArXG4gICAgICAgIHNraXBwZWRPdGhlcnMuam9pbignXFxuJyksXG4gICAgKTtcbiAgfVxuXG4gIGlmIChza2lwcGVkUmVkaXJlY3RzLmxlbmd0aCkge1xuICAgICh3YXJuaW5ncyA/Pz0gW10pLnB1c2goXG4gICAgICAnVGhlIGZvbGxvd2luZyByb3V0ZXMgd2VyZSBza2lwcGVkIGZyb20gcHJlcmVuZGVyaW5nIGJlY2F1c2UgdGhleSBjb250YWluIHJlZGlyZWN0czpcXG4nLFxuICAgICAgc2tpcHBlZFJlZGlyZWN0cy5qb2luKCdcXG4nKSxcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIHsgcm91dGVzLCB3YXJuaW5ncyB9O1xufVxuIl19
@@ -1,22 +0,0 @@
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 { BuilderContext } from '@angular-devkit/architect';
9
- import { BrowserBuilderOptions } from '@angular-devkit/build-angular';
10
- import { json } from '@angular-devkit/core';
11
- import { Schema } from './schema';
12
- type PrerenderBuilderOptions = Schema & json.JsonObject;
13
- /**
14
- * Returns the union of routes, the contents of routesFile if given,
15
- * and the static routes extracted if guessRoutes is set to true.
16
- */
17
- export declare function getRoutes(options: PrerenderBuilderOptions, tsConfigPath: string | undefined, context: BuilderContext): Promise<string[]>;
18
- /**
19
- * Returns the name of the index file outputted by the browser builder.
20
- */
21
- export declare function getIndexOutputFile(options: BrowserBuilderOptions): string;
22
- export {};
@@ -1,79 +0,0 @@
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 __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
- Object.defineProperty(exports, "__esModule", { value: true });
33
- exports.getIndexOutputFile = exports.getRoutes = void 0;
34
- const fs = __importStar(require("fs"));
35
- const guess_parser_1 = require("guess-parser");
36
- const path = __importStar(require("path"));
37
- const error_1 = require("../../utils/error");
38
- /**
39
- * Returns the union of routes, the contents of routesFile if given,
40
- * and the static routes extracted if guessRoutes is set to true.
41
- */
42
- async function getRoutes(options, tsConfigPath, context) {
43
- let routes = options.routes || [];
44
- const { logger, workspaceRoot } = context;
45
- if (options.routesFile) {
46
- const routesFilePath = path.join(workspaceRoot, options.routesFile);
47
- routes = routes.concat(fs
48
- .readFileSync(routesFilePath, 'utf8')
49
- .split(/\r?\n/)
50
- .filter((v) => !!v));
51
- }
52
- if (options.guessRoutes && tsConfigPath) {
53
- try {
54
- routes = routes.concat((0, guess_parser_1.parseAngularRoutes)(path.join(workspaceRoot, tsConfigPath))
55
- .map((routeObj) => routeObj.path)
56
- .filter((route) => !route.includes('*') && !route.includes(':')));
57
- }
58
- catch (e) {
59
- (0, error_1.assertIsError)(e);
60
- logger.error('Unable to extract routes from application.', { ...e });
61
- }
62
- }
63
- routes = routes.map((r) => (r === '' ? '/' : r));
64
- return [...new Set(routes)];
65
- }
66
- exports.getRoutes = getRoutes;
67
- /**
68
- * Returns the name of the index file outputted by the browser builder.
69
- */
70
- function getIndexOutputFile(options) {
71
- if (typeof options.index === 'string') {
72
- return path.basename(options.index);
73
- }
74
- else {
75
- return options.index.output || 'index.html';
76
- }
77
- }
78
- exports.getIndexOutputFile = getIndexOutputFile;
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyX2RldmtpdC9idWlsZF9hbmd1bGFyL3NyYy9idWlsZGVycy9wcmVyZW5kZXIvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFLSCx1Q0FBeUI7QUFDekIsK0NBQWtEO0FBQ2xELDJDQUE2QjtBQUM3Qiw2Q0FBa0Q7QUFLbEQ7OztHQUdHO0FBQ0ksS0FBSyxVQUFVLFNBQVMsQ0FDN0IsT0FBZ0MsRUFDaEMsWUFBZ0MsRUFDaEMsT0FBdUI7SUFFdkIsSUFBSSxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7SUFDbEMsTUFBTSxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsR0FBRyxPQUFPLENBQUM7SUFDMUMsSUFBSSxPQUFPLENBQUMsVUFBVSxFQUFFO1FBQ3RCLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNwRSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FDcEIsRUFBRTthQUNDLFlBQVksQ0FBQyxjQUFjLEVBQUUsTUFBTSxDQUFDO2FBQ3BDLEtBQUssQ0FBQyxPQUFPLENBQUM7YUFDZCxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDdEIsQ0FBQztLQUNIO0lBRUQsSUFBSSxPQUFPLENBQUMsV0FBVyxJQUFJLFlBQVksRUFBRTtRQUN2QyxJQUFJO1lBQ0YsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQ3BCLElBQUEsaUNBQWtCLEVBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsWUFBWSxDQUFDLENBQUM7aUJBQ3ZELEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztpQkFDaEMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQ25FLENBQUM7U0FDSDtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsSUFBQSxxQkFBYSxFQUFDLENBQUMsQ0FBQyxDQUFDO1lBRWpCLE1BQU0sQ0FBQyxLQUFLLENBQUMsNENBQTRDLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBMkIsQ0FBQyxDQUFDO1NBQy9GO0tBQ0Y7SUFFRCxNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFakQsT0FBTyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztBQUM5QixDQUFDO0FBbENELDhCQWtDQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0Isa0JBQWtCLENBQUMsT0FBOEI7SUFDL0QsSUFBSSxPQUFPLE9BQU8sQ0FBQyxLQUFLLEtBQUssUUFBUSxFQUFFO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDckM7U0FBTTtRQUNMLE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksWUFBWSxDQUFDO0tBQzdDO0FBQ0gsQ0FBQztBQU5ELGdEQU1DIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7IEJ1aWxkZXJDb250ZXh0IH0gZnJvbSAnQGFuZ3VsYXItZGV2a2l0L2FyY2hpdGVjdCc7XG5pbXBvcnQgeyBCcm93c2VyQnVpbGRlck9wdGlvbnMgfSBmcm9tICdAYW5ndWxhci1kZXZraXQvYnVpbGQtYW5ndWxhcic7XG5pbXBvcnQgeyBKc29uT2JqZWN0LCBqc29uIH0gZnJvbSAnQGFuZ3VsYXItZGV2a2l0L2NvcmUnO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0IHsgcGFyc2VBbmd1bGFyUm91dGVzIH0gZnJvbSAnZ3Vlc3MtcGFyc2VyJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBhc3NlcnRJc0Vycm9yIH0gZnJvbSAnLi4vLi4vdXRpbHMvZXJyb3InO1xuaW1wb3J0IHsgU2NoZW1hIH0gZnJvbSAnLi9zY2hlbWEnO1xuXG50eXBlIFByZXJlbmRlckJ1aWxkZXJPcHRpb25zID0gU2NoZW1hICYganNvbi5Kc29uT2JqZWN0O1xuXG4vKipcbiAqIFJldHVybnMgdGhlIHVuaW9uIG9mIHJvdXRlcywgdGhlIGNvbnRlbnRzIG9mIHJvdXRlc0ZpbGUgaWYgZ2l2ZW4sXG4gKiBhbmQgdGhlIHN0YXRpYyByb3V0ZXMgZXh0cmFjdGVkIGlmIGd1ZXNzUm91dGVzIGlzIHNldCB0byB0cnVlLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0Um91dGVzKFxuICBvcHRpb25zOiBQcmVyZW5kZXJCdWlsZGVyT3B0aW9ucyxcbiAgdHNDb25maWdQYXRoOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gIGNvbnRleHQ6IEJ1aWxkZXJDb250ZXh0LFxuKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICBsZXQgcm91dGVzID0gb3B0aW9ucy5yb3V0ZXMgfHwgW107XG4gIGNvbnN0IHsgbG9nZ2VyLCB3b3Jrc3BhY2VSb290IH0gPSBjb250ZXh0O1xuICBpZiAob3B0aW9ucy5yb3V0ZXNGaWxlKSB7XG4gICAgY29uc3Qgcm91dGVzRmlsZVBhdGggPSBwYXRoLmpvaW4od29ya3NwYWNlUm9vdCwgb3B0aW9ucy5yb3V0ZXNGaWxlKTtcbiAgICByb3V0ZXMgPSByb3V0ZXMuY29uY2F0KFxuICAgICAgZnNcbiAgICAgICAgLnJlYWRGaWxlU3luYyhyb3V0ZXNGaWxlUGF0aCwgJ3V0ZjgnKVxuICAgICAgICAuc3BsaXQoL1xccj9cXG4vKVxuICAgICAgICAuZmlsdGVyKCh2KSA9PiAhIXYpLFxuICAgICk7XG4gIH1cblxuICBpZiAob3B0aW9ucy5ndWVzc1JvdXRlcyAmJiB0c0NvbmZpZ1BhdGgpIHtcbiAgICB0cnkge1xuICAgICAgcm91dGVzID0gcm91dGVzLmNvbmNhdChcbiAgICAgICAgcGFyc2VBbmd1bGFyUm91dGVzKHBhdGguam9pbih3b3Jrc3BhY2VSb290LCB0c0NvbmZpZ1BhdGgpKVxuICAgICAgICAgIC5tYXAoKHJvdXRlT2JqKSA9PiByb3V0ZU9iai5wYXRoKVxuICAgICAgICAgIC5maWx0ZXIoKHJvdXRlKSA9PiAhcm91dGUuaW5jbHVkZXMoJyonKSAmJiAhcm91dGUuaW5jbHVkZXMoJzonKSksXG4gICAgICApO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGFzc2VydElzRXJyb3IoZSk7XG5cbiAgICAgIGxvZ2dlci5lcnJvcignVW5hYmxlIHRvIGV4dHJhY3Qgcm91dGVzIGZyb20gYXBwbGljYXRpb24uJywgeyAuLi5lIH0gYXMgdW5rbm93biBhcyBKc29uT2JqZWN0KTtcbiAgICB9XG4gIH1cblxuICByb3V0ZXMgPSByb3V0ZXMubWFwKChyKSA9PiAociA9PT0gJycgPyAnLycgOiByKSk7XG5cbiAgcmV0dXJuIFsuLi5uZXcgU2V0KHJvdXRlcyldO1xufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIG5hbWUgb2YgdGhlIGluZGV4IGZpbGUgb3V0cHV0dGVkIGJ5IHRoZSBicm93c2VyIGJ1aWxkZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRJbmRleE91dHB1dEZpbGUob3B0aW9uczogQnJvd3NlckJ1aWxkZXJPcHRpb25zKTogc3RyaW5nIHtcbiAgaWYgKHR5cGVvZiBvcHRpb25zLmluZGV4ID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBwYXRoLmJhc2VuYW1lKG9wdGlvbnMuaW5kZXgpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBvcHRpb25zLmluZGV4Lm91dHB1dCB8fCAnaW5kZXguaHRtbCc7XG4gIH1cbn1cbiJdfQ==