@angular/build 19.0.2 → 19.1.0-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/package.json +16 -16
  2. package/src/builders/application/build-action.js +17 -7
  3. package/src/builders/application/execute-post-bundle.js +3 -3
  4. package/src/builders/application/options.js +15 -14
  5. package/src/builders/dev-server/vite-server.js +22 -26
  6. package/src/builders/extract-i18n/builder.js +17 -7
  7. package/src/tools/angular/compilation/angular-compilation.js +17 -7
  8. package/src/tools/angular/compilation/aot-compilation.js +13 -35
  9. package/src/tools/angular/compilation/factory.js +17 -7
  10. package/src/tools/angular/compilation/hmr-candidates.d.ts +22 -0
  11. package/src/tools/angular/compilation/hmr-candidates.js +238 -0
  12. package/src/tools/babel/plugins/pure-toplevel-functions.js +17 -7
  13. package/src/tools/esbuild/angular/compiler-plugin.js +33 -7
  14. package/src/tools/esbuild/angular/source-file-cache.d.ts +1 -1
  15. package/src/tools/esbuild/angular/source-file-cache.js +17 -7
  16. package/src/tools/esbuild/global-scripts.js +19 -8
  17. package/src/tools/esbuild/javascript-transformer-worker.js +17 -7
  18. package/src/tools/esbuild/stylesheets/less-language.js +17 -7
  19. package/src/tools/esbuild/stylesheets/sass-language.js +17 -7
  20. package/src/tools/esbuild/stylesheets/stylesheet-plugin-factory.js +17 -7
  21. package/src/tools/vite/plugins/ssr-transform-plugin.js +11 -15
  22. package/src/utils/check-port.js +17 -7
  23. package/src/utils/index-file/augment-index-html.js +14 -4
  24. package/src/utils/index-file/auto-csp.js +17 -7
  25. package/src/utils/index-file/inline-fonts.js +17 -7
  26. package/src/utils/load-proxy-config.js +17 -7
  27. package/src/utils/load-translations.js +17 -7
  28. package/src/utils/normalize-asset-patterns.js +17 -7
  29. package/src/utils/normalize-cache.js +1 -1
  30. package/src/utils/server-rendering/manifest.d.ts +3 -1
  31. package/src/utils/server-rendering/manifest.js +22 -10
  32. package/src/utils/server-rendering/prerender.js +3 -3
  33. package/src/utils/server-rendering/routes-extractor-worker.js +6 -1
  34. package/src/utils/service-worker.js +17 -7
@@ -21,7 +21,7 @@ const valid_self_closing_tags_1 = require("./valid-self-closing-tags");
21
21
  */
22
22
  // eslint-disable-next-line max-lines-per-function
