@absolutejs/absolute 0.19.0-beta.834 → 0.19.0-beta.836

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.
@@ -6,6 +6,11 @@ import { OVERLAY_FADE_DURATION_MS } from './constants';
6
6
 
7
7
  let errorOverlayElement: HTMLDivElement | null = null;
8
8
  let currentOverlayKind: 'compilation' | 'runtime' | null = null;
9
+ // Runtime errors accumulate so a second uncaught error in the same tick
10
+ // doesn't silently replace the first — the overlay shows nav buttons and
11
+ // a "N of M" badge so you can step through them.
12
+ const runtimeErrors: ErrorOverlayOptions[] = [];
13
+ let activeRuntimeIndex = 0;
9
14
 
10
15
  const frameworkLabels: Record<string, string> = {
11
16
  angular: 'Angular',
@@ -39,6 +44,10 @@ const removeOverlayElement = () => {
39
44
 
40
45
  export const hideErrorOverlay = () => {
41
46
  const elm = errorOverlayElement;
47
+ // Clearing on dismiss — if more errors arrive after this they get a
48
+ // fresh overlay, otherwise stale entries accumulate forever.
49
+ runtimeErrors.length = 0;
50
+ activeRuntimeIndex = 0;
42
51
  if (!elm || !elm.parentNode) {
43
52
  removeOverlayElement();
44
53
 
@@ -55,6 +64,11 @@ export const hideErrorOverlay = () => {
55
64
 
56
65
  export const isRuntimeErrorOverlay = () => currentOverlayKind === 'runtime';
57
66
 
67
+ const sectionLabelStyle =
68
+ 'font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:0.08em;color:#94a3b8;margin-bottom:8px;';
69
+ const codeBlockStyle =
70
+ 'margin:0;padding:14px 18px;background:rgba(15,23,42,0.8);border-radius:10px;border:1px solid rgba(71,85,105,0.4);color:#cbd5e1;font-size:12.5px;line-height:1.55;overflow-x:auto;white-space:pre;font-family:inherit;';
71
+
58
72
  const buildLocationSection = (
59
73
  file: string | undefined,
60
74
  line: number | undefined,
@@ -69,8 +83,7 @@ const buildLocationSection = (
69
83
  locSection.style.cssText = 'margin-bottom:20px;';
70
84
 
71
85
  const locLabel = document.createElement('div');
72
- locLabel.style.cssText =
73
- 'font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:0.08em;color:#94a3b8;margin-bottom:8px;';
86
+ locLabel.style.cssText = sectionLabelStyle;
74
87
  locLabel.textContent = 'Where';
75
88
  locSection.appendChild(locLabel);
76
89
 
@@ -82,14 +95,13 @@ const buildLocationSection = (
82
95
 
83
96
  const locEl = document.createElement('div');
84
97
  locEl.style.cssText =
85
- 'padding:12px 20px;background:rgba(71,85,105,0.3);border-radius:10px;border:1px solid rgba(71,85,105,0.4);color:#cbd5e1;font-size:13px;';
98
+ 'padding:12px 18px;background:rgba(71,85,105,0.3);border-radius:10px;border:1px solid rgba(71,85,105,0.4);color:#cbd5e1;font-size:13px;word-break:break-all;';
86
99
  locEl.textContent = loc;
87
100
  locSection.appendChild(locEl);
88
101
 
89
102
  if (lineText) {
90
103
  const codeBlock = document.createElement('pre');
91
- codeBlock.style.cssText =
92
- 'margin:8px 0 0;padding:14px 20px;background:rgba(15,23,42,0.8);border-radius:10px;border:1px solid rgba(71,85,105,0.4);color:#94a3b8;font-size:13px;overflow-x:auto;white-space:pre;';
104
+ codeBlock.style.cssText = codeBlockStyle + 'margin-top:8px;';
93
105
  codeBlock.textContent = lineText;
94
106
  locSection.appendChild(codeBlock);
95
107
  }
@@ -97,12 +109,161 @@ const buildLocationSection = (
97
109
  return locSection;
98
110
  };
99
111
 
100
- export const showErrorOverlay = (opts: ErrorOverlayOptions) => {
112
+ // Strip the leading `${ErrorName}: ${message}` line from a stack if it just
113
+ // repeats what's already shown in the "What went wrong" panel — keeps the
114
+ // stack panel focused on frames.
115
+ const cleanStack = (message: string, stack: string) => {
116
+ const firstNewline = stack.indexOf('\n');
117
+ if (firstNewline === -1) return stack;
118
+ const head = stack.slice(0, firstNewline).trim();
119
+ if (head === message || head.endsWith(`: ${message}`)) {
120
+ return stack.slice(firstNewline + 1).replace(/^\n+/, '');
121
+ }
122
+
123
+ return stack;
124
+ };
125
+
126
+ const buildStackSection = (stack: string | undefined, message: string) => {
127
+ if (!stack) return null;
128
+ const cleaned = cleanStack(message, stack);
129
+ if (!cleaned.trim()) return null;
130
+ const section = document.createElement('div');
131
+ section.style.cssText = 'margin-bottom:20px;';
132
+ const label = document.createElement('div');
133
+ label.style.cssText = sectionLabelStyle;
134
+ label.textContent = 'Stack';
135
+ section.appendChild(label);
136
+ const pre = document.createElement('pre');
137
+ pre.style.cssText = codeBlockStyle + 'max-height:300px;overflow-y:auto;';
138
+ pre.textContent = cleaned;
139
+ section.appendChild(pre);
140
+
141
+ return section;
142
+ };
143
+
144
+ // Reads the live document for every <script src> currently mounted.
145
+ // Most useful diagnostic for "I'm seeing a chunk hash that no longer
146
+ // exists on disk" — confirms which bundle the browser actually loaded.
147
+ const collectLoadedScripts = () => {
148
+ const scripts = Array.from(document.querySelectorAll('script[src]'));
149
+ const urls: string[] = [];
150
+ for (const script of scripts) {
151
+ const src = (script as HTMLScriptElement).src;
152
+ if (!src) continue;
153
+ // Filter to JS we serve — vendor chunks, generated indexes, root
154
+ // chunk-XXX.js outputs. Skip user-pasted CDN scripts and the like.
155
+ if (
156
+ src.includes('/vendor/') ||
157
+ src.includes('/generated/') ||
158
+ /\/chunk-[a-z0-9]+\.js(\?|$)/i.test(src) ||
159
+ src.includes('/_src_indexes/')
160
+ ) {
161
+ urls.push(src);
162
+ }
163
+ }
164
+
165
+ return urls;
166
+ };
167
+
168
+ const buildDiagnosticsSection = () => {
169
+ const section = document.createElement('div');
170
+ section.style.cssText = 'margin-bottom:20px;';
171
+ const label = document.createElement('div');
172
+ label.style.cssText = sectionLabelStyle;
173
+ label.textContent = 'Diagnostics';
174
+ section.appendChild(label);
175
+
176
+ const lines: string[] = [];
177
+ lines.push(`Page URL: ${window.location.href}`);
178
+ const ua = navigator.userAgent;
179
+ lines.push(`User agent: ${ua}`);
180
+ const scripts = collectLoadedScripts();
181
+ if (scripts.length > 0) {
182
+ lines.push('');
183
+ lines.push(`Loaded chunks (${scripts.length}):`);
184
+ for (const url of scripts) {
185
+ // Strip origin so the chunk hash is the focal point.
186
+ lines.push(
187
+ ` ${url.replace(window.location.origin, '') || url}`
188
+ );
189
+ }
190
+ }
191
+
192
+ const pre = document.createElement('pre');
193
+ pre.style.cssText = codeBlockStyle + 'max-height:200px;overflow-y:auto;';
194
+ pre.textContent = lines.join('\n');
195
+ section.appendChild(pre);
196
+
197
+ return section;
198
+ };
199
+
200
+ const buildErrorMessageSection = (message: string) => {
201
+ const errorSection = document.createElement('div');
202
+ errorSection.style.cssText = 'margin-bottom:20px;';
203
+ const errorLabel = document.createElement('div');
204
+ errorLabel.style.cssText = sectionLabelStyle;
205
+ errorLabel.textContent = 'What went wrong';
206
+ errorSection.appendChild(errorLabel);
207
+ const msgEl = document.createElement('pre');
208
+ msgEl.style.cssText =
209
+ 'margin:0;padding:16px 20px;background:rgba(239,68,68,0.12);border:1px solid rgba(239,68,68,0.25);border-radius:10px;overflow-x:auto;white-space:pre-wrap;word-break:break-word;color:#fca5a5;font-size:13px;line-height:1.5;font-family:inherit;';
210
+ msgEl.textContent = message;
211
+ errorSection.appendChild(msgEl);
212
+
213
+ return errorSection;
214
+ };
215
+
216
+ const formatErrorForCopy = (opts: ErrorOverlayOptions) => {
217
+ const lines: string[] = [];
218
+ lines.push(`# ${opts.kind === 'runtime' ? 'Runtime' : 'Compilation'} error`);
219
+ if (opts.framework) lines.push(`Framework: ${opts.framework}`);
220
+ lines.push('');
221
+ lines.push('## Message');
222
+ lines.push(opts.message || '(no message)');
223
+ if (opts.file || opts.line !== undefined) {
224
+ lines.push('');
225
+ lines.push('## Where');
226
+ const locParts: string[] = [];
227
+ if (opts.file) locParts.push(opts.file);
228
+ if (opts.line !== undefined) locParts.push(String(opts.line));
229
+ if (opts.column !== undefined) locParts.push(String(opts.column));
230
+ lines.push(locParts.join(':'));
231
+ if (opts.lineText) {
232
+ lines.push('');
233
+ lines.push(opts.lineText);
234
+ }
235
+ }
236
+ if (opts.stack) {
237
+ lines.push('');
238
+ lines.push('## Stack');
239
+ lines.push(cleanStack(opts.message || '', opts.stack));
240
+ }
241
+ lines.push('');
242
+ lines.push('## Diagnostics');
243
+ lines.push(`Page URL: ${window.location.href}`);
244
+ lines.push(`User agent: ${navigator.userAgent}`);
245
+ const scripts = collectLoadedScripts();
246
+ if (scripts.length > 0) {
247
+ lines.push('');
248
+ lines.push(`Loaded chunks (${scripts.length}):`);
249
+ for (const url of scripts) {
250
+ lines.push(
251
+ ` ${url.replace(window.location.origin, '') || url}`
252
+ );
253
+ }
254
+ }
255
+
256
+ return lines.join('\n');
257
+ };
258
+
259
+ const renderOverlay = () => {
260
+ const opts =
261
+ currentOverlayKind === 'runtime'
262
+ ? runtimeErrors[activeRuntimeIndex]
263
+ : pendingCompilationOpts;
264
+ if (!opts) return;
101
265
  const message = opts.message || 'Build failed';
102
- const { file } = opts;
103
- const { line } = opts;
104
- const { column } = opts;
105
- const { lineText } = opts;
266
+ const { file, line, column, lineText, stack } = opts;
106
267
  const framework = (opts.framework || 'unknown').toLowerCase();
107
268
  const frameworkLabel = frameworkLabels[framework] || framework;
108
269
  const accent = frameworkColors[framework] || '#94a3b8';
@@ -118,7 +279,7 @@ export const showErrorOverlay = (opts: ErrorOverlayOptions) => {
118
279
 
119
280
  const card = document.createElement('div');
120
281
  card.style.cssText =
121
- 'max-width:720px;width:100%;background:rgba(30,41,59,0.6);border:1px solid rgba(71,85,105,0.5);border-radius:16px;box-shadow:0 25px 50px -12px rgba(0,0,0,0.5),0 0 0 1px rgba(255,255,255,0.05);overflow:hidden;';
282
+ 'max-width:780px;width:100%;background:rgba(30,41,59,0.6);border:1px solid rgba(71,85,105,0.5);border-radius:16px;box-shadow:0 25px 50px -12px rgba(0,0,0,0.5),0 0 0 1px rgba(255,255,255,0.05);overflow:hidden;';
122
283
 
123
284
  const header = document.createElement('div');
124
285
  header.style.cssText =
@@ -135,41 +296,109 @@ export const showErrorOverlay = (opts: ErrorOverlayOptions) => {
135
296
  const content = document.createElement('div');
136
297
  content.style.cssText = 'padding:24px;';
137
298
 
138
- const errorSection = document.createElement('div');
139
- errorSection.style.cssText = 'margin-bottom:20px;';
140
-
141
- const errorLabel = document.createElement('div');
142
- errorLabel.style.cssText =
143
- 'font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:0.08em;color:#94a3b8;margin-bottom:8px;';
144
- errorLabel.textContent = 'What went wrong';
145
- errorSection.appendChild(errorLabel);
146
-
147
- const msgEl = document.createElement('pre');
148
- msgEl.style.cssText =
149
- 'margin:0;padding:16px 20px;background:rgba(239,68,68,0.12);border:1px solid rgba(239,68,68,0.25);border-radius:10px;overflow-x:auto;white-space:pre-wrap;word-break:break-word;color:#fca5a5;font-size:13px;line-height:1.5;';
150
- msgEl.textContent = message;
151
- errorSection.appendChild(msgEl);
152
- content.appendChild(errorSection);
299
+ // Multi-error nav: visible only when more than one runtime error has
300
+ // fired since the last dismiss. Compilation errors always replace, so
301
+ // they never need this row.
302
+ if (currentOverlayKind === 'runtime' && runtimeErrors.length > 1) {
303
+ const navRow = document.createElement('div');
304
+ navRow.style.cssText =
305
+ 'display:flex;align-items:center;gap:12px;margin-bottom:20px;padding:10px 14px;background:rgba(71,85,105,0.25);border-radius:10px;border:1px solid rgba(71,85,105,0.4);';
306
+ const prev = document.createElement('button');
307
+ prev.textContent = '◀';
308
+ prev.style.cssText =
309
+ 'padding:4px 10px;background:rgba(15,23,42,0.6);color:#cbd5e1;border:1px solid rgba(71,85,105,0.6);border-radius:6px;font-size:13px;cursor:pointer;font-family:inherit;';
310
+ prev.disabled = activeRuntimeIndex === 0;
311
+ if (prev.disabled) prev.style.opacity = '0.4';
312
+ prev.onclick = () => {
313
+ if (activeRuntimeIndex > 0) {
314
+ activeRuntimeIndex -= 1;
315
+ renderOverlay();
316
+ }
317
+ };
318
+ const next = document.createElement('button');
319
+ next.textContent = '▶';
320
+ next.style.cssText = prev.style.cssText;
321
+ next.disabled = activeRuntimeIndex >= runtimeErrors.length - 1;
322
+ if (next.disabled) next.style.opacity = '0.4';
323
+ next.onclick = () => {
324
+ if (activeRuntimeIndex < runtimeErrors.length - 1) {
325
+ activeRuntimeIndex += 1;
326
+ renderOverlay();
327
+ }
328
+ };
329
+ const counter = document.createElement('span');
330
+ counter.style.cssText = 'color:#cbd5e1;font-size:13px;';
331
+ counter.textContent = `Error ${activeRuntimeIndex + 1} of ${runtimeErrors.length}`;
332
+ navRow.appendChild(prev);
333
+ navRow.appendChild(next);
334
+ navRow.appendChild(counter);
335
+ content.appendChild(navRow);
336
+ }
153
337
 
338
+ content.appendChild(buildErrorMessageSection(message));
154
339
  const locSection = buildLocationSection(file, line, column, lineText);
155
- if (locSection) {
156
- content.appendChild(locSection);
340
+ if (locSection) content.appendChild(locSection);
341
+ const stackSection = buildStackSection(stack, message);
342
+ if (stackSection) content.appendChild(stackSection);
343
+ if (currentOverlayKind === 'runtime') {
344
+ content.appendChild(buildDiagnosticsSection());
157
345
  }
158
346
 
159
347
  const footer = document.createElement('div');
160
348
  footer.style.cssText =
161
- 'display:flex;justify-content:flex-end;padding-top:8px;';
349
+ 'display:flex;justify-content:flex-end;gap:10px;padding-top:8px;';
350
+
351
+ const copy = document.createElement('button');
352
+ copy.textContent = 'Copy';
353
+ copy.style.cssText =
354
+ 'padding:10px 16px;background:rgba(71,85,105,0.4);color:#e2e8f0;border:1px solid rgba(71,85,105,0.6);border-radius:10px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;transition:opacity 0.15s,transform 0.15s;';
355
+ copy.onmouseover = () => {
356
+ copy.style.opacity = '0.85';
357
+ };
358
+ copy.onmouseout = () => {
359
+ copy.style.opacity = '1';
360
+ };
361
+ copy.onclick = async () => {
362
+ const text = formatErrorForCopy(opts);
363
+ try {
364
+ await navigator.clipboard.writeText(text);
365
+ copy.textContent = 'Copied';
366
+ setTimeout(() => {
367
+ copy.textContent = 'Copy';
368
+ }, 1500);
369
+ } catch {
370
+ // Clipboard API requires a user gesture + permissions; fall back
371
+ // to a textarea + execCommand so the button still does something.
372
+ const ta = document.createElement('textarea');
373
+ ta.value = text;
374
+ ta.style.position = 'fixed';
375
+ ta.style.opacity = '0';
376
+ document.body.appendChild(ta);
377
+ ta.select();
378
+ try {
379
+ document.execCommand('copy');
380
+ copy.textContent = 'Copied';
381
+ setTimeout(() => {
382
+ copy.textContent = 'Copy';
383
+ }, 1500);
384
+ } catch {
385
+ copy.textContent = 'Copy failed';
386
+ }
387
+ document.body.removeChild(ta);
388
+ }
389
+ };
390
+ footer.appendChild(copy);
162
391
 
163
392
  const dismiss = document.createElement('button');
164
393
  dismiss.textContent = 'Dismiss';
165
394
  dismiss.style.cssText = `padding:10px 20px;background:${
166
395
  accent
167
- };color:#fff;border:none;border-radius:10px;font-size:13px;font-weight:600;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,0.2);transition:opacity 0.15s,transform 0.15s;`;
168
- dismiss.onmouseover = function () {
396
+ };color:#fff;border:none;border-radius:10px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;box-shadow:0 2px 8px rgba(0,0,0,0.2);transition:opacity 0.15s,transform 0.15s;`;
397
+ dismiss.onmouseover = () => {
169
398
  dismiss.style.opacity = '0.9';
170
399
  dismiss.style.transform = 'translateY(-1px)';
171
400
  };
172
- dismiss.onmouseout = function () {
401
+ dismiss.onmouseout = () => {
173
402
  dismiss.style.opacity = '1';
174
403
  dismiss.style.transform = 'translateY(0)';
175
404
  };
@@ -182,3 +411,31 @@ export const showErrorOverlay = (opts: ErrorOverlayOptions) => {
182
411
  document.body.appendChild(overlay);
183
412
  errorOverlayElement = overlay;
184
413
  };
414
+
415
+ let pendingCompilationOpts: ErrorOverlayOptions | null = null;
416
+
417
+ export const showErrorOverlay = (opts: ErrorOverlayOptions) => {
418
+ const kind = opts.kind || 'compilation';
419
+ if (kind === 'runtime') {
420
+ // Suppress duplicates — Angular and other frameworks often re-throw
421
+ // the same error from multiple async boundaries (zone, scheduler,
422
+ // resolver). Identifying by message+stack catches the common case
423
+ // without needing structured equality.
424
+ const sig = `${opts.message ?? ''}::${opts.stack ?? ''}`;
425
+ const isDup = runtimeErrors.some(
426
+ (prev) => `${prev.message ?? ''}::${prev.stack ?? ''}` === sig
427
+ );
428
+ if (!isDup) {
429
+ runtimeErrors.push(opts);
430
+ activeRuntimeIndex = runtimeErrors.length - 1;
431
+ }
432
+ } else {
433
+ pendingCompilationOpts = opts;
434
+ // Compilation errors are global build state — reset runtime queue
435
+ // since old runtime errors from before the build attempt aren't
436
+ // actionable anymore.
437
+ runtimeErrors.length = 0;
438
+ activeRuntimeIndex = 0;
439
+ }
440
+ renderOverlay();
441
+ };
@@ -47,25 +47,23 @@ if (typeof window !== 'undefined') {
47
47
  // Catch uncaught runtime errors and show the error overlay
48
48
  window.addEventListener('error', (evt) => {
49
49
  if (!evt.error) return;
50
+ const isErr = evt.error instanceof Error;
50
51
  showErrorOverlay({
51
52
  framework: detectCurrentFramework() || undefined,
52
53
  kind: 'runtime',
53
- message:
54
- evt.error instanceof Error
55
- ? evt.error.stack || evt.error.message
56
- : String(evt.error)
54
+ message: isErr ? evt.error.message : String(evt.error),
55
+ stack: isErr ? evt.error.stack : undefined
57
56
  });
58
57
  });
59
58
 
60
59
  window.addEventListener('unhandledrejection', (evt) => {
61
60
  if (!evt.reason) return;
61
+ const isErr = evt.reason instanceof Error;
62
62
  showErrorOverlay({
63
63
  framework: detectCurrentFramework() || undefined,
64
64
  kind: 'runtime',
65
- message:
66
- evt.reason instanceof Error
67
- ? evt.reason.stack || evt.reason.message
68
- : String(evt.reason)
65
+ message: isErr ? evt.reason.message : String(evt.reason),
66
+ stack: isErr ? evt.reason.stack : undefined
69
67
  });
70
68
  });
71
69
 
package/dist/index.js CHANGED
@@ -15357,6 +15357,7 @@ var init_ssrCache = __esm(() => {
15357
15357
  // src/dev/moduleServer.ts
15358
15358
  var exports_moduleServer = {};
15359
15359
  __export(exports_moduleServer, {
15360
+ warnIfReactFastRefreshUnsupported: () => warnIfReactFastRefreshUnsupported,
15360
15361
  warmCompilers: () => warmCompilers,
15361
15362
  warmCache: () => warmCache,
15362
15363
  setGlobalModuleServer: () => setGlobalModuleServer,
@@ -15536,7 +15537,6 @@ ${code}`;
15536
15537
  reactFastRefreshWarningEmitted = true;
15537
15538
  logWarn("React HMR is blocked: this Bun build ignores " + "`reactFastRefresh` on Bun.Transpiler, so component state " + "cannot be preserved across edits. Tracking " + "https://github.com/oven-sh/bun/pull/28312 \u2014 if it still has " + "not merged, leave a \uD83D\uDC4D on the PR so the Bun team knows it " + "is blocking you. Until then, React edits trigger a full " + "reload instead of a fast refresh.");
15538
15539
  }, transformReactFile = (filePath, projectRoot, rewriter) => {
15539
- warnIfReactFastRefreshUnsupported();
15540
15540
  const raw = readFileSync16(filePath, "utf-8");
15541
15541
  const valueExports = tsxTranspiler.scan(raw).exports;
15542
15542
  let transpiled = reactTranspiler.transformSync(raw);
@@ -16677,6 +16677,8 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
16677
16677
  onRebuildComplete({ hmrState: state, manifest: state.manifest });
16678
16678
  return state.manifest;
16679
16679
  }
16680
+ const { warnIfReactFastRefreshUnsupported: warnIfReactFastRefreshUnsupported2 } = await Promise.resolve().then(() => (init_moduleServer(), exports_moduleServer));
16681
+ warnIfReactFastRefreshUnsupported2();
16680
16682
  return handleReactModuleServerPath(state, reactFiles, startTime, onRebuildComplete);
16681
16683
  }, handleServerManifestUpdate = (state, serverResult) => {
16682
16684
  if (!serverResult?.success) {
@@ -18307,7 +18309,7 @@ var STORE_KEY = "__elysiaStore", getGlobalValue = (key) => Reflect.get(globalThi
18307
18309
  if (bytes) {
18308
18310
  return new Response(new Uint8Array(bytes).buffer, {
18309
18311
  headers: {
18310
- "Cache-Control": "no-cache",
18312
+ "Cache-Control": "no-store",
18311
18313
  "Content-Type": getMimeType(pathname)
18312
18314
  }
18313
18315
  });
@@ -18316,7 +18318,7 @@ var STORE_KEY = "__elysiaStore", getGlobalValue = (key) => Reflect.get(globalThi
18316
18318
  if (aliasedTarget) {
18317
18319
  return new Response(null, {
18318
18320
  headers: {
18319
- "Cache-Control": "no-cache",
18321
+ "Cache-Control": "no-store",
18320
18322
  Location: aliasedTarget
18321
18323
  },
18322
18324
  status: 302
@@ -26749,5 +26751,5 @@ export {
26749
26751
  ANGULAR_INIT_TIMEOUT_MS
26750
26752
  };
26751
26753
 
26752
- //# debugId=4C836C9BC84C636964756E2164756E21
26754
+ //# debugId=37D59544622087A264756E2164756E21
26753
26755
  //# sourceMappingURL=index.js.map