23
23
  async function augmentIndexHtml(params) {
24
- const { loadOutputFile, files, entrypoints, sri, deployUrl = '', lang, baseHref, html, imageDomains, } = params;
24
+ const { loadOutputFile, files, entrypoints, sri, deployUrl, lang, baseHref, html, imageDomains } = params;
25
25
  const warnings = [];
26
26
  const errors = [];
27
27
  let { crossOrigin = 'none' } = params;
@@ -57,7 +57,7 @@ async function augmentIndexHtml(params) {
57
57
  }
58
58
  let scriptTags = [];
59
59
  for (const [src, isModule] of scripts) {
60
- const attrs = [`src="${deployUrl}${src}"`];
60
+ const attrs = [`src="${generateUrl(src, deployUrl)}"`];
61
61
  // This is also need for non entry-points as they may contain problematic code.
62
62
  if (isModule) {
63
63
  attrs.push('type="module"');
@@ -77,7 +77,7 @@ async function augmentIndexHtml(params) {
77
77
  let headerLinkTags = [];
78
78
  let bodyLinkTags = [];
79
79
  for (const src of stylesheets) {
80
- const attrs = [`rel="stylesheet"`, `href="${deployUrl}${src}"`];
80
+ const attrs = [`rel="stylesheet"`, `href="${generateUrl(src, deployUrl)}"`];
81
81
  if (crossOrigin !== 'none') {
82
82
  attrs.push(`crossorigin="${crossOrigin}"`);
83
83
  }
@@ -89,7 +89,7 @@ async function augmentIndexHtml(params) {
89
89
  }
90
90
  if (params.hints?.length) {
91
91
  for (const hint of params.hints) {
92
- const attrs = [`rel="${hint.mode}"`, `href="${deployUrl}${hint.url}"`];
92
+ const attrs = [`rel="${hint.mode}"`, `href="${generateUrl(hint.url, deployUrl)}"`];
93
93
  if (hint.mode !== 'modulepreload' && crossOrigin !== 'none') {
94
94
  // Value is considered anonymous by the browser when not present or empty
95
95
  attrs.push(crossOrigin === 'anonymous' ? 'crossorigin' : `crossorigin="${crossOrigin}"`);
@@ -215,6 +215,16 @@ function generateSriAttributes(content) {
215
215
  const hash = (0, node_crypto_1.createHash)(algo).update(content, 'utf8').digest('base64');
216
216
  return `integrity="${algo}-${hash}"`;
217
217
  }
218
+ function generateUrl(value, deployUrl) {
219
+ if (!deployUrl) {
220
+ return value;
221
+ }
222
+ // Skip if root-relative, absolute or protocol relative url
223
+ if (/^((?:\w+:)?\/\/|data:|chrome:|\/)/.test(value)) {
224
+ return value;
225
+ }
226
+ return `${deployUrl}${value}`;
227
+ }
218
228
  function updateAttribute(tag, name, value) {
219
229
  const index = tag.attrs.findIndex((a) => a.name === name);
220
230
  const newValue = { name, value };
@@ -22,13 +22,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
22
22
  }) : function(o, v) {
23
23
  o["default"] = v;
24
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
- };
25
+ var __importStar = (this && this.__importStar) || (function () {
26
+ var ownKeys = function(o) {
27
+ ownKeys = Object.getOwnPropertyNames || function (o) {
28
+ var ar = [];
29
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
30
+ return ar;
31
+ };
32
+ return ownKeys(o);
33
+ };
34
+ return function (mod) {
35
+ if (mod && mod.__esModule) return mod;
36
+ var result = {};
37
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
38
+ __setModuleDefault(result, mod);
39
+ return result;
40
+ };
41
+ })();
32
42
  Object.defineProperty(exports, "__esModule", { value: true });
33
43
  exports.hashTextContent = hashTextContent;
34
44
  exports.autoCsp = autoCsp;
@@ -22,13 +22,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
22
22
  }) : function(o, v) {
23
23
  o["default"] = v;
24
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
- };
25
+ var __importStar = (this && this.__importStar) || (function () {
26
+ var ownKeys = function(o) {
27
+ ownKeys = Object.getOwnPropertyNames || function (o) {
28
+ var ar = [];
29
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
30
+ return ar;
31
+ };
32
+ return ownKeys(o);
33
+ };
34
+ return function (mod) {
35
+ if (mod && mod.__esModule) return mod;
36
+ var result = {};
37
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
38
+ __setModuleDefault(result, mod);
39
+ return result;
40
+ };
41
+ })();
32
42
  Object.defineProperty(exports, "__esModule", { value: true });
33
43
  exports.InlineFontsProcessor = void 0;
34
44
  const https_proxy_agent_1 = require("https-proxy-agent");
@@ -22,13 +22,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
22
22
  }) : function(o, v) {
23
23
  o["default"] = v;
24
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
- };
25
+ var __importStar = (this && this.__importStar) || (function () {
26
+ var ownKeys = function(o) {
27
+ ownKeys = Object.getOwnPropertyNames || function (o) {
28
+ var ar = [];
29
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
30
+ return ar;
31
+ };
32
+ return ownKeys(o);
33
+ };
34
+ return function (mod) {
35
+ if (mod && mod.__esModule) return mod;
36
+ var result = {};
37
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
38
+ __setModuleDefault(result, mod);
39
+ return result;
40
+ };
41
+ })();
32
42
  Object.defineProperty(exports, "__esModule", { value: true });
33
43
  exports.loadProxyConfiguration = loadProxyConfiguration;
34
44
  const fast_glob_1 = require("fast-glob");
@@ -22,13 +22,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
22
22
  }) : function(o, v) {
23
23
  o["default"] = v;
24
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
- };
25
+ var __importStar = (this && this.__importStar) || (function () {
26
+ var ownKeys = function(o) {
27
+ ownKeys = Object.getOwnPropertyNames || function (o) {
28
+ var ar = [];
29
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
30
+ return ar;
31
+ };
32
+ return ownKeys(o);
33
+ };
34
+ return function (mod) {
35
+ if (mod && mod.__esModule) return mod;
36
+ var result = {};
37
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
38
+ __setModuleDefault(result, mod);
39
+ return result;
40
+ };
41
+ })();
32
42
  Object.defineProperty(exports, "__esModule", { value: true });
33
43
  exports.createTranslationLoader = createTranslationLoader;
34
44
  const crypto_1 = require("crypto");
@@ -22,13 +22,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
22
22
  }) : function(o, v) {
23
23
  o["default"] = v;
24
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
- };
25
+ var __importStar = (this && this.__importStar) || (function () {
26
+ var ownKeys = function(o) {
27
+ ownKeys = Object.getOwnPropertyNames || function (o) {
28
+ var ar = [];
29
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
30
+ return ar;
31
+ };
32
+ return ownKeys(o);
33
+ };
34
+ return function (mod) {
35
+ if (mod && mod.__esModule) return mod;
36
+ var result = {};
37
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
38
+ __setModuleDefault(result, mod);
39
+ return result;
40
+ };
41
+ })();
32
42
  var __importDefault = (this && this.__importDefault) || function (mod) {
33
43
  return (mod && mod.__esModule) ? mod : { "default": mod };
34
44
  };
@@ -10,7 +10,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
10
10
  exports.normalizeCacheOptions = normalizeCacheOptions;
11
11
  const node_path_1 = require("node:path");
12
12
  /** Version placeholder is replaced during the build process with actual package version */
13
- const VERSION = '19.0.2';
13
+ const VERSION = '19.1.0-next.0';
14
14
  function hasCacheMetadata(value) {
15
15
  return (!!value &&
16
16
  typeof value === 'object' &&
@@ -40,12 +40,14 @@ export declare function generateAngularServerAppEngineManifest(i18nOptions: Norm
40
40
  * server-side rendering and routing.
41
41
  * @param locale - An optional string representing the locale or language code to be used for
42
42
  * the application, helping with localization and rendering content specific to the locale.
43
+ * @param baseHref - The base HREF for the application. This is used to set the base URL
44
+ * for all relative URLs in the application.
43
45
  *
44
46
  * @returns An object containing:
45
47
  * - `manifestContent`: A string of the SSR manifest content.
46
48
  * - `serverAssetsChunks`: An array of build output files containing the generated assets for the server.
47
49
  */
48
- export declare function generateAngularServerAppManifest(additionalHtmlOutputFiles: Map<string, BuildOutputFile>, outputFiles: BuildOutputFile[], inlineCriticalCss: boolean, routes: readonly unknown[] | undefined, locale: string | undefined): {
50
+ export declare function generateAngularServerAppManifest(additionalHtmlOutputFiles: Map<string, BuildOutputFile>, outputFiles: BuildOutputFile[], inlineCriticalCss: boolean, routes: readonly unknown[] | undefined, locale: string | undefined, baseHref: string): {
49
51
  manifestContent: string;
50
52
  serverAssetsChunks: BuildOutputFile[];
51
53
  };
@@ -48,7 +48,7 @@ function escapeUnsafeChars(str) {
48
48
  * for all relative URLs in the application.
49
49
  */
50
50
  function generateAngularServerAppEngineManifest(i18nOptions, baseHref) {
51
- const entryPointsContent = [];
51
+ const entryPoints = {};
52
52
  if (i18nOptions.shouldInline) {
53
53
  for (const locale of i18nOptions.inlineLocales) {
54
54
  const importPath = './' + (i18nOptions.flatOutput ? '' : locale + '/') + MAIN_SERVER_OUTPUT_FILENAME;
@@ -57,18 +57,22 @@ function generateAngularServerAppEngineManifest(i18nOptions, baseHref) {
57
57
  const start = localeWithBaseHref[0] === '/' ? 1 : 0;
58
58
  const end = localeWithBaseHref[localeWithBaseHref.length - 1] === '/' ? -1 : undefined;
59
59
  localeWithBaseHref = localeWithBaseHref.slice(start, end);
60
- entryPointsContent.push(`['${localeWithBaseHref}', () => import('${importPath}')]`);
60
+ entryPoints[localeWithBaseHref] = `() => import('${importPath}')`;
61
61
  }
62
62
  }
63
63
  else {
64
- entryPointsContent.push(`['', () => import('./${MAIN_SERVER_OUTPUT_FILENAME}')]`);
64
+ entryPoints[''] = `() => import('./${MAIN_SERVER_OUTPUT_FILENAME}')`;
65
65
  }
66
66
  const manifestContent = `
67
67
  export default {
68
68
  basePath: '${baseHref ?? '/'}',
69
- entryPoints: new Map([${entryPointsContent.join(', \n')}]),
69
+ entryPoints: {
70
+ ${Object.entries(entryPoints)
71
+ .map(([key, value]) => `'${key}': ${value}`)
72
+ .join(',\n ')}
73
+ },
70
74
  };
71
- `;
75
+ `;
72
76
  return manifestContent;
73
77
  }
74
78
  /**
@@ -89,29 +93,37 @@ export default {
89
93
  * server-side rendering and routing.
90
94
  * @param locale - An optional string representing the locale or language code to be used for
91
95
  * the application, helping with localization and rendering content specific to the locale.
96
+ * @param baseHref - The base HREF for the application. This is used to set the base URL
97
+ * for all relative URLs in the application.
92
98
  *
93
99
  * @returns An object containing:
94
100
  * - `manifestContent`: A string of the SSR manifest content.
95
101
  * - `serverAssetsChunks`: An array of build output files containing the generated assets for the server.
96
102
  */
97
- function generateAngularServerAppManifest(additionalHtmlOutputFiles, outputFiles, inlineCriticalCss, routes, locale) {
103
+ function generateAngularServerAppManifest(additionalHtmlOutputFiles, outputFiles, inlineCriticalCss, routes, locale, baseHref) {
98
104
  const serverAssetsChunks = [];
99
- const serverAssetsContent = [];
105
+ const serverAssets = {};
100
106
  for (const file of [...additionalHtmlOutputFiles.values(), ...outputFiles]) {
101
107
  const extension = (0, node_path_1.extname)(file.path);
102
108
  if (extension === '.html' || (inlineCriticalCss && extension === '.css')) {
103
109
  const jsChunkFilePath = `assets-chunks/${file.path.replace(/[./]/g, '_')}.mjs`;
104
110
  serverAssetsChunks.push((0, utils_1.createOutputFile)(jsChunkFilePath, `export default \`${escapeUnsafeChars(file.text)}\`;`, bundler_context_1.BuildOutputFileType.ServerApplication));
105
- serverAssetsContent.push(`['${file.path}', {size: ${file.size}, hash: '${file.hash}', text: () => import('./${jsChunkFilePath}').then(m => m.default)}]`);
111
+ serverAssets[file.path] =
112
+ `{size: ${file.size}, hash: '${file.hash}', text: () => import('./${jsChunkFilePath}').then(m => m.default)}`;
106
113
  }
107
114
  }
108
115
  const manifestContent = `
109
116
  export default {
110
117
  bootstrap: () => import('./main.server.mjs').then(m => m.default),
111
118
  inlineCriticalCss: ${inlineCriticalCss},
119
+ baseHref: '${baseHref}',
120
+ locale: ${JSON.stringify(locale)},
112
121
  routes: ${JSON.stringify(routes, undefined, 2)},
113
- assets: new Map([\n${serverAssetsContent.join(', \n')}\n]),
114
- locale: ${locale !== undefined ? `'${locale}'` : undefined},
122
+ assets: {
123
+ ${Object.entries(serverAssets)
124
+ .map(([key, value]) => `'${key}': ${value}`)
125
+ .join(',\n ')}
126
+ },
115
127
  };
116
128
  `;
117
129
  return { manifestContent, serverAssetsChunks };
@@ -90,7 +90,7 @@ async function prerenderPages(workspaceRoot, baseHref, appShellOptions, prerende
90
90
  };
91
91
  }
92
92
  // Render routes
93
- const { errors: renderingErrors, output } = await renderPages(baseHref, sourcemap, serializableRouteTreeNodeForPrerender, maxThreads, workspaceRoot, outputFilesForWorker, assetsReversed, appShellOptions, outputMode, appShellRoute ?? appShellOptions?.route);
93
+ const { errors: renderingErrors, output } = await renderPages(baseHref, sourcemap, serializableRouteTreeNodeForPrerender, maxThreads, workspaceRoot, outputFilesForWorker, assetsReversed, outputMode, appShellRoute ?? appShellOptions?.route);
94
94
  errors.push(...renderingErrors);
95
95
  return {
96
96
  errors,
@@ -99,7 +99,7 @@ async function prerenderPages(workspaceRoot, baseHref, appShellOptions, prerende
99
99
  serializableRouteTreeNode,
100
100
  };
101
101
  }
102
- async function renderPages(baseHref, sourcemap, serializableRouteTreeNode, maxThreads, workspaceRoot, outputFilesForWorker, assetFilesForWorker, appShellOptions, outputMode, appShellRoute) {
102
+ async function renderPages(baseHref, sourcemap, serializableRouteTreeNode, maxThreads, workspaceRoot, outputFilesForWorker, assetFilesForWorker, outputMode, appShellRoute) {
103
103
  const output = {};
104
104
  const errors = [];
105
105
  const workerExecArgv = [utils_1.IMPORT_EXEC_ARGV];
@@ -125,7 +125,7 @@ async function renderPages(baseHref, sourcemap, serializableRouteTreeNode, maxTh
125
125
  for (const { route, redirectTo, renderMode } of serializableRouteTreeNode) {
126
126
  // Remove the base href from the file output path.
127
127
  const routeWithoutBaseHref = addTrailingSlash(route).startsWith(baseHrefWithLeadingSlash)
128
- ? addLeadingSlash(route.slice(baseHrefWithLeadingSlash.length - 1))
128
+ ? addLeadingSlash(route.slice(baseHrefWithLeadingSlash.length))
129
129
  : route;
130
130
  const outPath = node_path_1.posix.join(removeLeadingSlash(routeWithoutBaseHref), 'index.html');
131
131
  if (typeof redirectTo === 'string') {
@@ -21,7 +21,12 @@ async function extractRoutes() {
21
21
  const serverURL = outputMode !== undefined && hasSsrEntry ? await (0, launch_server_1.launchServer)() : launch_server_1.DEFAULT_URL;
22
22
  (0, fetch_patch_1.patchFetchToLoadInMemoryAssets)(serverURL);
23
23
  const { ɵextractRoutesAndCreateRouteTree: extractRoutesAndCreateRouteTree } = await (0, load_esm_from_memory_1.loadEsmModuleFromMemory)('./main.server.mjs');
24
- const { routeTree, appShellRoute, errors } = await extractRoutesAndCreateRouteTree(serverURL, undefined /** manifest */, outputMode !== undefined /** invokeGetPrerenderParams */, outputMode === schema_1.OutputMode.Server /** includePrerenderFallbackRoutes */);
24
+ const { routeTree, appShellRoute, errors } = await extractRoutesAndCreateRouteTree({
25
+ url: serverURL,
26
+ invokeGetPrerenderParams: outputMode !== undefined,
27
+ includePrerenderFallbackRoutes: outputMode === schema_1.OutputMode.Server,
28
+ signal: AbortSignal.timeout(30_000),
29
+ });
25
30
  return {
26
31
  errors,
27
32
  appShellRoute,
@@ -22,13 +22,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
22
22
  }) : function(o, v) {
23
23
  o["default"] = v;
24
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
- };
25
+ var __importStar = (this && this.__importStar) || (function () {
26
+ var ownKeys = function(o) {
27
+ ownKeys = Object.getOwnPropertyNames || function (o) {
28
+ var ar = [];
29
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
30
+ return ar;
31
+ };
32
+ return ownKeys(o);
33
+ };
34
+ return function (mod) {
35
+ if (mod && mod.__esModule) return mod;
36
+ var result = {};
37
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
38
+ __setModuleDefault(result, mod);
39
+ return result;
40
+ };
41
+ })();
32
42
  Object.defineProperty(exports, "__esModule", { value: true });
33
43
  exports.augmentAppWithServiceWorker = augmentAppWithServiceWorker;
34
44
  exports.augmentAppWithServiceWorkerEsbuild = augmentAppWithServiceWorkerEsbuild;