@async/framework 0.11.3 → 0.11.4

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.
package/browser.ts CHANGED
@@ -1409,6 +1409,24 @@ const __signalsModule = (() => {
1409
1409
  return requireEntry(entries, id);
1410
1410
  },
1411
1411
 
1412
+ _setPath(path, value) {
1413
+ const parsed = parseRootPath(path);
1414
+ if (!entries.has(parsed.id)) {
1415
+ if (asyncDescriptors.has(parsed.id)) {
1416
+ materializeAsyncSignal(parsed.id);
1417
+ } else {
1418
+ registry.register(parsed.id, createSignal(parsed.parts.length === 0 ? value : {}));
1419
+ }
1420
+ }
1421
+ const entry = requireEntry(entries, parsed.id);
1422
+ if (parsed.parts.length === 0) {
1423
+ return entry.set(value);
1424
+ }
1425
+ const nextValue = setPath(entry.value, parsed.parts, value);
1426
+ entry.set(nextValue);
1427
+ return value;
1428
+ },
1429
+
1412
1430
  _setContext(context = {}) {
1413
1431
  Object.assign(runtimeContext, context);
1414
1432
  return registry;
@@ -1465,6 +1483,14 @@ const __signalsModule = (() => {
1465
1483
  return { id, parts, path };
1466
1484
  }
1467
1485
 
1486
+ function parseRootPath(path) {
1487
+ if (typeof path !== "string" || path.length === 0) {
1488
+ throw new TypeError("Signal path must be a non-empty string.");
1489
+ }
1490
+ const [id, ...parts] = path.split(".");
1491
+ return { id, parts, path };
1492
+ }
1493
+
1468
1494
  function materializeAsyncSignal(id) {
1469
1495
  if (entries.has(id) || !asyncDescriptors.has(id)) {
1470
1496
  return;
@@ -5005,7 +5031,7 @@ const __appModule = (() => {
5005
5031
 
5006
5032
  if (result.signals) {
5007
5033
  for (const [path, value] of Object.entries(result.signals)) {
5008
- setOrRegisterSignal(signals, path, value);
5034
+ applySignalPatch(signals, path, value);
5009
5035
  }
5010
5036
  }
5011
5037
  if (result.cache?.browser) {
@@ -5283,8 +5309,9 @@ const __appModule = (() => {
5283
5309
 
5284
5310
  function applySnapshotToRuntime(runtime, snapshot = {}, options = {}) {
5285
5311
  const normalized = normalizeSnapshot(snapshot);
5286
- for (const [path, value] of Object.entries(normalized.signal)) {
5287
- setOrRegisterSignal(runtime.signals, path, value);
5312
+ mergeRegistryEntries(runtime, "asyncSignal", normalized.asyncSignal, null, options);
5313
+ for (const [id, value] of Object.entries(normalized.signal)) {
5314
+ restoreSignalEntry(runtime.signals, id, value);
5288
5315
  }
5289
5316
  runtime.browser.cache.restore(normalized.cache.browser);
5290
5317
  mergeRegistryEntries(runtime, "handler", normalized.handler, runtime.handlers, options);
@@ -5292,7 +5319,6 @@ const __appModule = (() => {
5292
5319
  mergeRegistryEntries(runtime, "partial", normalized.partial, runtime.partials, options);
5293
5320
  mergeRegistryEntries(runtime, "route", normalized.route, runtime.routes, options);
5294
5321
  mergeRegistryEntries(runtime, "component", normalized.component, runtime.components, options);
5295
- mergeRegistryEntries(runtime, "asyncSignal", normalized.asyncSignal, null, options);
5296
5322
  return runtime;
5297
5323
  }
5298
5324
 
@@ -5398,16 +5424,26 @@ const __appModule = (() => {
5398
5424
  }
5399
5425
  }
5400
5426
 
5401
- function setOrRegisterSignal(signals, path, value) {
5402
- const id = String(path).split(".")[0];
5427
+ function restoreSignalEntry(signals, id, value) {
5403
5428
  if (signals.has?.(id)) {
5404
- if (path === id) {
5405
- const entry = signals._entry?.(id);
5406
- if (typeof entry?._restore === "function" && isAsyncSignalSnapshot(value)) {
5407
- entry._restore(value);
5408
- return;
5409
- }
5429
+ const entry = signals._entry?.(id);
5430
+ if (typeof entry?._restore === "function" && isAsyncSignalSnapshot(value)) {
5431
+ entry._restore(value);
5432
+ return;
5410
5433
  }
5434
+ signals.set(id, value);
5435
+ return;
5436
+ }
5437
+ signals.register(id, createSignal(value));
5438
+ }
5439
+
5440
+ function applySignalPatch(signals, path, value) {
5441
+ if (typeof signals._setPath === "function") {
5442
+ signals._setPath(path, value);
5443
+ return;
5444
+ }
5445
+ const id = String(path).split(".")[0];
5446
+ if (signals.has?.(id)) {
5411
5447
  signals.set(path, value);
5412
5448
  return;
5413
5449
  }
package/browser.umd.js CHANGED
@@ -1419,6 +1419,24 @@
1419
1419
  return requireEntry(entries, id);
1420
1420
  },
1421
1421
 
1422
+ _setPath(path, value) {
1423
+ const parsed = parseRootPath(path);
1424
+ if (!entries.has(parsed.id)) {
1425
+ if (asyncDescriptors.has(parsed.id)) {
1426
+ materializeAsyncSignal(parsed.id);
1427
+ } else {
1428
+ registry.register(parsed.id, createSignal(parsed.parts.length === 0 ? value : {}));
1429
+ }
1430
+ }
1431
+ const entry = requireEntry(entries, parsed.id);
1432
+ if (parsed.parts.length === 0) {
1433
+ return entry.set(value);
1434
+ }
1435
+ const nextValue = setPath(entry.value, parsed.parts, value);
1436
+ entry.set(nextValue);
1437
+ return value;
1438
+ },
1439
+
1422
1440
  _setContext(context = {}) {
1423
1441
  Object.assign(runtimeContext, context);
1424
1442
  return registry;
@@ -1475,6 +1493,14 @@
1475
1493
  return { id, parts, path };
1476
1494
  }
1477
1495
 
1496
+ function parseRootPath(path) {
1497
+ if (typeof path !== "string" || path.length === 0) {
1498
+ throw new TypeError("Signal path must be a non-empty string.");
1499
+ }
1500
+ const [id, ...parts] = path.split(".");
1501
+ return { id, parts, path };
1502
+ }
1503
+
1478
1504
  function materializeAsyncSignal(id) {
1479
1505
  if (entries.has(id) || !asyncDescriptors.has(id)) {
1480
1506
  return;
@@ -5015,7 +5041,7 @@
5015
5041
 
5016
5042
  if (result.signals) {
5017
5043
  for (const [path, value] of Object.entries(result.signals)) {
5018
- setOrRegisterSignal(signals, path, value);
5044
+ applySignalPatch(signals, path, value);
5019
5045
  }
5020
5046
  }
5021
5047
  if (result.cache?.browser) {
@@ -5293,8 +5319,9 @@
5293
5319
 
5294
5320
  function applySnapshotToRuntime(runtime, snapshot = {}, options = {}) {
5295
5321
  const normalized = normalizeSnapshot(snapshot);
5296
- for (const [path, value] of Object.entries(normalized.signal)) {
5297
- setOrRegisterSignal(runtime.signals, path, value);
5322
+ mergeRegistryEntries(runtime, "asyncSignal", normalized.asyncSignal, null, options);
5323
+ for (const [id, value] of Object.entries(normalized.signal)) {
5324
+ restoreSignalEntry(runtime.signals, id, value);
5298
5325
  }
5299
5326
  runtime.browser.cache.restore(normalized.cache.browser);
5300
5327
  mergeRegistryEntries(runtime, "handler", normalized.handler, runtime.handlers, options);
@@ -5302,7 +5329,6 @@
5302
5329
  mergeRegistryEntries(runtime, "partial", normalized.partial, runtime.partials, options);
5303
5330
  mergeRegistryEntries(runtime, "route", normalized.route, runtime.routes, options);
5304
5331
  mergeRegistryEntries(runtime, "component", normalized.component, runtime.components, options);
5305
- mergeRegistryEntries(runtime, "asyncSignal", normalized.asyncSignal, null, options);
5306
5332
  return runtime;
5307
5333
  }
5308
5334
 
@@ -5408,16 +5434,26 @@
5408
5434
  }
5409
5435
  }
5410
5436
 
5411
- function setOrRegisterSignal(signals, path, value) {
5412
- const id = String(path).split(".")[0];
5437
+ function restoreSignalEntry(signals, id, value) {
5413
5438
  if (signals.has?.(id)) {
5414
- if (path === id) {
5415
- const entry = signals._entry?.(id);
5416
- if (typeof entry?._restore === "function" && isAsyncSignalSnapshot(value)) {
5417
- entry._restore(value);
5418
- return;
5419
- }
5439
+ const entry = signals._entry?.(id);
5440
+ if (typeof entry?._restore === "function" && isAsyncSignalSnapshot(value)) {
5441
+ entry._restore(value);
5442
+ return;
5420
5443
  }
5444
+ signals.set(id, value);
5445
+ return;
5446
+ }
5447
+ signals.register(id, createSignal(value));
5448
+ }
5449
+
5450
+ function applySignalPatch(signals, path, value) {
5451
+ if (typeof signals._setPath === "function") {
5452
+ signals._setPath(path, value);
5453
+ return;
5454
+ }
5455
+ const id = String(path).split(".")[0];
5456
+ if (signals.has?.(id)) {
5421
5457
  signals.set(path, value);
5422
5458
  return;
5423
5459
  }
@@ -1 +1 @@
1
- !function(e){const t=function(){"use strict";const e=(()=>{const e=Symbol.for("@async/framework.asyncSignal");return{asyncSignal:function t(r,n){if("string"!=typeof r||0===r.length)throw new TypeError("asyncSignal(id, fn) requires a non-empty string id.");if("function"!=typeof n)throw new TypeError("asyncSignal(id, fn) requires a function.");let o,s,a,i,c=!1,u=null,l="idle",f=0,p=r;const d=new Set,h=new Set,y={[e]:!0,kind:"async-signal",get id(){return p},get value(){return o},get loading(){return c},get error(){return u},get status(){return l},get version(){return f},set:e=>(o=e,c=!1,u=null,l="ready",b(),o),refresh(){if(!s)throw new Error(`Async signal "${p}" is not registered.`);i&&!i.aborted&&i.cancel(new Error(`Async signal "${p}" refreshed.`));const e=f+1;f=e,c=!0,u=null,l="loading";const t=new AbortController;a=t,i=t.signal,function(e,t){Object.defineProperty(e,"cancel",{configurable:!0,enumerable:!1,value(e){t.abort(e)}})}(i,t),b();const r={signals:s,id:p,get server(){const e=s._context?.()??{},t=e.server;return"function"==typeof t?._withContext?t._withContext({signals:s,router:e.router,loader:e.loader,cache:e.cache,abort:i,scheduler:e.scheduler}):t},get router(){return s._context?.().router},get loader(){return s._context?.().loader},get cache(){return s._context?.().cache},get scheduler(){return s._context?.().scheduler},get version(){return e},get abort(){return i},refresh:()=>y.refresh()};let d;try{d=s._collectDependencies(()=>n.call(r))}catch(t){return g(e,t),Promise.reject(t)}return function(e){for(const e of h)e();h.clear();for(const t of e){const e=String(t).split(".")[0];e&&e!==p&&h.add(s.subscribe(t,()=>m()))}}(d.dependencies),Promise.resolve(d.value).then(t=>w(e)?(o=t,c=!1,u=null,l="ready",b(),o):o,t=>w(e)?i?.aborted?(c=!1,l=void 0===o?"idle":"ready",b(),o):(g(e,t),o):o)},cancel(e){i&&!i.aborted&&i.cancel(e)},subscribe(e){if("function"!=typeof e)throw new TypeError("subscribe(fn) requires a function.");return d.add(e),()=>d.delete(e)},snapshot:()=>({value:o,loading:c,error:u,status:l,version:f}),_cloneSignalDeclaration:()=>t(r,n),_restore:(e={})=>function(e){return!(!e||"object"!=typeof e||Array.isArray(e))&&Object.hasOwn(e,"value")&&(Object.hasOwn(e,"loading")||Object.hasOwn(e,"error")||Object.hasOwn(e,"status")||Object.hasOwn(e,"version"))}(e)?(i&&!i.aborted&&i.cancel(new Error(`Async signal "${p}" restored from snapshot.`)),o=e.value,c=Boolean(e.loading),u=e.error??null,l="string"==typeof e.status?e.status:function({value:e,loading:t,error:r}){return t?"loading":r?"error":void 0===e?"idle":"ready"}({value:o,loading:c,error:u}),Number.isFinite(e.version)&&(f=e.version),b(),y):y.set(e),_bindRegistry(e,t){s=e,p=t;const r=()=>{s===e&&"idle"===l&&y.refresh()},n=s._context?.().scheduler;n?n.enqueue("async",r,{scope:p,key:`asyncSignal:${p}:initial`}):queueMicrotask(r)},_dispose(){y.cancel(new Error(`Async signal "${p}" disposed.`));for(const e of h)e();h.clear(),d.clear()}};function g(e,t){w(e)&&(c=!1,u=t,l="error",b())}function w(e){return e===f&&a?.signal===i}function m(){i&&!i.aborted&&i.cancel(new Error(`Async signal "${p}" dependency changed.`));const e=s?._context?.().scheduler;e?e.enqueue("async",()=>y.refresh(),{scope:p,key:`asyncSignal:${p}:refresh`}):y.refresh()}function b(){for(const e of[...d])e(y)}return y},isAsyncSignal:function(t){return Boolean(t?.[e])}}})(),t=(()=>{const e=new Set(["handler","component","asyncSignal","partial","route"]);function t(t={}){const r=function(e){if("string"!=typeof e||0===e.length)throw new TypeError("registryAssets.baseUrl must be a non-empty string.");return i(e)||e.startsWith("/")||e.startsWith("./")||e.startsWith("../")?a(e):`/${s(e)}`}(t.baseUrl??"_async"),n={component:"component",handler:"handler",asyncSignal:"asyncSignal",partial:"partial",route:"route",...t.paths??{}};for(const[t,r]of Object.entries(n))if(e.has(t)&&("string"!=typeof r||0===r.length))throw new TypeError(`Registry asset path for "${t}" must be a non-empty string.`);return{baseUrl:r,paths:n}}function r(e){return Boolean(e&&"object"==typeof e&&!Array.isArray(e)&&"string"==typeof e.url)}function n(t,n,c,u){if(!e.has(t))throw new Error(`Registry type "${t}" does not support lazy descriptors.`);if(!r(c))throw new TypeError(`Registry descriptor for "${t}:${n}" requires a url.`);const{path:l,hash:f}=function(e){const t=e.indexOf("#");return-1===t?{path:e,hash:""}:{path:e.slice(0,t),hash:e.slice(t+1)}}(c.url),p=function(e,t,r){if(i(t)||t.startsWith("/")||t.startsWith("./")||t.startsWith("../"))return t;const n=r.paths[e]??e;return function(...e){const[t,...r]=e;return[a(t),...r.map(s)].filter(Boolean).join("/")}(r.baseUrl,n,t)}(t,l,u);return{moduleUrl:p,exportNames:f?[f]:o(n,l),url:f?`${p}#${f}`:p}}function o(e,t){const r=[],n=e.split(".").filter(Boolean).at(-1),o=t.split("/").filter(Boolean).at(-1)?.replace(/\.[^.]+$/,"");for(const e of[n,o,"default"])e&&!r.includes(e)&&r.push(e);return r}function s(e){return String(e).replace(/^\/+|\/+$/g,"")}function a(e){return String(e).replace(/\/+$/g,"")}function i(e){return/^[A-Za-z][A-Za-z\d+.-]*:/.test(e)}function c(e){return!e||"object"!=typeof e||Array.isArray(e)?JSON.stringify(e):JSON.stringify(Object.keys(e).sort().map(t=>[t,e[t]]))}return{defineRegistrySnapshot:function(e={}){if(!e||"object"!=typeof e||Array.isArray(e))throw new TypeError("defineRegistrySnapshot(snapshot) requires an object.");return e},createLazyRegistry:function(e={}){const o=t(e.registryAssets??e.assets),s=e.importModule??(e=>import(e)),a=new Map,i=new Map;return{registryAssets:o,resolveUrl:(e,t,r)=>n(e,t,r,o),async resolve(e,t,c){if(!r(c))return c;const u=`${e}:${t}`;if(i.has(u))return i.get(u);const l=n(e,t,c,o);let f,p=a.get(l.moduleUrl);p||(p=Promise.resolve().then(()=>s(l.moduleUrl)),a.set(l.moduleUrl,p));try{f=await p}catch(r){throw a.get(l.moduleUrl)===p&&a.delete(l.moduleUrl),new Error(`Lazy ${e} "${t}" failed to import ${l.moduleUrl}: ${d=r,d instanceof Error?d.message:String(d)}`,{cause:r})}var d;const h=function(e,t,r,n){for(const r of t)if(r in e)return e[r];throw new Error(`Lazy ${r} "${n}" did not export ${t.map(e=>`"${e}"`).join(", ")}.`)}(f,l.exportNames,e,t);return i.set(u,h),h},inspect:()=>({registryAssets:o,modules:[...a.keys()],exports:[...i.keys()]})}},normalizeRegistryAssets:t,isLazyDescriptor:r,sameRegistryValue:function(e,t){return e===t||!(!r(e)||!r(t))&&c(e)===c(t)},publicRegistryValue:function(e,t){return r(e)?{...e}:{id:t}}}})(),r=(()=>{const{publicRegistryValue:e}=t,r=new Set(["signal","handler","server","partial","route","component","asyncSignal"]),n=new Set(["cache.browser","cache.server"]),o=new Set(["cache.browser.entries","cache.server.entries"]),s=new Set([...r,...n,...o]);function a(e){if(!s.has(e))throw new Error(`Unknown Async registry type "${e}".`);return e}function i(e,t){if("string"!=typeof t||0===t.length)throw new TypeError(`${e} id must be a non-empty string.`)}function c(t,r,n,s){return"server"===t&&"browser"===s.target?e(n,r):o.has(t)?n?.value:n}function u(e,t){return"cache.server.entries"===e&&"browser"===t}function l(e){const t={};for(const[r,n]of e)t[r]="function"==typeof n?.snapshot?n.snapshot():n?.value??n;return t}function f(t){const r={};for(const[n,o]of t)r[n]=e(o,n);return r}function p(e){return Object.fromEntries(e)}function d(e){const t={};for(const[r,n]of e)t[r]=n?.value;return t}function h(e){return e&&"object"==typeof e&&Object.hasOwn(e,"value")?e:{value:e}}return{createRegistryStore:function e(t={},n={}){const o=n.backing??{signal:new Map,handler:new Map,server:new Map,partial:new Map,route:new Map,component:new Map,asyncSignal:new Map,cache:{browser:new Map,server:new Map},cacheEntries:{browser:new Map,server:new Map}},s=n.target??"server",y={target:s,register(e,t,r){const n=y._map(e);if(i(e,t),n.has(t))throw new Error(`${e} "${t}" is already registered.`);return n.set(t,r),t},registerMany(e,t={}){for(const[r,n]of Object.entries(t??{}))y.register(e,r,n);return y},set(e,t,r){const n=y._map(e);return i(e,t),n.set(t,r),r},unregister:(e,t)=>y.delete(e,t),delete:(e,t)=>y._map(e).delete(t),keys:e=>u(e,s)?[]:[...y._map(e).keys()],entries(e,t={}){const r=a(e);return u(r,t.target??s)?[]:[...y._map(r)].map(([e,n])=>[e,c(r,e,n,{target:s,...t})])},has:(e,t)=>(i(e,t),!u(e,s)&&y._map(e).has(t)),get(e,t,r={}){i(e,t);const n=a(e);if(u(n,r.target??s))return;const o=y._map(n).get(t);return void 0!==o?c(n,t,o,{target:s,...r}):void 0},snapshot(e={}){const t=e.target??s;return{signal:l(o.signal),handler:f(o.handler),server:f(o.server),partial:f(o.partial),route:p(o.route),component:f(o.component),asyncSignal:f(o.asyncSignal),cache:{browser:p(o.cache.browser),server:p(o.cache.server)},entries:{browser:d(o.cacheEntries.browser),server:"browser"===t?{}:d(o.cacheEntries.server)}}},rawSnapshot:()=>({signal:Object.fromEntries(o.signal),handler:Object.fromEntries(o.handler),server:Object.fromEntries(o.server),partial:Object.fromEntries(o.partial),route:Object.fromEntries(o.route),component:Object.fromEntries(o.component),asyncSignal:Object.fromEntries(o.asyncSignal),cache:{browser:Object.fromEntries(o.cache.browser),server:Object.fromEntries(o.cache.server)}}),view:(t={})=>e(void 0,{backing:o,target:t.target??s}),_map(e){const t=a(e);if(r.has(t))return o[t];if("cache.browser"===t)return o.cache.browser;if("cache.server"===t)return o.cache.server;if("cache.browser.entries"===t)return o.cacheEntries.browser;if("cache.server.entries"===t)return o.cacheEntries.server;throw new Error(`Unknown Async registry type "${e}".`)}};return function(e,t={}){e.registerMany("signal",t.signal),e.registerMany("handler",t.handler),e.registerMany("server",t.server),e.registerMany("partial",t.partial),e.registerMany("route",t.route),e.registerMany("component",t.component),e.registerMany("asyncSignal",t.asyncSignal),e.registerMany("cache.browser",t.cache?.browser),e.registerMany("cache.server",t.cache?.server);const r=t.entries??{};for(const[t,n]of Object.entries(r.browser??{}))e.set("cache.browser.entries",t,h(n));for(const[t,n]of Object.entries(r.server??{}))e.set("cache.server.entries",t,h(n))}(y,t),y},attachRegistryInspection:function(e,t,r){return Object.defineProperty(e,"registry",{configurable:!0,enumerable:!0,value:t}),e.keys=()=>t.keys(r),e.entries=()=>t.entries(r),e.inspect=()=>t.entries(r),e}}})(),n=(()=>{const{attachRegistryInspection:e,createRegistryStore:t}=r,n=Symbol.for("@async/framework.cacheDefinition");function o(e={}){return{[n]:!0,kind:"cache-definition",store:e.store??"memory",ttl:e.ttl}}function s(e){if("string"!=typeof e||0===e.length)throw new TypeError("Cache id must be a non-empty string.")}function a(e){if("string"!=typeof e||0===e.length)throw new TypeError("Cache key must be a non-empty string.")}return{defineCache:o,createCacheRegistry:function(r={},{now:i=()=>Date.now(),registry:c,type:u="cache.browser"}={}){const l=c??t(),f=l._map(u),p=l._map(`${u}.entries`),d=new Map,h=e({register(e,t=o()){s(e);const r=function(e){return e?.[n]?e:o(e)}(t);if(f.has(e))throw new Error(`Cache "${e}" is already registered.`);return f.set(e,r),e},registerMany(e){for(const[t,r]of Object.entries(e??{}))h.register(t,r);return h},unregister:e=>(s(e),f.delete(e)),resolve:e=>(s(e),f.get(e)),get:e=>(a(e),y(e).value),set(e,t,r={}){a(e);const n=r.ttl??function(e,t){if(void 0!==t)return f.get(t);if(f.has(e))return f.get(e);const r=e.split(":")[0];return f.get(r)}(e,r.cache)?.ttl;return p.set(e,{value:t,expiresAt:void 0===n?void 0:i()+n}),t},async getOrSet(e,t,r={}){if(a(e),"function"!=typeof t)throw new TypeError("cache.getOrSet(key, fn) requires a function.");const n=y(e);if(n.found)return n.value;if(d.has(e))return d.get(e);let o;return o=Promise.resolve().then(t).then(t=>(d.get(e)===o&&h.set(e,t,r),t)).finally(()=>{d.get(e)===o&&d.delete(e)}),d.set(e,o),o},delete:e=>(a(e),d.delete(e),p.delete(e)),clear(e){if(void 0===e)return p.clear(),d.clear(),h;for(const t of[...p.keys()])t.startsWith(e)&&p.delete(t);for(const t of[...d.keys()])t.startsWith(e)&&d.delete(t);return h},snapshot(){const e={};for(const[t]of p){const{found:r,value:n}=y(t);r&&void 0!==n&&(e[t]=n)}return e},restore(e={}){for(const[t,r]of Object.entries(e??{}))h.set(t,r);return h},entryKeys:()=>[...p.keys()],entryEntries:()=>l.entries(`${u}.entries`),_adoptMany(e={}){for(const[t,r]of Object.entries(e??{}))f.has(t)||h.register(t,r);return h}},l,u);return h.registerMany(r),h;function y(e){const t=p.get(e);return t?void 0!==t.expiresAt&&t.expiresAt<=i()?(p.delete(e),{found:!1,value:void 0}):{found:!0,value:t.value}:{found:!1,value:void 0}}}}})(),o=(()=>{const e=Object.freeze({async:["async:"],class:["class:"],signal:["signal:"],on:["on:"]});function t(t={}){return{async:r(t.async,e.async),class:r(t.class,e.class),signal:r(t.signal,e.signal),on:r(t.on,e.on)}}function r(e,t){return(null==e?t:Array.isArray(e)?e:[e]).map(e=>{if("string"!=typeof e||0===e.length)throw new TypeError("Attribute prefixes must be non-empty strings.");return e})}return{defineAttributeConfig:function(e={}){return t(e)},normalizeAttributeConfig:t,attributeName:function(e,r,n){return t(e)[r][0]+n},readAttribute:function(e,r,n,o){for(const s of t(r)[n]){const t=`${s}${o}`;if(e.hasAttribute?.(t))return e.getAttribute(t)}return null},matchAttribute:function(e,r,n){for(const o of t(r)[n])if(e.startsWith(o))return e.slice(o.length);return null}}})(),s=(()=>{const{asyncSignal:n,isAsyncSignal:o}=e,{attachRegistryInspection:s,createRegistryStore:a}=r,{createLazyRegistry:i,isLazyDescriptor:c}=t,u=Symbol.for("@async/framework.signal"),l=Symbol.for("@async/framework.computed"),f=Symbol.for("@async/framework.effect"),p=Symbol.for("@async/framework.signalRef"),d=[];function h(e){let t=e;const r=new Set;return{[u]:!0,kind:"signal",get value(){return t},set value(e){this.set(e)},set:e=>(Object.is(t,e)||(t=e,function(){for(const e of[...r])e(t)}()),t),update(e){return this.set(e(t))},subscribe(e){if("function"!=typeof e)throw new TypeError("subscribe(fn) requires a function.");return r.add(e),()=>r.delete(e)},snapshot:()=>t,_cloneSignalDeclaration:()=>h(t)}}function y(e){return"function"==typeof e?._cloneSignalDeclaration?e._cloneSignalDeclaration():g(e)?h("function"==typeof e.snapshot?e.snapshot():e.value):h(e)}function g(e){return Boolean(e&&"object"==typeof e&&"function"==typeof e.subscribe)}function w(e,t){let r=e;for(const e of t){if(null==r)return;r=r[e]}return r}function m(e,t){return Array.isArray(e)?[...e]:e&&"object"==typeof e?{...e}:(r=t,String(Number(r))===String(r)?[]:{});var r}function b(e,t){const r=e.get(t);if(!r)throw new Error(`Signal "${t}" is not registered.`);return r}function v(e){if("string"!=typeof e||0===e.length)throw new TypeError("Signal id must be a non-empty string.")}return{createSignal:h,computed:function e(t){if("function"!=typeof t)throw new TypeError("computed(fn) requires a function.");const r=h(void 0);return{[l]:!0,kind:"computed",get value(){return r.value},set:e=>r.set(e),update:e=>r.update(e),subscribe:e=>r.subscribe(e),snapshot:()=>r.snapshot(),_cloneSignalDeclaration:()=>e(t),_bindRegistry:(e,n)=>e.effect(()=>{r.set(t.call({signals:e,id:n,server:e._context?.().server,router:e._context?.().router,loader:e._context?.().loader,cache:e._context?.().cache,scheduler:e._context?.().scheduler}))})}},effect:function e(t){if("function"!=typeof t)throw new TypeError("effect(fn) requires a function.");return{[f]:!0,kind:"effect",fn:t,_cloneSignalDeclaration:()=>e(t),_bindRegistry:e=>e.effect(t)}},createSignalRegistry:function(e={},t={}){const r=t.registry??a(),u=t.type??"signal",l=r._map(u),f=r._map("asyncSignal"),S=t.lazyRegistry??i(t),E=new Map,$={},A=new Set;let j=0,R=0;const O=s({register(e,t){if(v(e),l.has(e))throw new Error(`Signal "${e}" is already registered.`);const r=function(e){return g(e)?e:h(e)}(t);return l.set(e,r),k(e,r),O.ref(e)},registerMany(e){for(const[t,r]of Object.entries(e??{}))O.register(t,r);return O},unregister:e=>(v(e),!!l.has(e)&&(E.get(e)?.(),E.delete(e),l.get(e)?._dispose?.(),l.delete(e),A.delete(e),!0)),ensure:(e,t)=>(v(e),T(e),l.has(e)||O.register(e,h(t)),O.ref(e)),has:e=>l.has(e)||f.has(e),get(e){const t=_(e);return function(e){const t=d.at(-1);t&&t.add(e)}(t.path),function(e,t){if(o(e)&&t[0]?.startsWith("$"))return w(function(e,t){switch(t){case"$value":return e.value;case"$loading":return e.loading;case"$error":return e.error;case"$status":return e.status;case"$version":return e.version;default:return}}(e,t[0]),t.slice(1));return w(e.value,t)}(b(l,t.id),t.parts)},set(e,t){const r=_(e),n=b(l,r.id);if(0===r.parts.length)return n.set(t);const o=function(e,t,r){const n=m(e,t[0]);let o=n;for(let e=0;e<t.length-1;e+=1){const r=t[e],n=t[e+1];o[r]=m(o[r],n),o=o[r]}return o[t.at(-1)]=r,n}(n.value,r.parts,t);return n.set(o),t},update(e,t){if("function"!=typeof t)throw new TypeError("update(path, fn) requires a function.");return O.set(e,t(O.get(e)))},ref:e=>(v(e),T(e),function(e,t){return{[p]:!0,kind:"signal-ref",id:t,get value(){return e.get(t)},set value(r){e.set(t,r)},get loading(){return e._entry(t).loading??!1},get error(){return e._entry(t).error??null},get status(){return e._entry(t).status??"ready"},get version(){return e._entry(t).version??0},get:()=>e.get(t),set:r=>e.set(t,r),update:r=>e.update(t,r),subscribe:r=>e.subscribe(t,r),refresh(){const r=e._entry(t);if("function"!=typeof r.refresh)throw new Error(`Signal "${t}" cannot refresh.`);return r.refresh()},cancel(r){const n=e._entry(t);if("function"!=typeof n.cancel)throw new Error(`Signal "${t}" cannot cancel.`);return n.cancel(r)},toString:()=>t,[Symbol.toPrimitive]:()=>t}}(O,e)),subscribe(e,t,r={}){if("function"!=typeof t)throw new TypeError("subscribe(path, fn) requires a function.");const n=_(e),o=b(l,n.id),s=++j;return o.subscribe(()=>{!function(e,t={}){const r=t.scheduler;r&&"sync"!==t.phase?r.enqueue(t.phase??"effect",e,{scope:t.scope,key:t.key}):e()}(()=>t(O.get(n.path),{id:n.id,path:n.path,signal:o}),{...r,key:r.key??`signal:${n.path}:${s}`})})},snapshot(){const e={};for(const[t,r]of l)e[t]="function"==typeof r.snapshot?r.snapshot():r.value;return e},asyncSignal:(e,t)=>(O.register(e,n(e,t)),O.ref(e)),effect(e,t={}){let r,n=[],o=!1;const s=t.scheduler,a=++R,i=()=>{if(o)return;"function"==typeof r&&r();for(const e of n)e();n=[];const t=O._collectDependencies(()=>e.call({signals:O,server:$.server,router:$.router,loader:$.loader,cache:$.cache,scheduler:$.scheduler}));r=t.value,n=t.dependencies.map(e=>O.subscribe(e,c))},c=()=>{s?s.enqueue(t.phase??"effect",i,{scope:t.scope,key:t.key??`effect:${a}`}):i()};return i(),()=>{o=!0,"function"==typeof r&&r();for(const e of n)e()}},destroy(){for(const e of E.values())e();E.clear();for(const e of l.values())e._dispose?.();l.clear()},_collectDependencies(e){const t=new Set;d.push(t);try{return{value:e(),dependencies:[...t]}}finally{d.pop()}},_entry:e=>(T(e),b(l,e)),_setContext:(e={})=>(Object.assign($,e),O),_context:()=>$,_adoptMany(e={}){for(const[t,r]of Object.entries(e??{})){if(!l.has(t)){const e=y(r);l.set(t,e),k(t,e);continue}k(t,l.get(t))}return O}},r,u);for(const[e,t]of l)k(e,t);return O.registerMany(e),O;function k(e,t){if(A.has(e)||"function"!=typeof t?._bindRegistry)return;A.add(e);const r=t._bindRegistry(O,e);"function"==typeof r&&E.set(e,r)}function _(e){if("string"!=typeof e||0===e.length)throw new TypeError("Signal path must be a non-empty string.");const t=e.split(".");for(let r=t.length;r>0;r-=1){const n=t.slice(0,r).join(".");if(l.has(n)||f.has(n))return T(n),{id:n,parts:t.slice(r),path:e}}const[r,...n]=t;return{id:r,parts:n,path:e}}function T(e){if(l.has(e)||!f.has(e))return;const t=f.get(e);if(!c(t)&&"function"!=typeof t)throw new TypeError(`Async signal "${e}" must be a function or lazy descriptor.`);const r=n(e,async function(...r){const n=await S.resolve("asyncSignal",e,t);if("function"!=typeof n)throw new TypeError(`Async signal "${e}" did not resolve to a function.`);return n.apply(this,r)});l.set(e,r),k(e,r)}},cloneSignalDeclaration:y,isSignalRef:function(e){return Boolean(e?.[p])},signal:h}})(),a=(()=>{const{isSignalRef:e}=s,{attributeName:t,matchAttribute:r,normalizeAttributeConfig:n}=o,a=Symbol.for("@async/framework.template"),i=Symbol.for("@async/framework.rawHtml");function c(e){return Boolean(e?.[a])}function u(e,t={}){if(c(e)){const r=p(t);let n="";for(let t=0;t<e.strings.length;t+=1)n+=e.strings[t],t<e.values.length&&(n+=l(e.values[t],{...r,attribute:d(e.strings[t])}));return n}return l(e,p(t))}function l(n,o=p()){return n?.[i]?n.html:c(n)?u(n,o):o.attribute?function(n,o){const s=r(o.attribute.name,o.attributes,"signal"),a=r(o.attribute.name,o.attributes,"class"),i=function(t,r){return e(t)?t.id:"string"==typeof t&&r.signals?.has?.(t)?t:null}(n,o);if("value"===o.attribute.name&&i){const r=function(t,r){return e(t)?t.value:"string"==typeof t&&r.signals?.has?.(t)?r.signals.get(t):t}(n,o),s=t(o.attributes,"signal","value");return`${h(r)}${o.attribute.quote} ${s}=${o.attribute.quote}${h(i)}`}if(null!=s||null!=a){if(i)return h(i);if(function(e){return Boolean(e&&"object"==typeof e)}(n))return h(function(e,t){return"function"!=typeof t.bind?e:t.bind(e)}(n,o))}return f(n,o)}(n,o):Array.isArray(n)?n.map(e=>l(e,o)).join(""):e(n)?h(n.value):null==n||!1===n?"":h(n)}function f(t,r){return Array.isArray(t)?t.map(e=>f(e,r)).join(""):e(t)?h(t.value):null==t||!1===t?"":h(t)}function p(e={}){return{...e,attributes:n(e.attributes)}}function d(e){const t=e.match(/(?:^|[\s<])([^\s"'=<>`]+)\s*=\s*(["'])$/);return t?{name:t[1],quote:t[2]}:null}function h(e){return String(e).replaceAll("&","&amp;").replaceAll("<","&lt;").replaceAll(">","&gt;").replaceAll('"',"&quot;").replaceAll("'","&#39;")}return{html:function(e,...t){return{[a]:!0,strings:e,values:t}},isTemplateResult:c,rawHtml:function(e){return{[i]:!0,html:String(e??"")}},renderTemplate:u,escapeHtml:h}})(),i=(()=>{const{attributeName:e}=o,{escapeHtml:n,rawHtml:s,renderTemplate:i}=a,{attachRegistryInspection:c,createRegistryStore:u}=r,{createLazyRegistry:l,isLazyDescriptor:f}=t,p=Symbol.for("@async/framework.component");let d=0;function h(e){if("function"!=typeof e)throw new TypeError("defineComponent(fn) requires a function.");return Object.defineProperty(e,p,{configurable:!0,value:!0}),e}function y(e){return Boolean(e?.[p])}function g(t,r={},o,a="component"){if(!y(t)&&"function"!=typeof t)throw new TypeError("renderComponent(Component) requires a component function.");const c=`${a}.${m(t)}.${++d}`,u=[],l=[],f=[],p=[],h=[],b={attributes:o.attributes,signals:o.signals,bind(e){const t=o.loader?._registerBinding?.(e);if(!t)throw new Error("Inline template bindings require a Loader.");return h.push(t),t}},v=e=>i(e,b),S=function({runtime:t,scope:r,cleanups:o,attachHooks:a,visibleHooks:i,destroyHooks:c,renderScopedTemplate:u}){const{signals:l,handlers:f,loader:p,server:d,router:h,cache:y,scheduler:m}=t,b=new WeakMap;let v=0,S=0;const E={scope:r,signals:l,handlers:f,loader:p,server:d,router:h,cache:y,scheduler:m,signal(e,t){if(1===arguments.length){const t=w(r,"signal."+ ++S),n=l.ensure(t,e);return o.push(()=>l.unregister?.(t)),n}const n=w(r,e),s=!l.has(n),a=l.ensure(n,t);return s&&o.push(()=>l.unregister?.(n)),a},computed(e,t){const n=w(r,e),s=!l.has(n),a=l.ensure(n,void 0);s&&o.push(()=>l.unregister?.(n));const i=l.effect(()=>{l.set(n,t.call(E))});return o.push(i),a},asyncSignal(e,t){const n=w(r,e),s=!l.has(n);return l.has(n)||l.asyncSignal(n,t),s&&o.push(()=>l.unregister?.(n)),l.ref(n)},effect(e){const t=l.effect(()=>e.call(E),{scheduler:m,phase:"effect",scope:r});return o.push(t),t},handler(e,t){if("function"==typeof e&&void 0===t){const t=e;if(b.has(t))return b.get(t);const r=$("handler."+ ++v,t);return b.set(t,r),r}if("function"!=typeof t)throw new TypeError("this.handler(name, fn) or this.handler(fn) requires a function.");return $(e,t)},render(e,n={}){const c=g(e,n,t,r);return o.push(c.cleanup),a.push(e=>c.attach(e)),i.push(e=>c.visible(e,p._observeVisible)),s(c.html)},suspense(r,o){const a=r?.id;if(!a)throw new TypeError("this.suspense(signalRef, views) requires a signal ref.");const i=function(e){const t="function"==typeof e?{ready:e}:e;if(!t||"object"!=typeof t||Array.isArray(t))throw new TypeError("this.suspense(signalRef, views) requires views to be a function or object.");for(const e of["loading","ready","error"])if(Object.hasOwn(t,e)&&void 0!==t[e]&&"function"!=typeof t[e])throw new TypeError(`this.suspense(signalRef, views) view "${e}" must be a function.`);return t}(o),c=[];for(const o of["loading","ready","error"]){const s=i[o];if(!s)continue;const l=e(t.attributes,"async",o),f=u(s.call(E,r));c.push(`<template ${l}="${n(a)}">${f}</template>`)}return s(c.join(""))},on(e,t){if("string"!=typeof e||0===e.length)throw new TypeError("Component lifecycle event must be a non-empty string.");if("function"!=typeof t)throw new TypeError(`Component lifecycle "${e}" requires a function.`);const r="mount"===e?"attach":e;if("attach"!==r)if("visible"!==r){if("destroy"!==r)throw new Error(`Unsupported component lifecycle event "${e}".`);c.push(()=>t.call(E))}else i.push(e=>t.call(E,e));else a.push(e=>t.call(E,e))},onMount(e){E.on("attach",e)},onVisible(e){E.on("visible",e)}};return E;function $(e,t){const n=w(r,e);return f.register(n,e=>t.call({...E,...e},e)),o.push(()=>f.unregister?.(n)),n}}({runtime:o,scope:c,cleanups:u,attachHooks:l,visibleHooks:f,destroyHooks:p,renderScopedTemplate:v}),E=t.call(S,r);if(E&&"function"==typeof E.then)throw new TypeError(`Component "${m(t)}" returned a Promise. Async components are not supported by synchronous renderComponent(). Use an async partial or handler instead.`);return{html:v(E),attach(e){for(let t=0;t<l.length;t+=1){const r=l[t];o.scheduler?.enqueue("lifecycle",()=>{const t=r(e);"function"==typeof t&&u.push(t)},{scope:c,key:`attach:${t}`})??$(r,e)}},mount(e){this.attach(e)},visible(e,t){if(0===f.length)return;const r=t(e,()=>{for(let t=0;t<f.length;t+=1){const r=f[t];o.scheduler?.enqueue("lifecycle",()=>{const t=r(e);"function"==typeof t&&u.push(t)},{scope:c,key:`visible:${t}`})??A(r,e)}});"function"==typeof r&&u.push(r)},cleanup(){for(;p.length>0;)p.pop()?.();for(o.scheduler?.markScopeDestroyed(c);u.length>0;)u.pop()?.();for(;h.length>0;)o.loader?._releaseBinding?.(h.pop())}};function $(e,t){const r=e(t);"function"==typeof r&&u.push(r)}function A(e,t){const r=e(t);"function"==typeof r&&u.push(r)}}function w(e,t){if("string"!=typeof t||0===t.length)throw new TypeError("Scoped signal or handler name must be a non-empty string.");return`${e}.${t}`}function m(e){return e.displayName||e.name||"anonymous"}return{defineComponent:h,createComponentRegistry:function(e={},t={}){const r=t.registry??u(),n=t.type??"component",o=r._map(n),s=t.lazyRegistry??l(t),a=new Map,i=c({register(e,t){if("string"!=typeof e||0===e.length)throw new TypeError("Component id must be a non-empty string.");if(!y(t)&&"function"!=typeof t&&!f(t))throw new TypeError(`Component "${e}" must be a component function.`);if(o.has(e))throw new Error(`Component "${e}" is already registered.`);return o.set(e,t),e},registerMany(e){for(const[t,r]of Object.entries(e??{}))i.register(t,r);return i},unregister(e){if("string"!=typeof e||0===e.length)throw new TypeError("Component id must be a non-empty string.");return a.delete(e),o.delete(e)},resolve(e){if("string"!=typeof e||0===e.length)throw new TypeError("Component id must be a non-empty string.");const t=o.get(e);return f(t)?(a.has(e)||a.set(e,async function(...r){const o=await s.resolve(n,e,t);if("function"!=typeof o)throw new TypeError(`Component "${e}" did not resolve to a function.`);return o.apply(this,r)}),a.get(e)):t},_adoptMany(e={}){for(const[t,r]of Object.entries(e??{}))o.has(t)||i.register(t,r);return i}},r,n);return i.registerMany(e),i},isComponent:y,renderComponent:g,component:h}})(),c=(()=>{const e=new Set(["value","signals","boundary","html","redirect","error"]),t=Symbol.for("@async/framework.appliedServerResult"),r=new WeakSet;async function n(e,n={}){if(!h(e))return e;if(e[t]||r.has(e))return e;if(e.error)throw s(e),(o=e.error)instanceof Error?o:o&&"object"==typeof o&&"string"==typeof o.message?Object.assign(new Error(o.message),o):new Error(String(o));var o;if(e.signals&&n.signals)for(const[t,r]of Object.entries(e.signals))n.signals.set?.(t,r);return e.cache?.browser&&n.cache?.restore&&n.cache.restore(e.cache.browser),e.boundary&&Object.hasOwn(e,"html")&&n.loader?.swap?.(e.boundary,e.html),e.redirect&&await(n.router?.navigate?.(e.redirect)),s(e),e}function o(e){return h(e)&&Object.hasOwn(e,"value")?e.value:e}function s(e){return Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:!0}),e}function a(e={}){const t=f(e);if(t)return p(new t.ownerDocument.defaultView.FormData(t));const r=e.element??e.el??e.event?.target;return r?{value:"value"in r?r.value:void 0,checked:"checked"in r?r.checked:void 0,dataset:r.dataset?{...r.dataset}:{}}:{}}function i(e,t={},r=()=>({})){const s=new Map;return function a(c){const u=c.join(".");if(s.has(u))return s.get(u);const l=new Proxy(async(...t)=>{if(0===c.length)throw new Error("Server namespace is not directly callable.");const s=r()??{},a=await e(c.join("."),t,s);return await n(a,s),o(a)},{get(n,o){if("then"!==o)return o in n?n[o]:0===c.length&&"_withContext"===o?(n={})=>i(e,t,()=>({...r()??{},...n})):0===c.length&&"run"===o&&"function"==typeof t.run?(e,n=[],o={})=>t.run(e,n,{...r()??{},...o}):0===c.length&&Object.hasOwn(t,o)?t[o]:o===Symbol.toStringTag?"AsyncServerNamespace":"toString"===o?()=>0===c.length?"server":`server.${c.join(".")}`:a([...c,String(o)])}});return s.set(u,l),l}([])}function c(e=[],t){const r={};for(const n of e)r[n]=u(t,n);return r}function u(e,t){if(!e||"function"!=typeof e.get)throw new Error(`Signal "${t}" cannot be read without a signal registry.`);return e.get(t)}function l(e,t,{forServer:r}={}){if(("$event"===e||"$el"===e)&&r)throw new Error(`${e} cannot be passed to a server command.`);if("$event"===e)return t.event;if("$el"===e)return t.element??t.el;if("$value"===e){const e=t.element??t.el??t.event?.target;return e?.value}if("$checked"===e){const e=t.element??t.el??t.event?.target;return e?.checked}if("$form"===e){const e=f(t);return e?p(new e.ownerDocument.defaultView.FormData(e)):{}}if("$dataset"===e){const e=t.element??t.el??t.event?.target;return e?.dataset?{...e.dataset}:{}}throw new Error(`Event local "${e}" is not supported.`)}function f(e){const t=e.event,r=e.element??e.el??t?.target;return"FORM"===r?.tagName?r:"submit"===t?.type&&"FORM"===t.target?.tagName?t.target:"submit"===t?.type&&r?.form?r.form:null}function p(e){const t={};for(const[r,n]of e.entries())Object.hasOwn(t,r)?t[r]=Array.isArray(t[r])?[...t[r],n]:[t[r],n]:t[r]=n;return t}function d(e,t=new Set){if("bigint"==typeof e)throw new Error("Server proxy JSON transport does not support BigInt values.");if(null==e||"object"!=typeof e)return;if(t.has(e))throw new Error("Server proxy JSON transport does not support circular values.");t.add(e);const r=Object.prototype.toString.call(e);if("[object File]"===r||"[object Blob]"===r||"[object FormData]"===r)throw new Error("Server proxy JSON transport does not support File, Blob, or FormData values yet.");if(function(e,t=Object.prototype.toString.call(e)){return"[object URLSearchParams]"===t||"[object Headers]"===t||"[object Request]"===t||"[object Response]"===t||"[object ReadableStream]"===t||"[object ArrayBuffer]"===t||ArrayBuffer.isView(e)}(e,r))throw new Error("Server proxy JSON transport does not support URLSearchParams, Headers, Request, Response, ReadableStream, ArrayBuffer, or typed array values yet.");if(Array.isArray(e)){for(const r of e)d(r,t);t.delete(e)}else{for(const r of Object.values(e))d(r,t);t.delete(e)}}function h(t){return!(!t||"object"!=typeof t||Array.isArray(t))&&Object.keys(t).some(t=>e.has(t))}function y(e){if("string"!=typeof e||0===e.length)throw new TypeError("Server function id must be a non-empty string.")}return{createServerProxy:function({endpoint:e="/__async/server",transport:t,signals:s,loader:u,router:l,cache:f,scheduler:p,headers:h={}}={}){if("function"!=typeof t)throw new TypeError("createServerProxy(...) requires a transport function.");const g={signals:s,loader:u,router:l,cache:f,scheduler:p};async function w(s,i=[],u={}){y(s);const l={...g,...u},f={args:i,input:u.input??a(l),signals:u.signalValues??c(u.signalPaths,l.signals)};d(f);const p=await t(function(e,t){return`${String(e).replace(/\/$/,"")}/${encodeURIComponent(t)}`}(e,s),{method:"POST",headers:{"content-type":"application/json",...h},body:JSON.stringify(f),signal:u.abort});if(function(e,t){if(!t||"object"!=typeof t)throw new Error(`Server function "${e}" transport returned an invalid response: expected a fetch Response-like object.`);if("boolean"!=typeof t.ok)throw new Error(`Server function "${e}" transport returned an invalid response: missing boolean ok.`);if(!t.headers||"function"!=typeof t.headers.get)throw new Error(`Server function "${e}" transport returned an invalid response: missing headers.get(name).`)}(s,p),!p.ok)throw new Error(`Server function "${s}" failed with ${p.status}.`);const w=await async function(e,t){if(204===t.status)return{value:void 0};if((t.headers.get("content-type")??"").includes("application/json")){if("function"!=typeof t.json)throw new Error(`Server function "${e}" transport returned an invalid response: missing json().`);try{return await t.json()}catch(t){throw new Error(`Server function "${e}" returned invalid JSON: ${r=t,r instanceof Error?r.message:String(r)}`,{cause:t})}}var r;if("function"!=typeof t.text)throw new Error(`Server function "${e}" transport returned an invalid response: missing text().`);return{value:await t.text()}}(s,p);return await n(w,l),(m=o(w))&&"object"==typeof m&&r.add(m),m;var m}return i(w,{run:w,_setContext(e={}){Object.assign(g,e)}},()=>g)},resolveServerCommandArguments:function(e,t={}){const r=[],n={},o=[];for(const s of e){if("local"===s.type){r.push(l(s.name,t,{forServer:!0}));continue}const e=u(t.signals,s.path);r.push(e),n[s.path]=e,o.push(s.path)}return{args:r,signalValues:n,signalPaths:o}},applyServerResult:n,unwrapServerResult:o,defaultInput:a,createServerNamespace:i,createSignalReader:function(e){return e&&"function"!=typeof e.get?{get:t=>function(e,t){return String(t).split(".").reduce((e,t)=>e?.[t],e)}(e,t),snapshot:()=>({...e})}:e},assertServerId:y}})(),u=(()=>{const{applyServerResult:e,defaultInput:n,resolveServerCommandArguments:o,unwrapServerResult:s}=c,{attachRegistryInspection:a,createRegistryStore:i}=r,{createLazyRegistry:u,isLazyDescriptor:l}=t,f=new Set(["prevent","preventDefault","stopPropagation","stopImmediatePropagation"]),p={prevent:d,preventDefault:d,stopPropagation(){this.event?.stopPropagation?.()},stopImmediatePropagation(){this.event?.stopImmediatePropagation?.()}};function d(){this.event?.preventDefault?.()}function h(e){if("string"!=typeof e||0===e.trim().length)throw new TypeError("Handler ref must be a non-empty string.");return e.split(";").map(e=>e.trim()).filter(Boolean).map(g)}function y(e){if("string"!=typeof e||0===e.length)throw new TypeError("Handler id must be a non-empty string.")}function g(e){if(e.startsWith("server."))return function(e){const t=e.indexOf("(");if(-1===t||!e.endsWith(")"))throw new Error(`Server command "${e}" must be called with parentheses.`);const r=e.slice(7,t).trim();if(!function(e){return/^[^.\s();]+(?:\.[^.\s();]+)*$/.test(e)}(r))throw new Error(`Server command "${e}" has an invalid function id.`);return{type:"server",id:r,args:w(e.slice(t+1,-1))}}(e);if(e.includes("(")||e.includes(")"))throw new Error(`Command "${e}" is not supported.`);return{type:"handler",id:e}}function w(e){return 0===e.trim().length?[]:e.split(",").map(e=>e.trim()).filter(Boolean).map(m)}function m(e){if(!/^[^\s,();]+$/.test(e))throw new Error(`Argument "${e}" is not supported.`);return e.startsWith("$")?{type:"local",name:e}:{type:"signal",path:e}}return{createHandlerRegistry:function(t={},r={}){const c=r.registry??i(),d=r.type??"handler",g=c._map(d),w=r.lazyRegistry??u(r),m=new Map,b=a({register(e,t){if(y(e),"function"!=typeof t&&!l(t))throw new TypeError(`Handler "${e}" must be a function.`);if(g.has(e))throw new Error(`Handler "${e}" is already registered.`);return g.set(e,t),e},registerMany(e){for(const[t,r]of Object.entries(e??{}))b.register(t,r);return b},unregister:e=>(y(e),m.delete(e),g.delete(e)),resolve(e){y(e);const t=g.get(e);return l(t)?(m.has(e)||m.set(e,async function(...r){const n=await w.resolve(d,e,t);if("function"!=typeof n)throw new TypeError(`Handler "${e}" did not resolve to a function.`);return n.apply(this,r)}),m.get(e)):t},async run(t,r={}){const a=h(t),i=[];let c=!1;const u={...r,handlers:b,input:r.input??n(r),stop(){c=!0}};for(const t of a){if(c)break;if("server"===t.type){if(!u.server||"function"!=typeof u.server.run)throw new Error(`Server command "${t.id}" cannot run without a server registry.`);const r=o(t.args,u),n=await u.server.run(t.id,r.args,{...u,signalPaths:r.signalPaths,signalValues:r.signalValues});await e(n,u),i.push(s(n));continue}const r=b.resolve(t.id);if(!r)throw new Error(`Handler "${t.id}" is not registered.`);const n=await r.call(u,u);f.has(t.id)&&r===p[t.id]||i.push(n)}return i},_adoptMany(e={}){for(const[t,r]of Object.entries(e??{}))g.has(t)||b.register(t,r);return b}},c,d);return function(e,t){for(const[r,n]of Object.entries(p))if(t.has(r)){if(t.get(r)!==n)throw new Error(`Handler "${r}" is already registered.`)}else e.register(r,n)}(b,g),b.registerMany(t),b},parseHandlerRef:h,isHandlerToken:function(e){return f.has(e)}}})(),l=(()=>{const e=["binding","lifecycle","effect","async","post"];function t(e){return"object"==typeof e&&null!==e||"function"==typeof e}function r(){}return{createScheduler:function(n={}){const o=[...n.phases??e],s=new Map(o.map(e=>[e,[]])),a=new Map,i=new WeakSet,c=new Set,u=new WeakMap,l="function"==typeof n.onError?n.onError:void 0,f=n.maxDepth??100,p=n.strategy??"microtask";let d=!1,h=!1,y=!1,g=0,w=0,m=0;const b={strategy:p,phases:o,batch(e){if("function"!=typeof e)throw new TypeError("scheduler.batch(fn) requires a function.");A(),g+=1;let t=!1;try{const r=e();return r&&"function"==typeof r.then?(t=!0,r.finally(()=>{g-=1,v()})):r}finally{!t&&g>0&&(g-=1,v())}},enqueue(e,t,n={}){if(A(),function(e){if(!s.has(e))throw new Error(`Unknown scheduler phase "${e}".`)}(e),"function"!=typeof t)throw new TypeError("scheduler.enqueue(phase, fn) requires a function.");const o=n.scope;if(j(o))return r;const i=void 0===n.key?void 0:`${e}:${function(e){return void 0===e?"global":"object"==typeof e&&null!==e||"function"==typeof e?(u.has(e)||u.set(e,"scope:"+ ++m),u.get(e)):String(e)}(o)}:${String(n.key)}`;if(i&&a.has(i))return a.get(i).cancel;const c={id:++w,phase:e,fn:t,scope:o,boundary:n.boundary,key:i,canceled:!1,cancel(){c.canceled=!0,c.key&&a.delete(c.key)}};return s.get(e).push(c),c.key&&a.set(c.key,c),v(),c.cancel},afterFlush:(e,t={})=>b.enqueue("post",e,t),async flush(){if(A(),h)return;y=!1,h=!0;let e=0;try{for(;E();){if(e+=1,e>f)throw new Error(`Scheduler exceeded maxDepth ${f}.`);for(const e of o)await S(e)}}finally{h=!1,E()&&v()}},async flushScope(e){if(A(),h)return;y=!1,h=!0;let t=0;try{for(;$(e);){if(t+=1,t>f)throw new Error(`Scheduler exceeded maxDepth ${f}.`);for(const t of o)await S(t,e)}}finally{h=!1,E()&&v()}},cancelScope(e){if(void 0===e)return b;for(const t of s.values())for(const r of t)r.scope===e&&r.cancel();return b},markScopeDestroyed:e=>(void 0!==e&&(t(e)?i.add(e):c.add(e),b.cancelScope(e)),b),reviveScope:e=>(void 0!==e&&(t(e)?i.delete(e):c.delete(e)),b),isScopeDestroyed:e=>j(e),inspect(){const e={};for(const[t,r]of s)e[t]=r.filter(e=>!e.canceled).length;return{strategy:p,phases:[...o],pending:e,scopesDestroyed:c.size,flushing:h,scheduled:y}},destroy(){d=!0;for(const e of s.values()){for(const t of e)t.cancel();e.length=0}a.clear(),c.clear()}};return b;function v(){var e;"manual"===p||d||h||g>0||y||(y=!0,e=()=>{d||b.flush()},"function"!=typeof queueMicrotask?Promise.resolve().then(e):queueMicrotask(e))}async function S(e,t){const r=s.get(e),n=[],o=[];for(const e of r.splice(0))e.canceled||(void 0===t||e.scope===t?o.push(e):n.push(e));r.push(...n);for(const e of o)if(e.key&&a.delete(e.key),!e.canceled&&!j(e.scope))try{await e.fn()}catch(t){if(!l)throw t;l(t,e)}}function E(){for(const e of s.values())if(e.some(e=>!e.canceled))return!0;return!1}function $(e){for(const t of s.values())if(t.some(t=>!t.canceled&&t.scope===e))return!0;return!1}function A(){if(d)throw new Error("Scheduler has been destroyed.")}function j(e){return void 0!==e&&(t(e)?i.has(e):c.has(e))}}}})(),f=(()=>{const{renderComponent:e}=i,{createHandlerRegistry:t}=u,{createScheduler:r}=l,{createSignalRegistry:n,isSignalRef:a}=s,{matchAttribute:c,normalizeAttributeConfig:f,readAttribute:p}=o,d="__async:inline:";function h({root:o,signals:s,handlers:i,server:u,router:l,cache:h,attributes:E,scheduler:O}={}){const T=o?.ownerDocument??o??globalThis.document,q=o??T,C=s??n(),M=i??t(),x=O??r(),L=!O,D=f(E),B=new Set,P=new WeakMap,N=new WeakMap,z=new WeakSet,H=new WeakSet,U=new WeakMap,W=new WeakSet,V=new Map,I=new WeakMap;let F=0,J=!1;const K={root:q,signals:C,handlers:M,server:u,router:l,cache:h,scheduler:x,attributes:D,start:()=>(ne(),K.scan(q),K),scan:(e=q)=>(ne(),function(e){for(const t of j(e))x.reviveScope?.(t)}(e),function(e){for(const t of j(e))for(const e of t.getAttributeNames?.()??[]){const r=c(e,D,"signal");if(r){if("text"===r){const r=t.getAttribute(e);G(t,`text:${r}`,r,e=>{t.textContent=e??""});continue}if("value"===r){const r=t.getAttribute(e);G(t,`value:${r}`,r,e=>{"value"in t&&t.value!==String(e??"")?t.value=e??"":"value"in t||t.setAttribute("value",e??"")}),Q(t,r);continue}if(r.startsWith("attr:")){const n=r.slice(5),o=t.getAttribute(e);G(t,`attr:${n}:${o}`,o,e=>$(t,n,e));continue}if(r.startsWith("prop:")){const n=r.slice(5),o=t.getAttribute(e);G(t,`prop:${n}:${o}`,o,e=>A(t,n,e));continue}if(r.startsWith("class:")){const n=r.slice(6),o=t.getAttribute(e);""===n||"{}"===n?Y(t,n,o):G(t,`class:${n}:${o}`,o,e=>{t.classList.toggle(n,Boolean(e))});continue}if("class"===r){const r=t.getAttribute(e);Y(t,"{}",r)}}}}(e),function(e){for(const t of j(e))for(const e of t.getAttributeNames?.()??[]){const r=c(e,D,"class");null!=r&&Y(t,r,t.getAttribute(e))}}(e),function(e){for(const t of j(e))if("function"==typeof t.getAttributeNames)for(const e of t.getAttributeNames()){const r=c(e,D,"on");r&&"attach"!==r&&"mount"!==r&&"visible"!==r&&Z(t,r,t.getAttribute(e))}}(e),function(e){for(const t of j(e)){if(W.has(t))continue;const e=R(t,D);if(null!=e){if(!U.has(t)){const r=S(t,e,D);if(0===Object.keys(r).length||!C.has(e))continue;const n={id:e,templates:r,cleanup:C.subscribe(`${e}.$status`,()=>{x.enqueue("binding",()=>X(t),{scope:t,key:`boundary:${e}`})})};U.set(t,n),oe(n.cleanup,t)}X(t)}}}(e),function(e){for(const t of j(e)){const e=ee(t,["attach","mount"]);if(0!==e.length&&!z.has(t)){z.add(t);for(const r of e)ue(t,()=>te(t,r),`attach:${r}`)}}for(const t of j(e)){const e=p(t,D,"on","visible");null!=e&&(H.has(t)||(H.add(t),oe(re(t,()=>ue(t,()=>te(t,e),`visible:${e}`)),t)))}}(e),K),swap(e,t){ne();const r=function(e,t,r){for(const n of j(e))if(R(n,r)===String(t))return n;return null}(q,e,D);if(!r)throw new Error(`Boundary "${e}" was not found.`);return ae(r),r.replaceChildren(k(t,T)),K.scan(r),r},mount(t,r,n={}){ne();const o=e(r,n,{signals:C,handlers:M,loader:K,server:K.server,router:K.router,cache:K.cache,scheduler:x,attributes:D});return ae(t),t.replaceChildren(k(o.html,t.ownerDocument)),K.scan(t),o.mount(t),o.visible(t,K._observeVisible),oe(o.cleanup,t,"children"),o},destroy(){if(!J){J=!0,function(e){for(const t of j(e))x.markScopeDestroyed(t)}(q);for(const e of[...B])se(e);B.clear(),L&&x.destroy()}},_observeVisible:(e,t)=>re(e,t),_registerBinding(e){const t=`${d}${++F}`;return V.set(t,e),t},_releaseBinding(e){V.delete(e)}};function Z(e,t,r){const n=`${t}:${r}`,o=P.get(e)??new Set;if(o.has(n))return;o.add(n),P.set(e,o);const s=async t=>{try{await x.batch(()=>M.run(r,{signals:C,handlers:M,loader:K,server:K.server,router:K.router,cache:K.cache,scheduler:x,event:t,element:e,el:e,root:q}))}catch(t){_(e,t)}};e.addEventListener(t,s),oe(()=>e.removeEventListener(t,s),e)}function Y(e,t,r){if(""===t||"{}"===t){const t=b(e);let n=new Set;return void G(e,`class:{}:${r}`,r,r=>{const o=y(r),s=b(e);for(const e of n)o.has(e)||t.has(e)||s.delete(e);for(const e of o)s.add(e);v(e,s),n=o},{rawInline:!0})}G(e,`class:${t}:${r}`,r,r=>{!function(e,t,r){const n=b(e);for(const e of y(t))r?n.add(e):n.delete(e);v(e,n)}(e,t,Boolean(r))})}function G(e,t,r,n,o={}){const s=N.get(e)??new Set;if(s.has(t))return;s.add(t),N.set(e,s);const a=()=>function(e,t={}){if(m(e)){const r=V.get(e);return t.rawInline?r:g(r)}return C.get(e)}(r,o);n(a()),oe(function(e,t){if(!m(e))return C.subscribe(e,t);const r=w(V.get(e)).map(e=>e.subscribe(t));return()=>{for(const e of r)e()}}(r,()=>{x.enqueue("binding",()=>n(a()),{scope:e,key:t})}),e)}function Q(e,t){Z(e,"input",`__async:set:${t}`),Z(e,"change",`__async:set:${t}`),M.resolve(`__async:set:${t}`)||M.register(`__async:set:${t}`,({element:e})=>{!function(e,t){if(!m(e))return C.set(e,t);const r=V.get(e);if(a(r))return r.set(t);throw new Error(`Inline binding "${e}" is not writable.`)}(t,e.value)})}function X(e){const t=U.get(e);if(!t)return;const r=C.get(`${t.id}.$status`),n=function(e,t){return"ready"===t?e.ready??e.loading??e.error:"error"===t?e.error??e.ready??e.loading:e.loading??e.ready??e.error}(t.templates,r);if(n){ae(e),e.replaceChildren(n.content.cloneNode(!0)),W.add(e);try{K.scan(e)}finally{W.delete(e)}}}function ee(e,t){const r=[];for(const n of t){const t=p(e,D,"on",n);null!=t&&r.push(t)}return r}async function te(e,t){try{const r=await M.run(t,{signals:C,handlers:M,loader:K,server:K.server,router:K.router,cache:K.cache,scheduler:x,element:e,el:e,root:q});for(const t of r)"function"==typeof t&&oe(t,e)}catch(t){_(e,t)}}function re(e,t){const r=(e.ownerDocument?.defaultView??globalThis).IntersectionObserver??globalThis.IntersectionObserver;if(!r)return x.enqueue("lifecycle",()=>{J||t(e)},{scope:e,key:"visible:fallback"}),()=>{};const n=new r(r=>{r.some(e=>e.isIntersecting)&&(n.disconnect(),t(e))});return n.observe(e),()=>n.disconnect()}function ne(){if(J)throw new Error("Loader has been destroyed.")}function oe(e,t,r="self"){if("function"!=typeof e)return e;if(B.add(e),t){const n=I.get(t)??[];n.push({cleanup:e,mode:r}),I.set(t,n)}return e}function se(e){"function"==typeof e&&B.has(e)&&(B.delete(e),e())}function ae(e){ce(e,"children");for(const t of[...e.childNodes??[]])ie(t)}function ie(e){if(1===e.nodeType)for(const t of j(e))ce(t),x.markScopeDestroyed(t)}function ce(e,t){const r=I.get(e);if(!r)return;const n=[];for(const e of r)t&&e.mode!==t?n.push(e):se(e.cleanup);n.length>0?I.set(e,n):I.delete(e)}function ue(e,t,r){x.enqueue("lifecycle",t,{scope:e,key:r})}return C._setContext?.({server:K.server,router:K.router,loader:K,cache:K.cache,scheduler:x}),K.server?._setContext?.({signals:C,handlers:M,loader:K,router:K.router,cache:K.cache,scheduler:x}),K}function y(e,t=new Set){if(null==e||!1===e)return t;if(a(e)){const r=e.value;return!0===r?(t.add(e.id.split(".").at(-1)),t):y(r,t)}if("string"==typeof e){for(const r of e.split(/\s+/).filter(Boolean))t.add(r);return t}if(Array.isArray(e)){for(const r of e)y(r,t);return t}if("object"==typeof e){for(const[r,n]of Object.entries(e))(a(n)?n.value:n)&&y(r,t);return t}return!0!==e&&t.add(String(e)),t}function g(e){return a(e)?e.value:Array.isArray(e)?e.map(g):e&&"object"==typeof e?Object.fromEntries(Object.entries(e).map(([e,t])=>[e,g(t)])):e}function w(e,t=new Map){if(a(e))return t.set(e.id,e),[...t.values()];if(Array.isArray(e)){for(const r of e)w(r,t);return[...t.values()]}if(e&&"object"==typeof e)for(const r of Object.values(e))w(r,t);return[...t.values()]}function m(e){return"string"==typeof e&&e.startsWith(d)}function b(e){return y(e.getAttribute("class")??"")}function v(e,t){const r=[...t].join(" ");0!==r.length?e.setAttribute("class",r):e.removeAttribute("class")}function S(e,t,r){const n={};for(const o of[...e.children].filter(e=>"TEMPLATE"===e.tagName))E(o,"loading",t,e,r)&&(n.loading=o),E(o,"ready",t,e,r)&&(n.ready=o),E(o,"error",t,e,r)&&(n.error=o);return n}function E(e,t,r,n,o){return p(e,o,"async",t)===r||O(n)&&e.hasAttribute?.(t)}function $(e,t,r){if(!1===r||null==r)return e.removeAttribute(t),void(t in e&&(e[t]=!1));e.setAttribute(t,!0===r?"":String(r)),t in e&&(e[t]=r)}function A(e,t,r){e[t]=null!=r?r:""}function j(e){return function(e,t){const r=[];return 1===e?.nodeType&&e.matches?.(t)&&r.push(e),r.push(...e?.querySelectorAll?.(t)??[]),r}(e,"*")}function R(e,t){return O(e)&&e.hasAttribute?.("for")?e.getAttribute("for"):p(e,t,"async","boundary")}function O(e){return"ASYNC-SUSPENSE"===e?.tagName}function k(e,t){if(11===e?.nodeType)return e;if("TEMPLATE"===e?.tagName)return e.content.cloneNode(!0);if(e?.nodeType){const r=t.createDocumentFragment();return r.append(e),r}const r=t.createElement("template");return r.innerHTML=String(e??""),r.content.cloneNode(!0)}function _(e,t){const r=e.ownerDocument?.defaultView?.CustomEvent??globalThis.CustomEvent;e.dispatchEvent(new r("async:error",{bubbles:!0,detail:{error:t}}))}return{Loader:h,AsyncLoader:h}})(),p=(()=>{const{isTemplateResult:e,renderTemplate:n}=a,{attachRegistryInspection:o,createRegistryStore:s}=r,{createLazyRegistry:i,isLazyDescriptor:c}=t;function u(e,t={}){return r=e,Boolean(r&&"object"==typeof r&&!Array.isArray(r)&&(Object.hasOwn(r,"html")||Object.hasOwn(r,"signals")||Object.hasOwn(r,"boundary")||Object.hasOwn(r,"redirect")||Object.hasOwn(r,"status")||Object.hasOwn(r,"cache")))?{...e,html:Object.hasOwn(e,"html")?l(e.html,t):e.html}:{html:l(e,t)};var r}function l(t,r){return t?.nodeType||"string"==typeof t?t:(e(t),n(t,function(e){return{attributes:e.loader?.attributes,signals:e.signals,bind:e.loader?._registerBinding?.bind(e.loader)}}(r)))}function f(e){if("string"!=typeof e||0===e.length)throw new TypeError("Partial id must be a non-empty string.")}return{createPartialRegistry:function(e={},t={}){const r=t.registry??s(),n=t.type??"partial",a=r._map(n),l=t.lazyRegistry??i(t),p=new Map,d=o({register(e,t){if(f(e),"function"!=typeof t&&!c(t))throw new TypeError(`Partial "${e}" must be a function.`);if(a.has(e))throw new Error(`Partial "${e}" is already registered.`);return a.set(e,t),e},registerMany(e){for(const[t,r]of Object.entries(e??{}))d.register(t,r);return d},unregister:e=>(f(e),p.delete(e),a.delete(e)),resolve(e){f(e);const t=a.get(e);return c(t)?(p.has(e)||p.set(e,async function(...r){const o=await l.resolve(n,e,t);if("function"!=typeof o)throw new TypeError(`Partial "${e}" did not resolve to a function.`);return o.apply(this,r)}),p.get(e)):t},async render(e,t={},r={}){f(e);const n=d.resolve(e);if(!n)throw new Error(`Partial "${e}" is not registered.`);const o={...r,id:e,props:t,cache:r.cache,partials:d};return u(await n.call(o,t),o)},_adoptMany(e={}){for(const[t,r]of Object.entries(e??{}))a.has(t)||d.register(t,r);return d}},r,n);return d.registerMany(e),d},normalizePartialResult:u}})(),d=(()=>{const{Loader:e}=f,{createHandlerRegistry:t}=u,{createScheduler:n}=l,{createSignalRegistry:a}=s,{applyServerResult:i}=c,{createRegistryStore:p}=r,{normalizeAttributeConfig:d}=o;function h(e,t={}){return{...t,partial:e}}const y=h,g=new Set(["csr","spa","ssr","mpa"]);function w(e={},t={}){const r=t.registry??p(),n=t.type??"route",o=r._map(n),s=[],a={registry:r,register(e,t){if(A(e),s.some(t=>t.pattern===e))throw new Error(`Route "${e}" is already registered.`);const r=m(e,t);return o.set(e,r.definition),s.push(r),E(s),r},registerMany(e){for(const[t,r]of Object.entries(e??{}))a.register(t,r);return a},unregister(e){A(e);const t=s.findIndex(t=>t.pattern===e);return-1!==t&&s.splice(t,1),o.delete(e)},match(e){const t=function(e){return e instanceof URL?e:new URL(String(e),globalThis.location?.href??"http://localhost/")}(e).pathname;for(const e of s){const r=e.regex.exec(t);if(!r)continue;const n={};return e.keys.forEach((e,t)=>{n[e]=S(r[t+1]??"")}),{pattern:e.pattern,params:n,route:e.definition}}return null},entries:()=>s.map(({pattern:e,definition:t})=>({pattern:e,route:t})),keys:()=>[...o.keys()],inspect:()=>r.entries(n),_adoptMany(e={}){for(const[t,r]of Object.entries(e??{}))o.has(t)?i(t,o.get(t)):a.register(t,r);return a}};for(const[e,t]of o)i(e,t);return a.registerMany(e),a;function i(e,t){if(s.some(t=>t.pattern===e))return;const r=m(e,t);o.set(e,r.definition),s.push(r),E(s)}}function m(e,t){const r="string"==typeof t?h(t):t,{regex:n,keys:o}=function(e){const t=[];if("*"===e)return{regex:/^.*$/,keys:t};if("/"===e)return{regex:/^\/$/,keys:t};const r=e.split("/").map(e=>e.startsWith(":")?(t.push(e.slice(1)),"([^/]+)"):String(e).replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join("/");return{regex:new RegExp(`^${r}$`),keys:t}}(e);return{pattern:e,regex:n,keys:o,score:$(e),definition:r}}function b(e,t){return e?.closest?.(t)}function v(e){return Object.fromEntries(e.searchParams.entries())}function S(e){try{return decodeURIComponent(e)}catch{return e}}function E(e){e.sort((e,t)=>t.score-e.score||t.pattern.length-e.pattern.length)}function $(e){return"*"===e?-1:e.split("/").filter(Boolean).reduce((e,t)=>"*"===t?e:t.startsWith(":")?e+2:e+4,"/"===e?3:0)}function A(e){if("string"!=typeof e||"*"!==e&&!e.startsWith("/"))throw new TypeError('Route pattern must be a path string or "*".')}return{defineRoute:h,createRouteRegistry:w,createRouter:function({mode:r="ssr",root:o,boundary:s="route",routes:c=w(),loader:u,signals:l,handlers:f,server:p,cache:h,partials:y,attributes:m,scheduler:S}={}){!function(e){if(!g.has(e))throw new TypeError(`Unknown router mode "${e}".`)}(r);const E=o?.ownerDocument??o??globalThis.document,$=o??E,A=l??u?.signals??a(),j=f??u?.handlers??t(),R=S??u?.scheduler??n(),O=!S&&!u?.scheduler,k=d(m??u?.attributes),_=u??e({root:$,signals:A,handlers:j,server:p,cache:h,scheduler:R,attributes:k}),T=!u,q=new Set;let C,M=!1,x=0;const L={mode:r,root:$,boundary:s,routes:c,loader:_,signals:A,handlers:j,server:p,cache:h,partials:y,scheduler:R,attributes:k,start:()=>(I(),_.router=L,A._setContext?.({router:L,loader:_,server:p,cache:h,scheduler:R}),T&&_.start(),"mpa"===r||"ssr"===r?(N(),L):(function(){const e=e=>{const t=b(e.target,"a[href]");t&&!function(e,t){if(e.defaultPrevented||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey)return!0;if(t.target||t.hasAttribute("download"))return!0;const r=V(t.href),n=W();return r.origin!==n.origin||function(e,t,r){return e.origin===t.origin&&e.pathname===t.pathname&&e.search===t.search&&(e.hash!==t.hash||!0===r.getAttribute?.("href")?.startsWith("#"))}(r,n,t)}(e,t)&&(e.preventDefault(),U(L.navigate(t.href)))},t=e=>{const t=b(e.target,"form");t&&!function(e){return"get"!==String(e.method||"get").toLowerCase()||V(e.action).origin!==W().origin}(t)&&(e.preventDefault(),U(L.navigate(function(e){const t=V(e.action||e.ownerDocument.defaultView.location.href),r=new e.ownerDocument.defaultView.FormData(e);return t.search=new URLSearchParams(r).toString(),t.href}(t))))},r=()=>U(L.navigate(W(),{history:!1}));$.addEventListener?.("click",e),$.addEventListener?.("submit",t),E.defaultView?.addEventListener?.("popstate",r),q.add(()=>$.removeEventListener?.("click",e)),q.add(()=>$.removeEventListener?.("submit",t)),q.add(()=>E.defaultView?.removeEventListener?.("popstate",r))}(),"csr"===r?(U(L.navigate(W(),{replace:!0,initial:!0,source:"client"})),L):(N(),L))),match:e=>c.match(V(e)),prefetch(e){if(I(),"mpa"===r||"ssr"===r)return Promise.resolve(null);const t=L.match(e);return t?.route?.partial&&y?.resolve?.(t.route.partial)?y.render(t.route.partial,t.params,{...D(t),prefetch:!0}):Promise.resolve(null)},navigate:async(e,t={})=>(I(),"mpa"===r||"ssr"===r?(E.defaultView?.location?.assign?.(e),null):async function(e,t={}){const r=L.match(e);if(!r)return B(e,null),function(e){z(e,null,{pending:!1,error:new Error(`No route matched ${e.pathname}${e.search}`)})}(e),null;const n=B(e,r);z(e,r,{pending:!0,error:null});try{if(!r.route?.partial||!y?.resolve?.(r.route.partial)){const t=new Error(`Route "${e.pathname}" does not have a registered partial.`);return P(n)&&H({pending:!1,error:t}),null}const o=await y.render(r.route.partial,r.params,D(r,n));return P(n)?(await async function(e,t,r,n){P(n)&&(await i(e,{signals:A,loader:_,router:L,cache:h,scheduler:R,abort:n?.abort}),await R.flush(),P(n)&&(null==e?.html||e.boundary||e.redirect||(_.swap(s,e.html),await R.flush()),e?.redirect||!1===r.history||(r.replace?E.defaultView?.history?.replaceState?.({},"",t.href):E.defaultView?.history?.pushState?.({},"",t.href))))}(o,e,t,n),P(n)?(H({pending:!1,error:null}),o):null):null}catch(e){if(!P(n))return null;throw H({pending:!1,error:e}),e}}(V(e),t)),destroy(){if(!M){M=!0,C?.controller.abort(new Error("Router has been destroyed."));for(const e of q)e();q.clear(),O&&R.destroy()}}};return L;function D(e,t){return{params:e.params,route:e.route,router:L,signals:A,handlers:j,loader:_,server:p,cache:h,scheduler:R,abort:t?.abort}}function B(e,t){C?.controller.abort(new Error(`Router navigation superseded by ${e.pathname}${e.search}.`));const r=new AbortController,n={id:++x,controller:r,abort:r.signal,target:e,matched:t};return C=n,n}function P(e){return!M&&e&&C?.id===e.id&&!e.abort.aborted}function N(){const e=W();z(e,L.match(e),{pending:!1,error:null})}function z(e,t,r={}){A.ensure("router",{}),H({url:e.href,path:e.pathname,query:v(e),params:t?.params??{},route:t?.route??null,...r})}function H(e){A.ensure("router",{});for(const[t,r]of Object.entries(e))A.set(`router.${t}`,r)}function U(e){e.catch(e=>{M||(H({pending:!1,error:e}),function(e,t){const r=e.ownerDocument?.defaultView?.CustomEvent??globalThis.CustomEvent;"function"==typeof r&&e.dispatchEvent?.(new r("async:error",{bubbles:!0,detail:{error:t}}))}($,e))})}function W(){return V(E.defaultView?.location?.href??"http://localhost/")}function V(e){return e instanceof URL?e:new URL(String(e),E.defaultView?.location?.href??"http://localhost/")}function I(){if(M)throw new Error("Router has been destroyed.")}},route:y}})(),h=(()=>{const{createCacheRegistry:e}=n,{createComponentRegistry:a}=i,{createHandlerRegistry:h}=u,{Loader:y}=f,{createPartialRegistry:g}=p,{createRouteRegistry:w,createRouter:m}=d,{createScheduler:b}=l,{createServerNamespace:v}=c,{cloneSignalDeclaration:S,createSignal:E,createSignalRegistry:$}=s,{createRegistryStore:A}=r,{attributeName:j,normalizeAttributeConfig:R}=o,{createLazyRegistry:O,defineRegistrySnapshot:k,sameRegistryValue:_}=t,T=new Set(["signal","handler","server","partial","route","component","asyncSignal"]);function q(e,t={}){const r=A(void 0,{target:"browser"}),n=new Set,o=t.createRuntime??C,s={registry:r,use(e,t){const o=function(e,t){const r={signal:{},handler:{},server:{},partial:{},route:{},component:{},asyncSignal:{},cache:{browser:{},server:{}}};if("string"==typeof e){if(!T.has(e))throw new Error(`Unknown Async registry type "${e}".`);return r[e]=I(e,t),r}if(!e||"object"!=typeof e)throw new TypeError("Async.use(...) requires a registry type or module object.");for(const[t,n]of Object.entries(e))if("cache"!==t){if(!T.has(t))throw new Error(`Unknown Async registry type "${t}".`);r[t]=I(t,n)}else r.cache.browser={...n?.browser??{}},r.cache.server={...n?.server??{}};return r}(e,t);!function(e,t){for(const r of T)B(e,r,t[r]);B(e,"cache.browser",t.cache.browser),B(e,"cache.server",t.cache.server)}(r,o);for(const e of n)e._applyUse(o);return s},snapshot:()=>r.rawSnapshot(),start(e={}){const t=o(s,e).start();return s.runtime=t,t},attachRoot:e=>function(e){return e.runtime||e.start(),e.runtime}(s).attachRoot(e),detachRoot:e=>s.runtime?.detachRoot(e)??s,applySnapshot:(e,t={})=>s.runtime?(s.runtime.applySnapshot(e,t),s):(function(e,t={},r={}){const n=z(t);for(const[t,o]of Object.entries(n.signal))N(e,"signal",t,E(o),r);for(const t of["handler","server","partial","route","component","asyncSignal"])for(const[o,s]of Object.entries(n[t]))N(e,t,o,s,r)}(r,e,t),s),inspectRoots:()=>s.runtime?.inspectRoots()??{count:0,roots:[]},_attach:e=>(n.add(e),()=>s._detach(e)),_detach(e){n.delete(e)}};return e&&s.use(e),s}function C(t=M,r={}){const n=(C=t,Boolean(C&&"function"==typeof C.use&&"function"==typeof C.snapshot&&C.registry)?t:q(t??{})),o=r.target??"browser",s=r.scheduler??r.loader?.scheduler??b({strategy:"server"===o?"manual":"microtask"}),i=!r.scheduler&&!r.loader?.scheduler,c=R(r.attributes),u=r.lazyRegistry??O({registryAssets:r.registryAssets,importModule:r.importModule}),l=r.registry??function(e,{target:t}={}){const r=e.rawSnapshot();return A({...r,signal:D(r.signal)},{target:t})}(n.registry,{target:o}),f=r.signals??$(void 0,{registry:l,type:"signal",lazyRegistry:u}),p=r.handlers??h(void 0,{registry:l,type:"handler",lazyRegistry:u}),d=e(void 0,{registry:l,type:"cache.server"}),v=e(void 0,{registry:l,type:"cache.browser"}),S=r.serverFactory??V,E=r.server??S(void 0,{registry:l,type:"server"}),j=r.partials??g(void 0,{registry:l,type:"partial",lazyRegistry:u}),k=r.routes??w(void 0,{registry:l,type:"route"}),_=r.components??a(void 0,{registry:l,type:"component",lazyRegistry:u}),T=r.loader||Object.hasOwn(r,"root")?r.root:null;var C;let B=r.loader,N=r.router,H=!1,U=()=>{},I=!1,F=!1;const K=new Map,Z=T??globalThis.document,Y=r.snapshot??("browser"===o?x(Z,{attributes:c}):void 0);!function(e,t){try{e.cache=t}catch{}}(E,d);const G={app:n,registry:l,target:o,signals:f,handlers:p,server:E,partials:j,routes:k,components:_,browser:{cache:v},loader:B,router:N,scheduler:s,attributes:c,start:()=>(re(),I||(I=!0,"server"!==o?(ee({cache:v}),f._setContext?.({server:E,loader:B,cache:v,scheduler:s}),B?(Q(B.root,B),B.start(),X(B.root)):null!=T&&G.attachRoot(T)):(ee({cache:d}),f._setContext?.({server:E,cache:d,scheduler:s}))),G),use:(e,t)=>(n.use(e,t),G),attachRoot(e){if(re(),"server"===o)throw new Error("Server runtimes cannot attach DOM roots.");if(!e)throw new TypeError("runtime.attachRoot(root) requires a root.");if(K.has(e))return G;const t=0===K.size&&B?B:y({root:e,signals:f,handlers:p,server:E,cache:v,scheduler:s,attributes:c});return Q(e,t),t.start(),ee({cache:v}),f._setContext?.({server:E,loader:G.loader,cache:v,scheduler:s}),X(e),G},detachRoot(e){if(re(),"server"===o)return G;if(null==e){for(const e of new Set(K.values()))e.destroy?.();return K.clear(),N?.destroy?.(),N=void 0,H=!1,B=void 0,G.loader=void 0,G.router=void 0,G}const t=K.get(e);if(!t)return G;if(t.destroy?.(),K.delete(e),B===t){N?.destroy?.(),N=void 0,H=!1;const e=K.values().next().value;B=e,G.loader=e,G.router=void 0,e&&X(e.root)}return G},inspectRoots:()=>({count:K.size,roots:[...K].map(([e,t])=>({root:e,loader:t,primary:t===B}))}),applySnapshot:(e,t={})=>(function(e,t={},r={}){const n=z(t);for(const[t,r]of Object.entries(n.signal))W(e.signals,t,r);e.browser.cache.restore(n.cache.browser),P(e,"handler",n.handler,e.handlers,r),P(e,"server",n.server,e.server,r),P(e,"partial",n.partial,e.partials,r),P(e,"route",n.route,e.routes,r),P(e,"component",n.component,e.components,r),P(e,"asyncSignal",n.asyncSignal,null,r)}(G,e,t),G),async render(e){re(),ee({cache:d}),f._setContext?.({server:E,cache:d,scheduler:s});const t=k.match(e);if(!t)return await s.flush(),{html:J("",{status:404,signals:f,browserCache:v,boundary:r.boundary??"route",attributes:c}),status:404,signals:f.snapshot(),cache:{browser:v.snapshot()}};const n=t.route.partial,o=n&&j.resolve(n)?await j.render(n,t.params,{params:t.params,route:t.route,signals:f,handlers:p,server:E,cache:d,browserCache:v,partials:j,scheduler:s,...te()}):{html:""};if(o.signals)for(const[e,t]of Object.entries(o.signals))W(f,e,t);o.cache?.browser&&v.restore(o.cache.browser),await s.flush();const a=o.status??200;return{html:J(o.html,{status:a,signals:f,browserCache:v,boundary:o.boundary??r.boundary??"route",attributes:c}),status:a,signals:f.snapshot(),cache:{browser:v.snapshot()}}},destroy(){if(F)return;F=!0,U(),N?.destroy?.();const e=new Set(K.values());for(const t of e)t.destroy?.();K.clear(),B&&!e.has(B)&&B?.destroy?.(),f.destroy?.(),i&&s.destroy()},_applyUse(e){!function(e,t){L(e.signals,e.registry,t.signal),L(e.handlers,e.registry,t.handler),L(e.server,e.registry,t.server),L(e.partials,e.registry,t.partial),L(e.routes,e.registry,t.route),L(e.components,e.registry,t.component),function(e,t,r){if(r&&0!==Object.keys(r).length)for(const[n,o]of Object.entries(r))e.has(t,n)||e.register(t,n,o)}(e.registry,"asyncSignal",t.asyncSignal),L(e.browser.cache,e.registry,t.cache.browser),L(e.server.cache,e.registry,t.cache.server)}(G,e)}};return E.cache=d,G.server.cache=d,G.applySnapshot(Y,{strict:r.strictSnapshots??!0}),U=n._attach(G),G;function Q(e,t){K.set(e,t),B||(B=t,G.loader=t),t.server=E,t.cache=v,t.scheduler=s}function X(e){!1!==N&&!H&&(N||function(e,t){return Boolean(t.routerOptions||t.mode||e.entries().length>0)}(k,r))&&G.loader&&(N=N??m({mode:r.mode??"ssr",root:e,boundary:r.boundary??"route",routes:k,loader:G.loader,signals:f,handlers:p,server:E,cache:v,partials:j,scheduler:s,attributes:c}),G.router=N,G.loader.router=N,ee({cache:v,router:N}),N.start(),H=!0)}function ee(e={}){const t=function(e){return"function"==typeof e?.registerMany}(E)?d:e.cache;E._setContext?.({signals:f,loader:B,router:N,cache:t,scheduler:s,requestContext:r.requestContext,...te()})}function te(){const e=(t=r.requestContext)?"function"==typeof t.get?t.get()??{}:"function"==typeof t.getStore?t.getStore()??{}:{}:{};var t;return{requestContext:e,request:e.request??r.request,headers:e.headers??r.headers,cookies:e.cookies??r.cookies,locals:e.locals??r.locals}}function re(){if(F)throw new Error("Async app runtime has been destroyed.")}}const M=q();function x(e=globalThis.document,{attributes:t}={}){const r=R(t),n=j(r,"async","snapshot"),o=e?.ownerDocument??e??globalThis.document,s=e??o;if(!s?.querySelectorAll&&!o?.querySelectorAll)return{};const a={};for(const e of new Set([s,o]))if(e?.querySelectorAll)for(const t of e.querySelectorAll("script[type='application/json'], script")){if(!t.hasAttribute?.(n))continue;const e=t.textContent?.trim()??"";if(!e)continue;let r;try{r=JSON.parse(e)}catch(e){throw new Error(`Could not parse Async snapshot: ${e instanceof Error?e.message:String(e)}`)}H(a,r,{strict:!0})}return a}function L(e,t,r){r&&0!==Object.keys(r).length&&(e?.registry!==t?e?.registerMany?.(r):e._adoptMany?.(r))}function D(e={}){const t={};for(const[r,n]of Object.entries(e??{}))t[r]=S(n);return t}function B(e,t,r){for(const[n,o]of Object.entries(r??{}))e.register(t,n,o)}function P(e,t,r,n,o={}){if(r&&0!==Object.keys(r).length){for(const[n,s]of Object.entries(r))N(e.registry,t,n,s,o);n?._adoptMany?.(r)}}function N(e,t,r,n,o={}){const s=o.strict??!0,a=e._map(t);if(a.has(r)){if(_(a.get(r),n)||U(a.get(r),n))return;if(s)throw new Error(`${t} "${r}" is already registered with a different value.`)}else e.set(t,r,n)}function z(e={}){return{signal:{...e.signals??{},...e.signal??{}},handler:{...e.handler??{}},server:{...e.server??{}},partial:{...e.partial??{}},route:{...e.route??{}},component:{...e.component??{}},asyncSignal:{...e.asyncSignal??{}},cache:{browser:{...e.entries?.browser??{},...e.cache?.browser??{}}}}}function H(e,t,r={}){const n=z(k(t));e.signal={...e.signal??e.signals??{},...n.signal},e.signals=e.signal,e.cache={...e.cache??{},browser:{...e.cache?.browser??{},...n.cache.browser}};for(const t of["handler","server","partial","route","component","asyncSignal"]){e[t]=e[t]??{};for(const[o,s]of Object.entries(n[t]))if(Object.hasOwn(e[t],o)){if(_(e[t][o],s)||U(e[t][o],s))continue;if(r.strict??1)throw new Error(`${t} "${o}" is already declared with a different value.`)}else e[t][o]=s}return e}function U(e,t){if(e===t)return!0;try{return JSON.stringify(e)===JSON.stringify(t)}catch{return!1}}function W(e,t,r){const n=String(t).split(".")[0];if(e.has?.(n)){if(t===n){const t=e._entry?.(n);if("function"==typeof t?._restore&&function(e){return!(!e||"object"!=typeof e||Array.isArray(e))&&Object.hasOwn(e,"value")&&(Object.hasOwn(e,"loading")||Object.hasOwn(e,"error")||Object.hasOwn(e,"status")||Object.hasOwn(e,"version"))}(r))return void t._restore(r)}e.set(t,r)}else e.register(n,E(t===n?r:{})),t!==n&&e.set(t,r)}function V(e={},t={}){const r=t.registry??A(),n=t.type??"server",o={},s={registry:r,register:(e,t)=>(r.register(n,e,t),e),registerMany(e){for(const[t,r]of Object.entries(e??{}))s.register(t,r);return s},unregister:e=>r.unregister(n,e),resolve(){},async run(e){throw new Error(`Server command "${e}" cannot run without a server proxy or server registry.`)},keys:()=>r.keys(n),entries:()=>r.entries(n),inspect:()=>r.entries(n),_setContext:(e={})=>(Object.assign(o,e),s),_adoptMany:()=>s};return s.registerMany(e),v((e,t,r)=>s.run(e,t,r),s,()=>o)}function I(e,t={}){if("signal"!==e)return{...t??{}};const r={};for(const[e,n]of Object.entries(t??{}))r[e]=F(n);return r}function F(e){return e&&"object"==typeof e&&"function"==typeof e.subscribe?e:E(e)}function J(e,{signals:t,browserCache:r,boundary:n,attributes:o}){const s={signals:t.snapshot(),cache:{browser:r.snapshot()}},a=j(o,"async","boundary"),i=j(o,"async","snapshot");return`<section ${a}="${c=n,String(c).replaceAll("&","&amp;").replaceAll('"',"&quot;").replaceAll("<","&lt;")}">${e??""}</section><script type="application/json" ${i}>${function(e){return JSON.stringify(e).replaceAll("<","\\u003c")}(s)}<\/script>`;var c}return{defineApp:q,createApp:C,readSnapshot:x,Async:M}})(),y=(()=>{function e(e){if("string"!=typeof e||0===e.length)throw new TypeError("Boundary patch boundary must be a non-empty string.")}function t(e){return Boolean(e&&"object"==typeof e&&!Array.isArray(e))}return{createBoundaryReceiver:function(r={}){const n=r.loader,o=r.signals??n?.signals,s=r.cache??n?.cache,a=r.scheduler??n?.scheduler,i=r.router??n?.router,c=r.recentLimit??50,u=!0===r.throwOnError,l="function"==typeof r.onApply?r.onApply:void 0,f="function"==typeof r.onIgnore?r.onIgnore:void 0,p="function"==typeof r.onError?r.onError:void 0,d="function"==typeof r.isScopeDestroyed?r.isScopeDestroyed:e=>a?.isScopeDestroyed?.(e)??a?.inspectDestroyed?.(e)??!1;if(!n||"function"!=typeof n.swap)throw new TypeError("createBoundaryReceiver(...) requires a loader with swap(boundary, html).");if(!Number.isInteger(c)||c<0)throw new TypeError("createBoundaryReceiver(...) recentLimit must be a non-negative integer.");const h=new Map,y=[];let g=!1;const w={async apply(r){if(g)throw new Error("Boundary receiver has been destroyed.");const c=function(r){if(!r||"object"!=typeof r||Array.isArray(r))throw new TypeError("receiver.apply(patch) requires a boundary patch object.");if(e(r.boundary),"number"!=typeof r.seq||!Number.isFinite(r.seq))throw new TypeError("Boundary patch seq must be a finite number.");if(void 0!==r.signals&&!t(r.signals))throw new TypeError("Boundary patch signals must be an object.");if(void 0!==r.cache&&!t(r.cache))throw new TypeError("Boundary patch cache must be an object.");if(void 0!==r.cache?.browser&&!t(r.cache.browser))throw new TypeError("Boundary patch cache.browser must be an object.");if(void 0!==r.redirect&&("string"!=typeof r.redirect||0===r.redirect.length))throw new TypeError("Boundary patch redirect must be a non-empty string.");if(void 0!==r.parentScope&&"string"!=typeof r.parentScope)throw new TypeError("Boundary patch parentScope must be a string.");if(void 0!==r.scope&&"string"!=typeof r.scope)throw new TypeError("Boundary patch scope must be a string.");const n=Object.hasOwn(r,"html")&&null!=r.html,o=r.signals&&Object.keys(r.signals).length>0,s=r.cache?.browser&&Object.keys(r.cache.browser).length>0,a=Boolean(r.redirect),i=Object.hasOwn(r,"error");if(!(n||o||s||a||i))throw new TypeError("Boundary patch must include html, signals, cache.browser, redirect, or error.");return r}(r),y=(w=c.boundary,h.has(w)||h.set(w,{lastSeq:-1/0,applied:0,ignored:0,errored:0,lastStatus:void 0}),h.get(w));var w,b;if(c.seq<=y.lastSeq){const e={status:"ignored-stale",boundary:c.boundary,seq:c.seq,lastSeq:y.lastSeq};return y.ignored+=1,y.lastStatus=e.status,m(e),f?.(e,r),e}if(void 0!==c.parentScope&&d(c.parentScope)){const e={status:"ignored-destroyed",boundary:c.boundary,seq:c.seq,parentScope:c.parentScope};return y.ignored+=1,y.lastStatus=e.status,m(e),f?.(e,r),e}if(y.lastSeq=c.seq,Object.hasOwn(c,"error")){const e=(b=c.error)instanceof Error?b:b&&"object"==typeof b&&"string"==typeof b.message?Object.assign(new Error(b.message),b):new Error(String(b)),t={status:"errored",boundary:c.boundary,seq:c.seq,error:e};if(y.errored+=1,y.lastStatus=t.status,m(t),p?.(e,t,r),u)throw e;return t}if(c.signals){if(!o||"function"!=typeof o.set)throw new Error("Boundary patch includes signals, but no signal registry is available.");for(const[e,t]of Object.entries(c.signals))o.set(e,t)}if(c.cache?.browser){if(!s||"function"!=typeof s.restore)throw new Error("Boundary patch includes browser cache, but no cache registry is available.");s.restore(c.cache.browser)}if(null!=c.html&&n.swap(c.boundary,c.html),await async function(e,t){e&&(void 0===t||"function"!=typeof e.flushScope?"function"==typeof e.flush&&await e.flush():await e.flushScope(t))}(a,c.scope),c.redirect){await async function(e,t,r){if(t&&"function"==typeof t.navigate)return void await t.navigate(e);const n=r?.root?.ownerDocument?.defaultView?.location??globalThis.location;n?.assign?.(e)}(c.redirect,i,n);const e={status:"redirected",boundary:c.boundary,seq:c.seq,redirect:c.redirect};return y.applied+=1,y.lastStatus=e.status,m(e),l?.(e,r),e}const v={status:"applied",boundary:c.boundary,seq:c.seq};return y.applied+=1,y.lastStatus=v.status,m(v),l?.(v,r),v},inspect(){const e={};for(const[t,r]of h)e[t]={lastSeq:r.lastSeq,applied:r.applied,ignored:r.ignored,lastStatus:r.lastStatus},r.errored>0&&(e[t].errored=r.errored);return{destroyed:g,boundaries:e,recent:y.map(e=>({...e}))}},reset(t){if(void 0===t)return h.clear(),y.length=0,w;e(t),h.delete(t);for(let e=y.length-1;e>=0;e-=1)y[e].boundary===t&&y.splice(e,1);return w},destroy(){g=!0,h.clear(),y.length=0}};return w;function m(e){if(0!==c)for(y.push(function(e){const t={boundary:e.boundary,seq:e.seq,status:e.status};return"ignored-stale"===e.status&&(t.lastSeq=e.lastSeq),"ignored-destroyed"===e.status&&void 0!==e.parentScope&&(t.parentScope=e.parentScope),"redirected"===e.status&&(t.redirect=e.redirect),t}(e));y.length>c;)y.shift()}}}})(),g=(()=>{function e(e){return e?.reason??new Error("Operation aborted")}return{delay:function(t,r){return r?.aborted?Promise.reject(e(r)):new Promise((n,o)=>{let s=setTimeout(function(){s=void 0,r?.removeEventListener?.("abort",a),n()},t);function a(){void 0!==s&&clearTimeout(s),s=void 0,r?.removeEventListener?.("abort",a),o(e(r))}r?.addEventListener?.("abort",a,{once:!0})})}}})(),w=(()=>{const{Async:e}=h;return{defineAsyncContainerElement:function(t={}){const r=t.tagName??"async-container",n=t.customElements??globalThis.customElements;if(!n)throw new Error("defineAsyncContainerElement(...) requires customElements.");const o=n.get(r);if(o)return o;const s=t.app??t.Async??e,a=t.HTMLElement??t.window?.HTMLElement??globalThis.HTMLElement;if(!a)throw new Error("defineAsyncContainerElement(...) requires HTMLElement.");class i extends a{connectedCallback(){if(this.__asyncAttached)return;const e=s.runtime??s.start?.();e?.attachRoot?.(this),this.__asyncRuntime=e,this.__asyncAttached=!0}disconnectedCallback(){this.__asyncAttached&&(this.__asyncRuntime?.detachRoot?.(this),this.__asyncRuntime=void 0,this.__asyncAttached=!1)}}return n.define(r,i),i},defineAsyncSuspenseElement:function(e={}){const t=e.tagName??"async-suspense",r=e.customElements??globalThis.customElements;if(!r)throw new Error("defineAsyncSuspenseElement(...) requires customElements.");const n=r.get(t);if(n)return n;const o=e.HTMLElement??e.window?.HTMLElement??globalThis.HTMLElement;if(!o)throw new Error("defineAsyncSuspenseElement(...) requires HTMLElement.");class s extends o{}return r.define(t,s),s}}})(),{asyncSignal:m}=e,{Async:b}=h,{createApp:v}=h,{defineApp:S}=h,{readSnapshot:E}=h,{attributeName:$}=o,{defineAttributeConfig:A}=o,{createBoundaryReceiver:j}=y,{createCacheRegistry:R}=n,{defineCache:O}=n,{component:k}=i,{createComponentRegistry:_}=i,{defineComponent:T}=i,{delay:q}=g,{defineAsyncContainerElement:C}=w,{defineAsyncSuspenseElement:M}=w,{createHandlerRegistry:x}=u,{html:L}=a,{createLazyRegistry:D}=t,{defineRegistrySnapshot:B}=t,{Loader:P}=f,{AsyncLoader:N}=f,{createPartialRegistry:z}=p,{createRegistryStore:H}=r,{createRouteRegistry:U}=d,{createRouter:W}=d,{defineRoute:V}=d,{route:I}=d,{createScheduler:F}=l,{applyServerResult:J}=c,{createServerProxy:K}=c,{resolveServerCommandArguments:Z}=c,{unwrapServerResult:Y}=c,{computed:G}=s,{createSignal:Q}=s,{createSignalRegistry:X}=s,{effect:ee}=s,{signal:te}=s,re={asyncSignal:m,Async:b,createApp:v,defineApp:S,readSnapshot:E,attributeName:$,defineAttributeConfig:A,createBoundaryReceiver:j,createCacheRegistry:R,defineCache:O,component:k,createComponentRegistry:_,defineComponent:T,delay:q,defineAsyncContainerElement:C,defineAsyncSuspenseElement:M,createHandlerRegistry:x,html:L,createLazyRegistry:D,defineRegistrySnapshot:B,Loader:P,AsyncLoader:N,createPartialRegistry:z,createRegistryStore:H,createRouteRegistry:U,createRouter:W,defineRoute:V,route:I,createScheduler:F,applyServerResult:J,createServerProxy:K,resolveServerCommandArguments:Z,unwrapServerResult:Y,computed:G,createSignal:Q,createSignalRegistry:X,effect:ee,signal:te};return function(e,t){const r=Object.keys(e).filter(e=>"Async"!==e&&Object.prototype.hasOwnProperty.call(t,e));if(r.length>0)throw new Error(`UMD Async namespace export conflict: ${r.join(", ")}.`)}(re,b),Object.assign(b,re),b.Async=b,b}();"function"==typeof define&&define.amd?define([],()=>t):"object"==typeof module&&module.exports?module.exports=t:(e.AsyncFramework=t,e.Async=t)}("undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:this);
1
+ !function(e){const t=function(){"use strict";const e=(()=>{const e=Symbol.for("@async/framework.asyncSignal");return{asyncSignal:function t(r,n){if("string"!=typeof r||0===r.length)throw new TypeError("asyncSignal(id, fn) requires a non-empty string id.");if("function"!=typeof n)throw new TypeError("asyncSignal(id, fn) requires a function.");let o,s,a,i,c=!1,u=null,l="idle",f=0,p=r;const d=new Set,h=new Set,y={[e]:!0,kind:"async-signal",get id(){return p},get value(){return o},get loading(){return c},get error(){return u},get status(){return l},get version(){return f},set:e=>(o=e,c=!1,u=null,l="ready",b(),o),refresh(){if(!s)throw new Error(`Async signal "${p}" is not registered.`);i&&!i.aborted&&i.cancel(new Error(`Async signal "${p}" refreshed.`));const e=f+1;f=e,c=!0,u=null,l="loading";const t=new AbortController;a=t,i=t.signal,function(e,t){Object.defineProperty(e,"cancel",{configurable:!0,enumerable:!1,value(e){t.abort(e)}})}(i,t),b();const r={signals:s,id:p,get server(){const e=s._context?.()??{},t=e.server;return"function"==typeof t?._withContext?t._withContext({signals:s,router:e.router,loader:e.loader,cache:e.cache,abort:i,scheduler:e.scheduler}):t},get router(){return s._context?.().router},get loader(){return s._context?.().loader},get cache(){return s._context?.().cache},get scheduler(){return s._context?.().scheduler},get version(){return e},get abort(){return i},refresh:()=>y.refresh()};let d;try{d=s._collectDependencies(()=>n.call(r))}catch(t){return g(e,t),Promise.reject(t)}return function(e){for(const e of h)e();h.clear();for(const t of e){const e=String(t).split(".")[0];e&&e!==p&&h.add(s.subscribe(t,()=>m()))}}(d.dependencies),Promise.resolve(d.value).then(t=>w(e)?(o=t,c=!1,u=null,l="ready",b(),o):o,t=>w(e)?i?.aborted?(c=!1,l=void 0===o?"idle":"ready",b(),o):(g(e,t),o):o)},cancel(e){i&&!i.aborted&&i.cancel(e)},subscribe(e){if("function"!=typeof e)throw new TypeError("subscribe(fn) requires a function.");return d.add(e),()=>d.delete(e)},snapshot:()=>({value:o,loading:c,error:u,status:l,version:f}),_cloneSignalDeclaration:()=>t(r,n),_restore:(e={})=>function(e){return!(!e||"object"!=typeof e||Array.isArray(e))&&Object.hasOwn(e,"value")&&(Object.hasOwn(e,"loading")||Object.hasOwn(e,"error")||Object.hasOwn(e,"status")||Object.hasOwn(e,"version"))}(e)?(i&&!i.aborted&&i.cancel(new Error(`Async signal "${p}" restored from snapshot.`)),o=e.value,c=Boolean(e.loading),u=e.error??null,l="string"==typeof e.status?e.status:function({value:e,loading:t,error:r}){return t?"loading":r?"error":void 0===e?"idle":"ready"}({value:o,loading:c,error:u}),Number.isFinite(e.version)&&(f=e.version),b(),y):y.set(e),_bindRegistry(e,t){s=e,p=t;const r=()=>{s===e&&"idle"===l&&y.refresh()},n=s._context?.().scheduler;n?n.enqueue("async",r,{scope:p,key:`asyncSignal:${p}:initial`}):queueMicrotask(r)},_dispose(){y.cancel(new Error(`Async signal "${p}" disposed.`));for(const e of h)e();h.clear(),d.clear()}};function g(e,t){w(e)&&(c=!1,u=t,l="error",b())}function w(e){return e===f&&a?.signal===i}function m(){i&&!i.aborted&&i.cancel(new Error(`Async signal "${p}" dependency changed.`));const e=s?._context?.().scheduler;e?e.enqueue("async",()=>y.refresh(),{scope:p,key:`asyncSignal:${p}:refresh`}):y.refresh()}function b(){for(const e of[...d])e(y)}return y},isAsyncSignal:function(t){return Boolean(t?.[e])}}})(),t=(()=>{const e=new Set(["handler","component","asyncSignal","partial","route"]);function t(t={}){const r=function(e){if("string"!=typeof e||0===e.length)throw new TypeError("registryAssets.baseUrl must be a non-empty string.");return i(e)||e.startsWith("/")||e.startsWith("./")||e.startsWith("../")?a(e):`/${s(e)}`}(t.baseUrl??"_async"),n={component:"component",handler:"handler",asyncSignal:"asyncSignal",partial:"partial",route:"route",...t.paths??{}};for(const[t,r]of Object.entries(n))if(e.has(t)&&("string"!=typeof r||0===r.length))throw new TypeError(`Registry asset path for "${t}" must be a non-empty string.`);return{baseUrl:r,paths:n}}function r(e){return Boolean(e&&"object"==typeof e&&!Array.isArray(e)&&"string"==typeof e.url)}function n(t,n,c,u){if(!e.has(t))throw new Error(`Registry type "${t}" does not support lazy descriptors.`);if(!r(c))throw new TypeError(`Registry descriptor for "${t}:${n}" requires a url.`);const{path:l,hash:f}=function(e){const t=e.indexOf("#");return-1===t?{path:e,hash:""}:{path:e.slice(0,t),hash:e.slice(t+1)}}(c.url),p=function(e,t,r){if(i(t)||t.startsWith("/")||t.startsWith("./")||t.startsWith("../"))return t;const n=r.paths[e]??e;return function(...e){const[t,...r]=e;return[a(t),...r.map(s)].filter(Boolean).join("/")}(r.baseUrl,n,t)}(t,l,u);return{moduleUrl:p,exportNames:f?[f]:o(n,l),url:f?`${p}#${f}`:p}}function o(e,t){const r=[],n=e.split(".").filter(Boolean).at(-1),o=t.split("/").filter(Boolean).at(-1)?.replace(/\.[^.]+$/,"");for(const e of[n,o,"default"])e&&!r.includes(e)&&r.push(e);return r}function s(e){return String(e).replace(/^\/+|\/+$/g,"")}function a(e){return String(e).replace(/\/+$/g,"")}function i(e){return/^[A-Za-z][A-Za-z\d+.-]*:/.test(e)}function c(e){return!e||"object"!=typeof e||Array.isArray(e)?JSON.stringify(e):JSON.stringify(Object.keys(e).sort().map(t=>[t,e[t]]))}return{defineRegistrySnapshot:function(e={}){if(!e||"object"!=typeof e||Array.isArray(e))throw new TypeError("defineRegistrySnapshot(snapshot) requires an object.");return e},createLazyRegistry:function(e={}){const o=t(e.registryAssets??e.assets),s=e.importModule??(e=>import(e)),a=new Map,i=new Map;return{registryAssets:o,resolveUrl:(e,t,r)=>n(e,t,r,o),async resolve(e,t,c){if(!r(c))return c;const u=`${e}:${t}`;if(i.has(u))return i.get(u);const l=n(e,t,c,o);let f,p=a.get(l.moduleUrl);p||(p=Promise.resolve().then(()=>s(l.moduleUrl)),a.set(l.moduleUrl,p));try{f=await p}catch(r){throw a.get(l.moduleUrl)===p&&a.delete(l.moduleUrl),new Error(`Lazy ${e} "${t}" failed to import ${l.moduleUrl}: ${d=r,d instanceof Error?d.message:String(d)}`,{cause:r})}var d;const h=function(e,t,r,n){for(const r of t)if(r in e)return e[r];throw new Error(`Lazy ${r} "${n}" did not export ${t.map(e=>`"${e}"`).join(", ")}.`)}(f,l.exportNames,e,t);return i.set(u,h),h},inspect:()=>({registryAssets:o,modules:[...a.keys()],exports:[...i.keys()]})}},normalizeRegistryAssets:t,isLazyDescriptor:r,sameRegistryValue:function(e,t){return e===t||!(!r(e)||!r(t))&&c(e)===c(t)},publicRegistryValue:function(e,t){return r(e)?{...e}:{id:t}}}})(),r=(()=>{const{publicRegistryValue:e}=t,r=new Set(["signal","handler","server","partial","route","component","asyncSignal"]),n=new Set(["cache.browser","cache.server"]),o=new Set(["cache.browser.entries","cache.server.entries"]),s=new Set([...r,...n,...o]);function a(e){if(!s.has(e))throw new Error(`Unknown Async registry type "${e}".`);return e}function i(e,t){if("string"!=typeof t||0===t.length)throw new TypeError(`${e} id must be a non-empty string.`)}function c(t,r,n,s){return"server"===t&&"browser"===s.target?e(n,r):o.has(t)?n?.value:n}function u(e,t){return"cache.server.entries"===e&&"browser"===t}function l(e){const t={};for(const[r,n]of e)t[r]="function"==typeof n?.snapshot?n.snapshot():n?.value??n;return t}function f(t){const r={};for(const[n,o]of t)r[n]=e(o,n);return r}function p(e){return Object.fromEntries(e)}function d(e){const t={};for(const[r,n]of e)t[r]=n?.value;return t}function h(e){return e&&"object"==typeof e&&Object.hasOwn(e,"value")?e:{value:e}}return{createRegistryStore:function e(t={},n={}){const o=n.backing??{signal:new Map,handler:new Map,server:new Map,partial:new Map,route:new Map,component:new Map,asyncSignal:new Map,cache:{browser:new Map,server:new Map},cacheEntries:{browser:new Map,server:new Map}},s=n.target??"server",y={target:s,register(e,t,r){const n=y._map(e);if(i(e,t),n.has(t))throw new Error(`${e} "${t}" is already registered.`);return n.set(t,r),t},registerMany(e,t={}){for(const[r,n]of Object.entries(t??{}))y.register(e,r,n);return y},set(e,t,r){const n=y._map(e);return i(e,t),n.set(t,r),r},unregister:(e,t)=>y.delete(e,t),delete:(e,t)=>y._map(e).delete(t),keys:e=>u(e,s)?[]:[...y._map(e).keys()],entries(e,t={}){const r=a(e);return u(r,t.target??s)?[]:[...y._map(r)].map(([e,n])=>[e,c(r,e,n,{target:s,...t})])},has:(e,t)=>(i(e,t),!u(e,s)&&y._map(e).has(t)),get(e,t,r={}){i(e,t);const n=a(e);if(u(n,r.target??s))return;const o=y._map(n).get(t);return void 0!==o?c(n,t,o,{target:s,...r}):void 0},snapshot(e={}){const t=e.target??s;return{signal:l(o.signal),handler:f(o.handler),server:f(o.server),partial:f(o.partial),route:p(o.route),component:f(o.component),asyncSignal:f(o.asyncSignal),cache:{browser:p(o.cache.browser),server:p(o.cache.server)},entries:{browser:d(o.cacheEntries.browser),server:"browser"===t?{}:d(o.cacheEntries.server)}}},rawSnapshot:()=>({signal:Object.fromEntries(o.signal),handler:Object.fromEntries(o.handler),server:Object.fromEntries(o.server),partial:Object.fromEntries(o.partial),route:Object.fromEntries(o.route),component:Object.fromEntries(o.component),asyncSignal:Object.fromEntries(o.asyncSignal),cache:{browser:Object.fromEntries(o.cache.browser),server:Object.fromEntries(o.cache.server)}}),view:(t={})=>e(void 0,{backing:o,target:t.target??s}),_map(e){const t=a(e);if(r.has(t))return o[t];if("cache.browser"===t)return o.cache.browser;if("cache.server"===t)return o.cache.server;if("cache.browser.entries"===t)return o.cacheEntries.browser;if("cache.server.entries"===t)return o.cacheEntries.server;throw new Error(`Unknown Async registry type "${e}".`)}};return function(e,t={}){e.registerMany("signal",t.signal),e.registerMany("handler",t.handler),e.registerMany("server",t.server),e.registerMany("partial",t.partial),e.registerMany("route",t.route),e.registerMany("component",t.component),e.registerMany("asyncSignal",t.asyncSignal),e.registerMany("cache.browser",t.cache?.browser),e.registerMany("cache.server",t.cache?.server);const r=t.entries??{};for(const[t,n]of Object.entries(r.browser??{}))e.set("cache.browser.entries",t,h(n));for(const[t,n]of Object.entries(r.server??{}))e.set("cache.server.entries",t,h(n))}(y,t),y},attachRegistryInspection:function(e,t,r){return Object.defineProperty(e,"registry",{configurable:!0,enumerable:!0,value:t}),e.keys=()=>t.keys(r),e.entries=()=>t.entries(r),e.inspect=()=>t.entries(r),e}}})(),n=(()=>{const{attachRegistryInspection:e,createRegistryStore:t}=r,n=Symbol.for("@async/framework.cacheDefinition");function o(e={}){return{[n]:!0,kind:"cache-definition",store:e.store??"memory",ttl:e.ttl}}function s(e){if("string"!=typeof e||0===e.length)throw new TypeError("Cache id must be a non-empty string.")}function a(e){if("string"!=typeof e||0===e.length)throw new TypeError("Cache key must be a non-empty string.")}return{defineCache:o,createCacheRegistry:function(r={},{now:i=()=>Date.now(),registry:c,type:u="cache.browser"}={}){const l=c??t(),f=l._map(u),p=l._map(`${u}.entries`),d=new Map,h=e({register(e,t=o()){s(e);const r=function(e){return e?.[n]?e:o(e)}(t);if(f.has(e))throw new Error(`Cache "${e}" is already registered.`);return f.set(e,r),e},registerMany(e){for(const[t,r]of Object.entries(e??{}))h.register(t,r);return h},unregister:e=>(s(e),f.delete(e)),resolve:e=>(s(e),f.get(e)),get:e=>(a(e),y(e).value),set(e,t,r={}){a(e);const n=r.ttl??function(e,t){if(void 0!==t)return f.get(t);if(f.has(e))return f.get(e);const r=e.split(":")[0];return f.get(r)}(e,r.cache)?.ttl;return p.set(e,{value:t,expiresAt:void 0===n?void 0:i()+n}),t},async getOrSet(e,t,r={}){if(a(e),"function"!=typeof t)throw new TypeError("cache.getOrSet(key, fn) requires a function.");const n=y(e);if(n.found)return n.value;if(d.has(e))return d.get(e);let o;return o=Promise.resolve().then(t).then(t=>(d.get(e)===o&&h.set(e,t,r),t)).finally(()=>{d.get(e)===o&&d.delete(e)}),d.set(e,o),o},delete:e=>(a(e),d.delete(e),p.delete(e)),clear(e){if(void 0===e)return p.clear(),d.clear(),h;for(const t of[...p.keys()])t.startsWith(e)&&p.delete(t);for(const t of[...d.keys()])t.startsWith(e)&&d.delete(t);return h},snapshot(){const e={};for(const[t]of p){const{found:r,value:n}=y(t);r&&void 0!==n&&(e[t]=n)}return e},restore(e={}){for(const[t,r]of Object.entries(e??{}))h.set(t,r);return h},entryKeys:()=>[...p.keys()],entryEntries:()=>l.entries(`${u}.entries`),_adoptMany(e={}){for(const[t,r]of Object.entries(e??{}))f.has(t)||h.register(t,r);return h}},l,u);return h.registerMany(r),h;function y(e){const t=p.get(e);return t?void 0!==t.expiresAt&&t.expiresAt<=i()?(p.delete(e),{found:!1,value:void 0}):{found:!0,value:t.value}:{found:!1,value:void 0}}}}})(),o=(()=>{const e=Object.freeze({async:["async:"],class:["class:"],signal:["signal:"],on:["on:"]});function t(t={}){return{async:r(t.async,e.async),class:r(t.class,e.class),signal:r(t.signal,e.signal),on:r(t.on,e.on)}}function r(e,t){return(null==e?t:Array.isArray(e)?e:[e]).map(e=>{if("string"!=typeof e||0===e.length)throw new TypeError("Attribute prefixes must be non-empty strings.");return e})}return{defineAttributeConfig:function(e={}){return t(e)},normalizeAttributeConfig:t,attributeName:function(e,r,n){return t(e)[r][0]+n},readAttribute:function(e,r,n,o){for(const s of t(r)[n]){const t=`${s}${o}`;if(e.hasAttribute?.(t))return e.getAttribute(t)}return null},matchAttribute:function(e,r,n){for(const o of t(r)[n])if(e.startsWith(o))return e.slice(o.length);return null}}})(),s=(()=>{const{asyncSignal:n,isAsyncSignal:o}=e,{attachRegistryInspection:s,createRegistryStore:a}=r,{createLazyRegistry:i,isLazyDescriptor:c}=t,u=Symbol.for("@async/framework.signal"),l=Symbol.for("@async/framework.computed"),f=Symbol.for("@async/framework.effect"),p=Symbol.for("@async/framework.signalRef"),d=[];function h(e){let t=e;const r=new Set;return{[u]:!0,kind:"signal",get value(){return t},set value(e){this.set(e)},set:e=>(Object.is(t,e)||(t=e,function(){for(const e of[...r])e(t)}()),t),update(e){return this.set(e(t))},subscribe(e){if("function"!=typeof e)throw new TypeError("subscribe(fn) requires a function.");return r.add(e),()=>r.delete(e)},snapshot:()=>t,_cloneSignalDeclaration:()=>h(t)}}function y(e){return"function"==typeof e?._cloneSignalDeclaration?e._cloneSignalDeclaration():g(e)?h("function"==typeof e.snapshot?e.snapshot():e.value):h(e)}function g(e){return Boolean(e&&"object"==typeof e&&"function"==typeof e.subscribe)}function w(e,t){let r=e;for(const e of t){if(null==r)return;r=r[e]}return r}function m(e,t,r){const n=b(e,t[0]);let o=n;for(let e=0;e<t.length-1;e+=1){const r=t[e],n=t[e+1];o[r]=b(o[r],n),o=o[r]}return o[t.at(-1)]=r,n}function b(e,t){return Array.isArray(e)?[...e]:e&&"object"==typeof e?{...e}:(r=t,String(Number(r))===String(r)?[]:{});var r}function v(e,t){const r=e.get(t);if(!r)throw new Error(`Signal "${t}" is not registered.`);return r}function S(e){if("string"!=typeof e||0===e.length)throw new TypeError("Signal id must be a non-empty string.")}return{createSignal:h,computed:function e(t){if("function"!=typeof t)throw new TypeError("computed(fn) requires a function.");const r=h(void 0);return{[l]:!0,kind:"computed",get value(){return r.value},set:e=>r.set(e),update:e=>r.update(e),subscribe:e=>r.subscribe(e),snapshot:()=>r.snapshot(),_cloneSignalDeclaration:()=>e(t),_bindRegistry:(e,n)=>e.effect(()=>{r.set(t.call({signals:e,id:n,server:e._context?.().server,router:e._context?.().router,loader:e._context?.().loader,cache:e._context?.().cache,scheduler:e._context?.().scheduler}))})}},effect:function e(t){if("function"!=typeof t)throw new TypeError("effect(fn) requires a function.");return{[f]:!0,kind:"effect",fn:t,_cloneSignalDeclaration:()=>e(t),_bindRegistry:e=>e.effect(t)}},createSignalRegistry:function(e={},t={}){const r=t.registry??a(),u=t.type??"signal",l=r._map(u),f=r._map("asyncSignal"),b=t.lazyRegistry??i(t),E=new Map,$={},A=new Set;let j=0,R=0;const O=s({register(e,t){if(S(e),l.has(e))throw new Error(`Signal "${e}" is already registered.`);const r=function(e){return g(e)?e:h(e)}(t);return l.set(e,r),_(e,r),O.ref(e)},registerMany(e){for(const[t,r]of Object.entries(e??{}))O.register(t,r);return O},unregister:e=>(S(e),!!l.has(e)&&(E.get(e)?.(),E.delete(e),l.get(e)?._dispose?.(),l.delete(e),A.delete(e),!0)),ensure:(e,t)=>(S(e),T(e),l.has(e)||O.register(e,h(t)),O.ref(e)),has:e=>l.has(e)||f.has(e),get(e){const t=k(e);return function(e){const t=d.at(-1);t&&t.add(e)}(t.path),function(e,t){if(o(e)&&t[0]?.startsWith("$"))return w(function(e,t){switch(t){case"$value":return e.value;case"$loading":return e.loading;case"$error":return e.error;case"$status":return e.status;case"$version":return e.version;default:return}}(e,t[0]),t.slice(1));return w(e.value,t)}(v(l,t.id),t.parts)},set(e,t){const r=k(e),n=v(l,r.id);if(0===r.parts.length)return n.set(t);const o=m(n.value,r.parts,t);return n.set(o),t},update(e,t){if("function"!=typeof t)throw new TypeError("update(path, fn) requires a function.");return O.set(e,t(O.get(e)))},ref:e=>(S(e),T(e),function(e,t){return{[p]:!0,kind:"signal-ref",id:t,get value(){return e.get(t)},set value(r){e.set(t,r)},get loading(){return e._entry(t).loading??!1},get error(){return e._entry(t).error??null},get status(){return e._entry(t).status??"ready"},get version(){return e._entry(t).version??0},get:()=>e.get(t),set:r=>e.set(t,r),update:r=>e.update(t,r),subscribe:r=>e.subscribe(t,r),refresh(){const r=e._entry(t);if("function"!=typeof r.refresh)throw new Error(`Signal "${t}" cannot refresh.`);return r.refresh()},cancel(r){const n=e._entry(t);if("function"!=typeof n.cancel)throw new Error(`Signal "${t}" cannot cancel.`);return n.cancel(r)},toString:()=>t,[Symbol.toPrimitive]:()=>t}}(O,e)),subscribe(e,t,r={}){if("function"!=typeof t)throw new TypeError("subscribe(path, fn) requires a function.");const n=k(e),o=v(l,n.id),s=++j;return o.subscribe(()=>{!function(e,t={}){const r=t.scheduler;r&&"sync"!==t.phase?r.enqueue(t.phase??"effect",e,{scope:t.scope,key:t.key}):e()}(()=>t(O.get(n.path),{id:n.id,path:n.path,signal:o}),{...r,key:r.key??`signal:${n.path}:${s}`})})},snapshot(){const e={};for(const[t,r]of l)e[t]="function"==typeof r.snapshot?r.snapshot():r.value;return e},asyncSignal:(e,t)=>(O.register(e,n(e,t)),O.ref(e)),effect(e,t={}){let r,n=[],o=!1;const s=t.scheduler,a=++R,i=()=>{if(o)return;"function"==typeof r&&r();for(const e of n)e();n=[];const t=O._collectDependencies(()=>e.call({signals:O,server:$.server,router:$.router,loader:$.loader,cache:$.cache,scheduler:$.scheduler}));r=t.value,n=t.dependencies.map(e=>O.subscribe(e,c))},c=()=>{s?s.enqueue(t.phase??"effect",i,{scope:t.scope,key:t.key??`effect:${a}`}):i()};return i(),()=>{o=!0,"function"==typeof r&&r();for(const e of n)e()}},destroy(){for(const e of E.values())e();E.clear();for(const e of l.values())e._dispose?.();l.clear()},_collectDependencies(e){const t=new Set;d.push(t);try{return{value:e(),dependencies:[...t]}}finally{d.pop()}},_entry:e=>(T(e),v(l,e)),_setPath(e,t){const r=function(e){if("string"!=typeof e||0===e.length)throw new TypeError("Signal path must be a non-empty string.");const[t,...r]=e.split(".");return{id:t,parts:r,path:e}}(e);l.has(r.id)||(f.has(r.id)?T(r.id):O.register(r.id,h(0===r.parts.length?t:{})));const n=v(l,r.id);if(0===r.parts.length)return n.set(t);const o=m(n.value,r.parts,t);return n.set(o),t},_setContext:(e={})=>(Object.assign($,e),O),_context:()=>$,_adoptMany(e={}){for(const[t,r]of Object.entries(e??{})){if(!l.has(t)){const e=y(r);l.set(t,e),_(t,e);continue}_(t,l.get(t))}return O}},r,u);for(const[e,t]of l)_(e,t);return O.registerMany(e),O;function _(e,t){if(A.has(e)||"function"!=typeof t?._bindRegistry)return;A.add(e);const r=t._bindRegistry(O,e);"function"==typeof r&&E.set(e,r)}function k(e){if("string"!=typeof e||0===e.length)throw new TypeError("Signal path must be a non-empty string.");const t=e.split(".");for(let r=t.length;r>0;r-=1){const n=t.slice(0,r).join(".");if(l.has(n)||f.has(n))return T(n),{id:n,parts:t.slice(r),path:e}}const[r,...n]=t;return{id:r,parts:n,path:e}}function T(e){if(l.has(e)||!f.has(e))return;const t=f.get(e);if(!c(t)&&"function"!=typeof t)throw new TypeError(`Async signal "${e}" must be a function or lazy descriptor.`);const r=n(e,async function(...r){const n=await b.resolve("asyncSignal",e,t);if("function"!=typeof n)throw new TypeError(`Async signal "${e}" did not resolve to a function.`);return n.apply(this,r)});l.set(e,r),_(e,r)}},cloneSignalDeclaration:y,isSignalRef:function(e){return Boolean(e?.[p])},signal:h}})(),a=(()=>{const{isSignalRef:e}=s,{attributeName:t,matchAttribute:r,normalizeAttributeConfig:n}=o,a=Symbol.for("@async/framework.template"),i=Symbol.for("@async/framework.rawHtml");function c(e){return Boolean(e?.[a])}function u(e,t={}){if(c(e)){const r=p(t);let n="";for(let t=0;t<e.strings.length;t+=1)n+=e.strings[t],t<e.values.length&&(n+=l(e.values[t],{...r,attribute:d(e.strings[t])}));return n}return l(e,p(t))}function l(n,o=p()){return n?.[i]?n.html:c(n)?u(n,o):o.attribute?function(n,o){const s=r(o.attribute.name,o.attributes,"signal"),a=r(o.attribute.name,o.attributes,"class"),i=function(t,r){return e(t)?t.id:"string"==typeof t&&r.signals?.has?.(t)?t:null}(n,o);if("value"===o.attribute.name&&i){const r=function(t,r){return e(t)?t.value:"string"==typeof t&&r.signals?.has?.(t)?r.signals.get(t):t}(n,o),s=t(o.attributes,"signal","value");return`${h(r)}${o.attribute.quote} ${s}=${o.attribute.quote}${h(i)}`}if(null!=s||null!=a){if(i)return h(i);if(function(e){return Boolean(e&&"object"==typeof e)}(n))return h(function(e,t){return"function"!=typeof t.bind?e:t.bind(e)}(n,o))}return f(n,o)}(n,o):Array.isArray(n)?n.map(e=>l(e,o)).join(""):e(n)?h(n.value):null==n||!1===n?"":h(n)}function f(t,r){return Array.isArray(t)?t.map(e=>f(e,r)).join(""):e(t)?h(t.value):null==t||!1===t?"":h(t)}function p(e={}){return{...e,attributes:n(e.attributes)}}function d(e){const t=e.match(/(?:^|[\s<])([^\s"'=<>`]+)\s*=\s*(["'])$/);return t?{name:t[1],quote:t[2]}:null}function h(e){return String(e).replaceAll("&","&amp;").replaceAll("<","&lt;").replaceAll(">","&gt;").replaceAll('"',"&quot;").replaceAll("'","&#39;")}return{html:function(e,...t){return{[a]:!0,strings:e,values:t}},isTemplateResult:c,rawHtml:function(e){return{[i]:!0,html:String(e??"")}},renderTemplate:u,escapeHtml:h}})(),i=(()=>{const{attributeName:e}=o,{escapeHtml:n,rawHtml:s,renderTemplate:i}=a,{attachRegistryInspection:c,createRegistryStore:u}=r,{createLazyRegistry:l,isLazyDescriptor:f}=t,p=Symbol.for("@async/framework.component");let d=0;function h(e){if("function"!=typeof e)throw new TypeError("defineComponent(fn) requires a function.");return Object.defineProperty(e,p,{configurable:!0,value:!0}),e}function y(e){return Boolean(e?.[p])}function g(t,r={},o,a="component"){if(!y(t)&&"function"!=typeof t)throw new TypeError("renderComponent(Component) requires a component function.");const c=`${a}.${m(t)}.${++d}`,u=[],l=[],f=[],p=[],h=[],b={attributes:o.attributes,signals:o.signals,bind(e){const t=o.loader?._registerBinding?.(e);if(!t)throw new Error("Inline template bindings require a Loader.");return h.push(t),t}},v=e=>i(e,b),S=function({runtime:t,scope:r,cleanups:o,attachHooks:a,visibleHooks:i,destroyHooks:c,renderScopedTemplate:u}){const{signals:l,handlers:f,loader:p,server:d,router:h,cache:y,scheduler:m}=t,b=new WeakMap;let v=0,S=0;const E={scope:r,signals:l,handlers:f,loader:p,server:d,router:h,cache:y,scheduler:m,signal(e,t){if(1===arguments.length){const t=w(r,"signal."+ ++S),n=l.ensure(t,e);return o.push(()=>l.unregister?.(t)),n}const n=w(r,e),s=!l.has(n),a=l.ensure(n,t);return s&&o.push(()=>l.unregister?.(n)),a},computed(e,t){const n=w(r,e),s=!l.has(n),a=l.ensure(n,void 0);s&&o.push(()=>l.unregister?.(n));const i=l.effect(()=>{l.set(n,t.call(E))});return o.push(i),a},asyncSignal(e,t){const n=w(r,e),s=!l.has(n);return l.has(n)||l.asyncSignal(n,t),s&&o.push(()=>l.unregister?.(n)),l.ref(n)},effect(e){const t=l.effect(()=>e.call(E),{scheduler:m,phase:"effect",scope:r});return o.push(t),t},handler(e,t){if("function"==typeof e&&void 0===t){const t=e;if(b.has(t))return b.get(t);const r=$("handler."+ ++v,t);return b.set(t,r),r}if("function"!=typeof t)throw new TypeError("this.handler(name, fn) or this.handler(fn) requires a function.");return $(e,t)},render(e,n={}){const c=g(e,n,t,r);return o.push(c.cleanup),a.push(e=>c.attach(e)),i.push(e=>c.visible(e,p._observeVisible)),s(c.html)},suspense(r,o){const a=r?.id;if(!a)throw new TypeError("this.suspense(signalRef, views) requires a signal ref.");const i=function(e){const t="function"==typeof e?{ready:e}:e;if(!t||"object"!=typeof t||Array.isArray(t))throw new TypeError("this.suspense(signalRef, views) requires views to be a function or object.");for(const e of["loading","ready","error"])if(Object.hasOwn(t,e)&&void 0!==t[e]&&"function"!=typeof t[e])throw new TypeError(`this.suspense(signalRef, views) view "${e}" must be a function.`);return t}(o),c=[];for(const o of["loading","ready","error"]){const s=i[o];if(!s)continue;const l=e(t.attributes,"async",o),f=u(s.call(E,r));c.push(`<template ${l}="${n(a)}">${f}</template>`)}return s(c.join(""))},on(e,t){if("string"!=typeof e||0===e.length)throw new TypeError("Component lifecycle event must be a non-empty string.");if("function"!=typeof t)throw new TypeError(`Component lifecycle "${e}" requires a function.`);const r="mount"===e?"attach":e;if("attach"!==r)if("visible"!==r){if("destroy"!==r)throw new Error(`Unsupported component lifecycle event "${e}".`);c.push(()=>t.call(E))}else i.push(e=>t.call(E,e));else a.push(e=>t.call(E,e))},onMount(e){E.on("attach",e)},onVisible(e){E.on("visible",e)}};return E;function $(e,t){const n=w(r,e);return f.register(n,e=>t.call({...E,...e},e)),o.push(()=>f.unregister?.(n)),n}}({runtime:o,scope:c,cleanups:u,attachHooks:l,visibleHooks:f,destroyHooks:p,renderScopedTemplate:v}),E=t.call(S,r);if(E&&"function"==typeof E.then)throw new TypeError(`Component "${m(t)}" returned a Promise. Async components are not supported by synchronous renderComponent(). Use an async partial or handler instead.`);return{html:v(E),attach(e){for(let t=0;t<l.length;t+=1){const r=l[t];o.scheduler?.enqueue("lifecycle",()=>{const t=r(e);"function"==typeof t&&u.push(t)},{scope:c,key:`attach:${t}`})??$(r,e)}},mount(e){this.attach(e)},visible(e,t){if(0===f.length)return;const r=t(e,()=>{for(let t=0;t<f.length;t+=1){const r=f[t];o.scheduler?.enqueue("lifecycle",()=>{const t=r(e);"function"==typeof t&&u.push(t)},{scope:c,key:`visible:${t}`})??A(r,e)}});"function"==typeof r&&u.push(r)},cleanup(){for(;p.length>0;)p.pop()?.();for(o.scheduler?.markScopeDestroyed(c);u.length>0;)u.pop()?.();for(;h.length>0;)o.loader?._releaseBinding?.(h.pop())}};function $(e,t){const r=e(t);"function"==typeof r&&u.push(r)}function A(e,t){const r=e(t);"function"==typeof r&&u.push(r)}}function w(e,t){if("string"!=typeof t||0===t.length)throw new TypeError("Scoped signal or handler name must be a non-empty string.");return`${e}.${t}`}function m(e){return e.displayName||e.name||"anonymous"}return{defineComponent:h,createComponentRegistry:function(e={},t={}){const r=t.registry??u(),n=t.type??"component",o=r._map(n),s=t.lazyRegistry??l(t),a=new Map,i=c({register(e,t){if("string"!=typeof e||0===e.length)throw new TypeError("Component id must be a non-empty string.");if(!y(t)&&"function"!=typeof t&&!f(t))throw new TypeError(`Component "${e}" must be a component function.`);if(o.has(e))throw new Error(`Component "${e}" is already registered.`);return o.set(e,t),e},registerMany(e){for(const[t,r]of Object.entries(e??{}))i.register(t,r);return i},unregister(e){if("string"!=typeof e||0===e.length)throw new TypeError("Component id must be a non-empty string.");return a.delete(e),o.delete(e)},resolve(e){if("string"!=typeof e||0===e.length)throw new TypeError("Component id must be a non-empty string.");const t=o.get(e);return f(t)?(a.has(e)||a.set(e,async function(...r){const o=await s.resolve(n,e,t);if("function"!=typeof o)throw new TypeError(`Component "${e}" did not resolve to a function.`);return o.apply(this,r)}),a.get(e)):t},_adoptMany(e={}){for(const[t,r]of Object.entries(e??{}))o.has(t)||i.register(t,r);return i}},r,n);return i.registerMany(e),i},isComponent:y,renderComponent:g,component:h}})(),c=(()=>{const e=new Set(["value","signals","boundary","html","redirect","error"]),t=Symbol.for("@async/framework.appliedServerResult"),r=new WeakSet;async function n(e,n={}){if(!h(e))return e;if(e[t]||r.has(e))return e;if(e.error)throw s(e),(o=e.error)instanceof Error?o:o&&"object"==typeof o&&"string"==typeof o.message?Object.assign(new Error(o.message),o):new Error(String(o));var o;if(e.signals&&n.signals)for(const[t,r]of Object.entries(e.signals))n.signals.set?.(t,r);return e.cache?.browser&&n.cache?.restore&&n.cache.restore(e.cache.browser),e.boundary&&Object.hasOwn(e,"html")&&n.loader?.swap?.(e.boundary,e.html),e.redirect&&await(n.router?.navigate?.(e.redirect)),s(e),e}function o(e){return h(e)&&Object.hasOwn(e,"value")?e.value:e}function s(e){return Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:!0}),e}function a(e={}){const t=f(e);if(t)return p(new t.ownerDocument.defaultView.FormData(t));const r=e.element??e.el??e.event?.target;return r?{value:"value"in r?r.value:void 0,checked:"checked"in r?r.checked:void 0,dataset:r.dataset?{...r.dataset}:{}}:{}}function i(e,t={},r=()=>({})){const s=new Map;return function a(c){const u=c.join(".");if(s.has(u))return s.get(u);const l=new Proxy(async(...t)=>{if(0===c.length)throw new Error("Server namespace is not directly callable.");const s=r()??{},a=await e(c.join("."),t,s);return await n(a,s),o(a)},{get(n,o){if("then"!==o)return o in n?n[o]:0===c.length&&"_withContext"===o?(n={})=>i(e,t,()=>({...r()??{},...n})):0===c.length&&"run"===o&&"function"==typeof t.run?(e,n=[],o={})=>t.run(e,n,{...r()??{},...o}):0===c.length&&Object.hasOwn(t,o)?t[o]:o===Symbol.toStringTag?"AsyncServerNamespace":"toString"===o?()=>0===c.length?"server":`server.${c.join(".")}`:a([...c,String(o)])}});return s.set(u,l),l}([])}function c(e=[],t){const r={};for(const n of e)r[n]=u(t,n);return r}function u(e,t){if(!e||"function"!=typeof e.get)throw new Error(`Signal "${t}" cannot be read without a signal registry.`);return e.get(t)}function l(e,t,{forServer:r}={}){if(("$event"===e||"$el"===e)&&r)throw new Error(`${e} cannot be passed to a server command.`);if("$event"===e)return t.event;if("$el"===e)return t.element??t.el;if("$value"===e){const e=t.element??t.el??t.event?.target;return e?.value}if("$checked"===e){const e=t.element??t.el??t.event?.target;return e?.checked}if("$form"===e){const e=f(t);return e?p(new e.ownerDocument.defaultView.FormData(e)):{}}if("$dataset"===e){const e=t.element??t.el??t.event?.target;return e?.dataset?{...e.dataset}:{}}throw new Error(`Event local "${e}" is not supported.`)}function f(e){const t=e.event,r=e.element??e.el??t?.target;return"FORM"===r?.tagName?r:"submit"===t?.type&&"FORM"===t.target?.tagName?t.target:"submit"===t?.type&&r?.form?r.form:null}function p(e){const t={};for(const[r,n]of e.entries())Object.hasOwn(t,r)?t[r]=Array.isArray(t[r])?[...t[r],n]:[t[r],n]:t[r]=n;return t}function d(e,t=new Set){if("bigint"==typeof e)throw new Error("Server proxy JSON transport does not support BigInt values.");if(null==e||"object"!=typeof e)return;if(t.has(e))throw new Error("Server proxy JSON transport does not support circular values.");t.add(e);const r=Object.prototype.toString.call(e);if("[object File]"===r||"[object Blob]"===r||"[object FormData]"===r)throw new Error("Server proxy JSON transport does not support File, Blob, or FormData values yet.");if(function(e,t=Object.prototype.toString.call(e)){return"[object URLSearchParams]"===t||"[object Headers]"===t||"[object Request]"===t||"[object Response]"===t||"[object ReadableStream]"===t||"[object ArrayBuffer]"===t||ArrayBuffer.isView(e)}(e,r))throw new Error("Server proxy JSON transport does not support URLSearchParams, Headers, Request, Response, ReadableStream, ArrayBuffer, or typed array values yet.");if(Array.isArray(e)){for(const r of e)d(r,t);t.delete(e)}else{for(const r of Object.values(e))d(r,t);t.delete(e)}}function h(t){return!(!t||"object"!=typeof t||Array.isArray(t))&&Object.keys(t).some(t=>e.has(t))}function y(e){if("string"!=typeof e||0===e.length)throw new TypeError("Server function id must be a non-empty string.")}return{createServerProxy:function({endpoint:e="/__async/server",transport:t,signals:s,loader:u,router:l,cache:f,scheduler:p,headers:h={}}={}){if("function"!=typeof t)throw new TypeError("createServerProxy(...) requires a transport function.");const g={signals:s,loader:u,router:l,cache:f,scheduler:p};async function w(s,i=[],u={}){y(s);const l={...g,...u},f={args:i,input:u.input??a(l),signals:u.signalValues??c(u.signalPaths,l.signals)};d(f);const p=await t(function(e,t){return`${String(e).replace(/\/$/,"")}/${encodeURIComponent(t)}`}(e,s),{method:"POST",headers:{"content-type":"application/json",...h},body:JSON.stringify(f),signal:u.abort});if(function(e,t){if(!t||"object"!=typeof t)throw new Error(`Server function "${e}" transport returned an invalid response: expected a fetch Response-like object.`);if("boolean"!=typeof t.ok)throw new Error(`Server function "${e}" transport returned an invalid response: missing boolean ok.`);if(!t.headers||"function"!=typeof t.headers.get)throw new Error(`Server function "${e}" transport returned an invalid response: missing headers.get(name).`)}(s,p),!p.ok)throw new Error(`Server function "${s}" failed with ${p.status}.`);const w=await async function(e,t){if(204===t.status)return{value:void 0};if((t.headers.get("content-type")??"").includes("application/json")){if("function"!=typeof t.json)throw new Error(`Server function "${e}" transport returned an invalid response: missing json().`);try{return await t.json()}catch(t){throw new Error(`Server function "${e}" returned invalid JSON: ${r=t,r instanceof Error?r.message:String(r)}`,{cause:t})}}var r;if("function"!=typeof t.text)throw new Error(`Server function "${e}" transport returned an invalid response: missing text().`);return{value:await t.text()}}(s,p);return await n(w,l),(m=o(w))&&"object"==typeof m&&r.add(m),m;var m}return i(w,{run:w,_setContext(e={}){Object.assign(g,e)}},()=>g)},resolveServerCommandArguments:function(e,t={}){const r=[],n={},o=[];for(const s of e){if("local"===s.type){r.push(l(s.name,t,{forServer:!0}));continue}const e=u(t.signals,s.path);r.push(e),n[s.path]=e,o.push(s.path)}return{args:r,signalValues:n,signalPaths:o}},applyServerResult:n,unwrapServerResult:o,defaultInput:a,createServerNamespace:i,createSignalReader:function(e){return e&&"function"!=typeof e.get?{get:t=>function(e,t){return String(t).split(".").reduce((e,t)=>e?.[t],e)}(e,t),snapshot:()=>({...e})}:e},assertServerId:y}})(),u=(()=>{const{applyServerResult:e,defaultInput:n,resolveServerCommandArguments:o,unwrapServerResult:s}=c,{attachRegistryInspection:a,createRegistryStore:i}=r,{createLazyRegistry:u,isLazyDescriptor:l}=t,f=new Set(["prevent","preventDefault","stopPropagation","stopImmediatePropagation"]),p={prevent:d,preventDefault:d,stopPropagation(){this.event?.stopPropagation?.()},stopImmediatePropagation(){this.event?.stopImmediatePropagation?.()}};function d(){this.event?.preventDefault?.()}function h(e){if("string"!=typeof e||0===e.trim().length)throw new TypeError("Handler ref must be a non-empty string.");return e.split(";").map(e=>e.trim()).filter(Boolean).map(g)}function y(e){if("string"!=typeof e||0===e.length)throw new TypeError("Handler id must be a non-empty string.")}function g(e){if(e.startsWith("server."))return function(e){const t=e.indexOf("(");if(-1===t||!e.endsWith(")"))throw new Error(`Server command "${e}" must be called with parentheses.`);const r=e.slice(7,t).trim();if(!function(e){return/^[^.\s();]+(?:\.[^.\s();]+)*$/.test(e)}(r))throw new Error(`Server command "${e}" has an invalid function id.`);return{type:"server",id:r,args:w(e.slice(t+1,-1))}}(e);if(e.includes("(")||e.includes(")"))throw new Error(`Command "${e}" is not supported.`);return{type:"handler",id:e}}function w(e){return 0===e.trim().length?[]:e.split(",").map(e=>e.trim()).filter(Boolean).map(m)}function m(e){if(!/^[^\s,();]+$/.test(e))throw new Error(`Argument "${e}" is not supported.`);return e.startsWith("$")?{type:"local",name:e}:{type:"signal",path:e}}return{createHandlerRegistry:function(t={},r={}){const c=r.registry??i(),d=r.type??"handler",g=c._map(d),w=r.lazyRegistry??u(r),m=new Map,b=a({register(e,t){if(y(e),"function"!=typeof t&&!l(t))throw new TypeError(`Handler "${e}" must be a function.`);if(g.has(e))throw new Error(`Handler "${e}" is already registered.`);return g.set(e,t),e},registerMany(e){for(const[t,r]of Object.entries(e??{}))b.register(t,r);return b},unregister:e=>(y(e),m.delete(e),g.delete(e)),resolve(e){y(e);const t=g.get(e);return l(t)?(m.has(e)||m.set(e,async function(...r){const n=await w.resolve(d,e,t);if("function"!=typeof n)throw new TypeError(`Handler "${e}" did not resolve to a function.`);return n.apply(this,r)}),m.get(e)):t},async run(t,r={}){const a=h(t),i=[];let c=!1;const u={...r,handlers:b,input:r.input??n(r),stop(){c=!0}};for(const t of a){if(c)break;if("server"===t.type){if(!u.server||"function"!=typeof u.server.run)throw new Error(`Server command "${t.id}" cannot run without a server registry.`);const r=o(t.args,u),n=await u.server.run(t.id,r.args,{...u,signalPaths:r.signalPaths,signalValues:r.signalValues});await e(n,u),i.push(s(n));continue}const r=b.resolve(t.id);if(!r)throw new Error(`Handler "${t.id}" is not registered.`);const n=await r.call(u,u);f.has(t.id)&&r===p[t.id]||i.push(n)}return i},_adoptMany(e={}){for(const[t,r]of Object.entries(e??{}))g.has(t)||b.register(t,r);return b}},c,d);return function(e,t){for(const[r,n]of Object.entries(p))if(t.has(r)){if(t.get(r)!==n)throw new Error(`Handler "${r}" is already registered.`)}else e.register(r,n)}(b,g),b.registerMany(t),b},parseHandlerRef:h,isHandlerToken:function(e){return f.has(e)}}})(),l=(()=>{const e=["binding","lifecycle","effect","async","post"];function t(e){return"object"==typeof e&&null!==e||"function"==typeof e}function r(){}return{createScheduler:function(n={}){const o=[...n.phases??e],s=new Map(o.map(e=>[e,[]])),a=new Map,i=new WeakSet,c=new Set,u=new WeakMap,l="function"==typeof n.onError?n.onError:void 0,f=n.maxDepth??100,p=n.strategy??"microtask";let d=!1,h=!1,y=!1,g=0,w=0,m=0;const b={strategy:p,phases:o,batch(e){if("function"!=typeof e)throw new TypeError("scheduler.batch(fn) requires a function.");A(),g+=1;let t=!1;try{const r=e();return r&&"function"==typeof r.then?(t=!0,r.finally(()=>{g-=1,v()})):r}finally{!t&&g>0&&(g-=1,v())}},enqueue(e,t,n={}){if(A(),function(e){if(!s.has(e))throw new Error(`Unknown scheduler phase "${e}".`)}(e),"function"!=typeof t)throw new TypeError("scheduler.enqueue(phase, fn) requires a function.");const o=n.scope;if(j(o))return r;const i=void 0===n.key?void 0:`${e}:${function(e){return void 0===e?"global":"object"==typeof e&&null!==e||"function"==typeof e?(u.has(e)||u.set(e,"scope:"+ ++m),u.get(e)):String(e)}(o)}:${String(n.key)}`;if(i&&a.has(i))return a.get(i).cancel;const c={id:++w,phase:e,fn:t,scope:o,boundary:n.boundary,key:i,canceled:!1,cancel(){c.canceled=!0,c.key&&a.delete(c.key)}};return s.get(e).push(c),c.key&&a.set(c.key,c),v(),c.cancel},afterFlush:(e,t={})=>b.enqueue("post",e,t),async flush(){if(A(),h)return;y=!1,h=!0;let e=0;try{for(;E();){if(e+=1,e>f)throw new Error(`Scheduler exceeded maxDepth ${f}.`);for(const e of o)await S(e)}}finally{h=!1,E()&&v()}},async flushScope(e){if(A(),h)return;y=!1,h=!0;let t=0;try{for(;$(e);){if(t+=1,t>f)throw new Error(`Scheduler exceeded maxDepth ${f}.`);for(const t of o)await S(t,e)}}finally{h=!1,E()&&v()}},cancelScope(e){if(void 0===e)return b;for(const t of s.values())for(const r of t)r.scope===e&&r.cancel();return b},markScopeDestroyed:e=>(void 0!==e&&(t(e)?i.add(e):c.add(e),b.cancelScope(e)),b),reviveScope:e=>(void 0!==e&&(t(e)?i.delete(e):c.delete(e)),b),isScopeDestroyed:e=>j(e),inspect(){const e={};for(const[t,r]of s)e[t]=r.filter(e=>!e.canceled).length;return{strategy:p,phases:[...o],pending:e,scopesDestroyed:c.size,flushing:h,scheduled:y}},destroy(){d=!0;for(const e of s.values()){for(const t of e)t.cancel();e.length=0}a.clear(),c.clear()}};return b;function v(){var e;"manual"===p||d||h||g>0||y||(y=!0,e=()=>{d||b.flush()},"function"!=typeof queueMicrotask?Promise.resolve().then(e):queueMicrotask(e))}async function S(e,t){const r=s.get(e),n=[],o=[];for(const e of r.splice(0))e.canceled||(void 0===t||e.scope===t?o.push(e):n.push(e));r.push(...n);for(const e of o)if(e.key&&a.delete(e.key),!e.canceled&&!j(e.scope))try{await e.fn()}catch(t){if(!l)throw t;l(t,e)}}function E(){for(const e of s.values())if(e.some(e=>!e.canceled))return!0;return!1}function $(e){for(const t of s.values())if(t.some(t=>!t.canceled&&t.scope===e))return!0;return!1}function A(){if(d)throw new Error("Scheduler has been destroyed.")}function j(e){return void 0!==e&&(t(e)?i.has(e):c.has(e))}}}})(),f=(()=>{const{renderComponent:e}=i,{createHandlerRegistry:t}=u,{createScheduler:r}=l,{createSignalRegistry:n,isSignalRef:a}=s,{matchAttribute:c,normalizeAttributeConfig:f,readAttribute:p}=o,d="__async:inline:";function h({root:o,signals:s,handlers:i,server:u,router:l,cache:h,attributes:E,scheduler:O}={}){const T=o?.ownerDocument??o??globalThis.document,q=o??T,C=s??n(),M=i??t(),x=O??r(),L=!O,D=f(E),P=new Set,B=new WeakMap,N=new WeakMap,z=new WeakSet,H=new WeakSet,U=new WeakMap,W=new WeakSet,V=new Map,I=new WeakMap;let F=0,J=!1;const K={root:q,signals:C,handlers:M,server:u,router:l,cache:h,scheduler:x,attributes:D,start:()=>(ne(),K.scan(q),K),scan:(e=q)=>(ne(),function(e){for(const t of j(e))x.reviveScope?.(t)}(e),function(e){for(const t of j(e))for(const e of t.getAttributeNames?.()??[]){const r=c(e,D,"signal");if(r){if("text"===r){const r=t.getAttribute(e);G(t,`text:${r}`,r,e=>{t.textContent=e??""});continue}if("value"===r){const r=t.getAttribute(e);G(t,`value:${r}`,r,e=>{"value"in t&&t.value!==String(e??"")?t.value=e??"":"value"in t||t.setAttribute("value",e??"")}),Q(t,r);continue}if(r.startsWith("attr:")){const n=r.slice(5),o=t.getAttribute(e);G(t,`attr:${n}:${o}`,o,e=>$(t,n,e));continue}if(r.startsWith("prop:")){const n=r.slice(5),o=t.getAttribute(e);G(t,`prop:${n}:${o}`,o,e=>A(t,n,e));continue}if(r.startsWith("class:")){const n=r.slice(6),o=t.getAttribute(e);""===n||"{}"===n?Y(t,n,o):G(t,`class:${n}:${o}`,o,e=>{t.classList.toggle(n,Boolean(e))});continue}if("class"===r){const r=t.getAttribute(e);Y(t,"{}",r)}}}}(e),function(e){for(const t of j(e))for(const e of t.getAttributeNames?.()??[]){const r=c(e,D,"class");null!=r&&Y(t,r,t.getAttribute(e))}}(e),function(e){for(const t of j(e))if("function"==typeof t.getAttributeNames)for(const e of t.getAttributeNames()){const r=c(e,D,"on");r&&"attach"!==r&&"mount"!==r&&"visible"!==r&&Z(t,r,t.getAttribute(e))}}(e),function(e){for(const t of j(e)){if(W.has(t))continue;const e=R(t,D);if(null!=e){if(!U.has(t)){const r=S(t,e,D);if(0===Object.keys(r).length||!C.has(e))continue;const n={id:e,templates:r,cleanup:C.subscribe(`${e}.$status`,()=>{x.enqueue("binding",()=>X(t),{scope:t,key:`boundary:${e}`})})};U.set(t,n),oe(n.cleanup,t)}X(t)}}}(e),function(e){for(const t of j(e)){const e=ee(t,["attach","mount"]);if(0!==e.length&&!z.has(t)){z.add(t);for(const r of e)ue(t,()=>te(t,r),`attach:${r}`)}}for(const t of j(e)){const e=p(t,D,"on","visible");null!=e&&(H.has(t)||(H.add(t),oe(re(t,()=>ue(t,()=>te(t,e),`visible:${e}`)),t)))}}(e),K),swap(e,t){ne();const r=function(e,t,r){for(const n of j(e))if(R(n,r)===String(t))return n;return null}(q,e,D);if(!r)throw new Error(`Boundary "${e}" was not found.`);return ae(r),r.replaceChildren(_(t,T)),K.scan(r),r},mount(t,r,n={}){ne();const o=e(r,n,{signals:C,handlers:M,loader:K,server:K.server,router:K.router,cache:K.cache,scheduler:x,attributes:D});return ae(t),t.replaceChildren(_(o.html,t.ownerDocument)),K.scan(t),o.mount(t),o.visible(t,K._observeVisible),oe(o.cleanup,t,"children"),o},destroy(){if(!J){J=!0,function(e){for(const t of j(e))x.markScopeDestroyed(t)}(q);for(const e of[...P])se(e);P.clear(),L&&x.destroy()}},_observeVisible:(e,t)=>re(e,t),_registerBinding(e){const t=`${d}${++F}`;return V.set(t,e),t},_releaseBinding(e){V.delete(e)}};function Z(e,t,r){const n=`${t}:${r}`,o=B.get(e)??new Set;if(o.has(n))return;o.add(n),B.set(e,o);const s=async t=>{try{await x.batch(()=>M.run(r,{signals:C,handlers:M,loader:K,server:K.server,router:K.router,cache:K.cache,scheduler:x,event:t,element:e,el:e,root:q}))}catch(t){k(e,t)}};e.addEventListener(t,s),oe(()=>e.removeEventListener(t,s),e)}function Y(e,t,r){if(""===t||"{}"===t){const t=b(e);let n=new Set;return void G(e,`class:{}:${r}`,r,r=>{const o=y(r),s=b(e);for(const e of n)o.has(e)||t.has(e)||s.delete(e);for(const e of o)s.add(e);v(e,s),n=o},{rawInline:!0})}G(e,`class:${t}:${r}`,r,r=>{!function(e,t,r){const n=b(e);for(const e of y(t))r?n.add(e):n.delete(e);v(e,n)}(e,t,Boolean(r))})}function G(e,t,r,n,o={}){const s=N.get(e)??new Set;if(s.has(t))return;s.add(t),N.set(e,s);const a=()=>function(e,t={}){if(m(e)){const r=V.get(e);return t.rawInline?r:g(r)}return C.get(e)}(r,o);n(a()),oe(function(e,t){if(!m(e))return C.subscribe(e,t);const r=w(V.get(e)).map(e=>e.subscribe(t));return()=>{for(const e of r)e()}}(r,()=>{x.enqueue("binding",()=>n(a()),{scope:e,key:t})}),e)}function Q(e,t){Z(e,"input",`__async:set:${t}`),Z(e,"change",`__async:set:${t}`),M.resolve(`__async:set:${t}`)||M.register(`__async:set:${t}`,({element:e})=>{!function(e,t){if(!m(e))return C.set(e,t);const r=V.get(e);if(a(r))return r.set(t);throw new Error(`Inline binding "${e}" is not writable.`)}(t,e.value)})}function X(e){const t=U.get(e);if(!t)return;const r=C.get(`${t.id}.$status`),n=function(e,t){return"ready"===t?e.ready??e.loading??e.error:"error"===t?e.error??e.ready??e.loading:e.loading??e.ready??e.error}(t.templates,r);if(n){ae(e),e.replaceChildren(n.content.cloneNode(!0)),W.add(e);try{K.scan(e)}finally{W.delete(e)}}}function ee(e,t){const r=[];for(const n of t){const t=p(e,D,"on",n);null!=t&&r.push(t)}return r}async function te(e,t){try{const r=await M.run(t,{signals:C,handlers:M,loader:K,server:K.server,router:K.router,cache:K.cache,scheduler:x,element:e,el:e,root:q});for(const t of r)"function"==typeof t&&oe(t,e)}catch(t){k(e,t)}}function re(e,t){const r=(e.ownerDocument?.defaultView??globalThis).IntersectionObserver??globalThis.IntersectionObserver;if(!r)return x.enqueue("lifecycle",()=>{J||t(e)},{scope:e,key:"visible:fallback"}),()=>{};const n=new r(r=>{r.some(e=>e.isIntersecting)&&(n.disconnect(),t(e))});return n.observe(e),()=>n.disconnect()}function ne(){if(J)throw new Error("Loader has been destroyed.")}function oe(e,t,r="self"){if("function"!=typeof e)return e;if(P.add(e),t){const n=I.get(t)??[];n.push({cleanup:e,mode:r}),I.set(t,n)}return e}function se(e){"function"==typeof e&&P.has(e)&&(P.delete(e),e())}function ae(e){ce(e,"children");for(const t of[...e.childNodes??[]])ie(t)}function ie(e){if(1===e.nodeType)for(const t of j(e))ce(t),x.markScopeDestroyed(t)}function ce(e,t){const r=I.get(e);if(!r)return;const n=[];for(const e of r)t&&e.mode!==t?n.push(e):se(e.cleanup);n.length>0?I.set(e,n):I.delete(e)}function ue(e,t,r){x.enqueue("lifecycle",t,{scope:e,key:r})}return C._setContext?.({server:K.server,router:K.router,loader:K,cache:K.cache,scheduler:x}),K.server?._setContext?.({signals:C,handlers:M,loader:K,router:K.router,cache:K.cache,scheduler:x}),K}function y(e,t=new Set){if(null==e||!1===e)return t;if(a(e)){const r=e.value;return!0===r?(t.add(e.id.split(".").at(-1)),t):y(r,t)}if("string"==typeof e){for(const r of e.split(/\s+/).filter(Boolean))t.add(r);return t}if(Array.isArray(e)){for(const r of e)y(r,t);return t}if("object"==typeof e){for(const[r,n]of Object.entries(e))(a(n)?n.value:n)&&y(r,t);return t}return!0!==e&&t.add(String(e)),t}function g(e){return a(e)?e.value:Array.isArray(e)?e.map(g):e&&"object"==typeof e?Object.fromEntries(Object.entries(e).map(([e,t])=>[e,g(t)])):e}function w(e,t=new Map){if(a(e))return t.set(e.id,e),[...t.values()];if(Array.isArray(e)){for(const r of e)w(r,t);return[...t.values()]}if(e&&"object"==typeof e)for(const r of Object.values(e))w(r,t);return[...t.values()]}function m(e){return"string"==typeof e&&e.startsWith(d)}function b(e){return y(e.getAttribute("class")??"")}function v(e,t){const r=[...t].join(" ");0!==r.length?e.setAttribute("class",r):e.removeAttribute("class")}function S(e,t,r){const n={};for(const o of[...e.children].filter(e=>"TEMPLATE"===e.tagName))E(o,"loading",t,e,r)&&(n.loading=o),E(o,"ready",t,e,r)&&(n.ready=o),E(o,"error",t,e,r)&&(n.error=o);return n}function E(e,t,r,n,o){return p(e,o,"async",t)===r||O(n)&&e.hasAttribute?.(t)}function $(e,t,r){if(!1===r||null==r)return e.removeAttribute(t),void(t in e&&(e[t]=!1));e.setAttribute(t,!0===r?"":String(r)),t in e&&(e[t]=r)}function A(e,t,r){e[t]=null!=r?r:""}function j(e){return function(e,t){const r=[];return 1===e?.nodeType&&e.matches?.(t)&&r.push(e),r.push(...e?.querySelectorAll?.(t)??[]),r}(e,"*")}function R(e,t){return O(e)&&e.hasAttribute?.("for")?e.getAttribute("for"):p(e,t,"async","boundary")}function O(e){return"ASYNC-SUSPENSE"===e?.tagName}function _(e,t){if(11===e?.nodeType)return e;if("TEMPLATE"===e?.tagName)return e.content.cloneNode(!0);if(e?.nodeType){const r=t.createDocumentFragment();return r.append(e),r}const r=t.createElement("template");return r.innerHTML=String(e??""),r.content.cloneNode(!0)}function k(e,t){const r=e.ownerDocument?.defaultView?.CustomEvent??globalThis.CustomEvent;e.dispatchEvent(new r("async:error",{bubbles:!0,detail:{error:t}}))}return{Loader:h,AsyncLoader:h}})(),p=(()=>{const{isTemplateResult:e,renderTemplate:n}=a,{attachRegistryInspection:o,createRegistryStore:s}=r,{createLazyRegistry:i,isLazyDescriptor:c}=t;function u(e,t={}){return r=e,Boolean(r&&"object"==typeof r&&!Array.isArray(r)&&(Object.hasOwn(r,"html")||Object.hasOwn(r,"signals")||Object.hasOwn(r,"boundary")||Object.hasOwn(r,"redirect")||Object.hasOwn(r,"status")||Object.hasOwn(r,"cache")))?{...e,html:Object.hasOwn(e,"html")?l(e.html,t):e.html}:{html:l(e,t)};var r}function l(t,r){return t?.nodeType||"string"==typeof t?t:(e(t),n(t,function(e){return{attributes:e.loader?.attributes,signals:e.signals,bind:e.loader?._registerBinding?.bind(e.loader)}}(r)))}function f(e){if("string"!=typeof e||0===e.length)throw new TypeError("Partial id must be a non-empty string.")}return{createPartialRegistry:function(e={},t={}){const r=t.registry??s(),n=t.type??"partial",a=r._map(n),l=t.lazyRegistry??i(t),p=new Map,d=o({register(e,t){if(f(e),"function"!=typeof t&&!c(t))throw new TypeError(`Partial "${e}" must be a function.`);if(a.has(e))throw new Error(`Partial "${e}" is already registered.`);return a.set(e,t),e},registerMany(e){for(const[t,r]of Object.entries(e??{}))d.register(t,r);return d},unregister:e=>(f(e),p.delete(e),a.delete(e)),resolve(e){f(e);const t=a.get(e);return c(t)?(p.has(e)||p.set(e,async function(...r){const o=await l.resolve(n,e,t);if("function"!=typeof o)throw new TypeError(`Partial "${e}" did not resolve to a function.`);return o.apply(this,r)}),p.get(e)):t},async render(e,t={},r={}){f(e);const n=d.resolve(e);if(!n)throw new Error(`Partial "${e}" is not registered.`);const o={...r,id:e,props:t,cache:r.cache,partials:d};return u(await n.call(o,t),o)},_adoptMany(e={}){for(const[t,r]of Object.entries(e??{}))a.has(t)||d.register(t,r);return d}},r,n);return d.registerMany(e),d},normalizePartialResult:u}})(),d=(()=>{const{Loader:e}=f,{createHandlerRegistry:t}=u,{createScheduler:n}=l,{createSignalRegistry:a}=s,{applyServerResult:i}=c,{createRegistryStore:p}=r,{normalizeAttributeConfig:d}=o;function h(e,t={}){return{...t,partial:e}}const y=h,g=new Set(["csr","spa","ssr","mpa"]);function w(e={},t={}){const r=t.registry??p(),n=t.type??"route",o=r._map(n),s=[],a={registry:r,register(e,t){if(A(e),s.some(t=>t.pattern===e))throw new Error(`Route "${e}" is already registered.`);const r=m(e,t);return o.set(e,r.definition),s.push(r),E(s),r},registerMany(e){for(const[t,r]of Object.entries(e??{}))a.register(t,r);return a},unregister(e){A(e);const t=s.findIndex(t=>t.pattern===e);return-1!==t&&s.splice(t,1),o.delete(e)},match(e){const t=function(e){return e instanceof URL?e:new URL(String(e),globalThis.location?.href??"http://localhost/")}(e).pathname;for(const e of s){const r=e.regex.exec(t);if(!r)continue;const n={};return e.keys.forEach((e,t)=>{n[e]=S(r[t+1]??"")}),{pattern:e.pattern,params:n,route:e.definition}}return null},entries:()=>s.map(({pattern:e,definition:t})=>({pattern:e,route:t})),keys:()=>[...o.keys()],inspect:()=>r.entries(n),_adoptMany(e={}){for(const[t,r]of Object.entries(e??{}))o.has(t)?i(t,o.get(t)):a.register(t,r);return a}};for(const[e,t]of o)i(e,t);return a.registerMany(e),a;function i(e,t){if(s.some(t=>t.pattern===e))return;const r=m(e,t);o.set(e,r.definition),s.push(r),E(s)}}function m(e,t){const r="string"==typeof t?h(t):t,{regex:n,keys:o}=function(e){const t=[];if("*"===e)return{regex:/^.*$/,keys:t};if("/"===e)return{regex:/^\/$/,keys:t};const r=e.split("/").map(e=>e.startsWith(":")?(t.push(e.slice(1)),"([^/]+)"):String(e).replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join("/");return{regex:new RegExp(`^${r}$`),keys:t}}(e);return{pattern:e,regex:n,keys:o,score:$(e),definition:r}}function b(e,t){return e?.closest?.(t)}function v(e){return Object.fromEntries(e.searchParams.entries())}function S(e){try{return decodeURIComponent(e)}catch{return e}}function E(e){e.sort((e,t)=>t.score-e.score||t.pattern.length-e.pattern.length)}function $(e){return"*"===e?-1:e.split("/").filter(Boolean).reduce((e,t)=>"*"===t?e:t.startsWith(":")?e+2:e+4,"/"===e?3:0)}function A(e){if("string"!=typeof e||"*"!==e&&!e.startsWith("/"))throw new TypeError('Route pattern must be a path string or "*".')}return{defineRoute:h,createRouteRegistry:w,createRouter:function({mode:r="ssr",root:o,boundary:s="route",routes:c=w(),loader:u,signals:l,handlers:f,server:p,cache:h,partials:y,attributes:m,scheduler:S}={}){!function(e){if(!g.has(e))throw new TypeError(`Unknown router mode "${e}".`)}(r);const E=o?.ownerDocument??o??globalThis.document,$=o??E,A=l??u?.signals??a(),j=f??u?.handlers??t(),R=S??u?.scheduler??n(),O=!S&&!u?.scheduler,_=d(m??u?.attributes),k=u??e({root:$,signals:A,handlers:j,server:p,cache:h,scheduler:R,attributes:_}),T=!u,q=new Set;let C,M=!1,x=0;const L={mode:r,root:$,boundary:s,routes:c,loader:k,signals:A,handlers:j,server:p,cache:h,partials:y,scheduler:R,attributes:_,start:()=>(I(),k.router=L,A._setContext?.({router:L,loader:k,server:p,cache:h,scheduler:R}),T&&k.start(),"mpa"===r||"ssr"===r?(N(),L):(function(){const e=e=>{const t=b(e.target,"a[href]");t&&!function(e,t){if(e.defaultPrevented||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey)return!0;if(t.target||t.hasAttribute("download"))return!0;const r=V(t.href),n=W();return r.origin!==n.origin||function(e,t,r){return e.origin===t.origin&&e.pathname===t.pathname&&e.search===t.search&&(e.hash!==t.hash||!0===r.getAttribute?.("href")?.startsWith("#"))}(r,n,t)}(e,t)&&(e.preventDefault(),U(L.navigate(t.href)))},t=e=>{const t=b(e.target,"form");t&&!function(e){return"get"!==String(e.method||"get").toLowerCase()||V(e.action).origin!==W().origin}(t)&&(e.preventDefault(),U(L.navigate(function(e){const t=V(e.action||e.ownerDocument.defaultView.location.href),r=new e.ownerDocument.defaultView.FormData(e);return t.search=new URLSearchParams(r).toString(),t.href}(t))))},r=()=>U(L.navigate(W(),{history:!1}));$.addEventListener?.("click",e),$.addEventListener?.("submit",t),E.defaultView?.addEventListener?.("popstate",r),q.add(()=>$.removeEventListener?.("click",e)),q.add(()=>$.removeEventListener?.("submit",t)),q.add(()=>E.defaultView?.removeEventListener?.("popstate",r))}(),"csr"===r?(U(L.navigate(W(),{replace:!0,initial:!0,source:"client"})),L):(N(),L))),match:e=>c.match(V(e)),prefetch(e){if(I(),"mpa"===r||"ssr"===r)return Promise.resolve(null);const t=L.match(e);return t?.route?.partial&&y?.resolve?.(t.route.partial)?y.render(t.route.partial,t.params,{...D(t),prefetch:!0}):Promise.resolve(null)},navigate:async(e,t={})=>(I(),"mpa"===r||"ssr"===r?(E.defaultView?.location?.assign?.(e),null):async function(e,t={}){const r=L.match(e);if(!r)return P(e,null),function(e){z(e,null,{pending:!1,error:new Error(`No route matched ${e.pathname}${e.search}`)})}(e),null;const n=P(e,r);z(e,r,{pending:!0,error:null});try{if(!r.route?.partial||!y?.resolve?.(r.route.partial)){const t=new Error(`Route "${e.pathname}" does not have a registered partial.`);return B(n)&&H({pending:!1,error:t}),null}const o=await y.render(r.route.partial,r.params,D(r,n));return B(n)?(await async function(e,t,r,n){B(n)&&(await i(e,{signals:A,loader:k,router:L,cache:h,scheduler:R,abort:n?.abort}),await R.flush(),B(n)&&(null==e?.html||e.boundary||e.redirect||(k.swap(s,e.html),await R.flush()),e?.redirect||!1===r.history||(r.replace?E.defaultView?.history?.replaceState?.({},"",t.href):E.defaultView?.history?.pushState?.({},"",t.href))))}(o,e,t,n),B(n)?(H({pending:!1,error:null}),o):null):null}catch(e){if(!B(n))return null;throw H({pending:!1,error:e}),e}}(V(e),t)),destroy(){if(!M){M=!0,C?.controller.abort(new Error("Router has been destroyed."));for(const e of q)e();q.clear(),O&&R.destroy()}}};return L;function D(e,t){return{params:e.params,route:e.route,router:L,signals:A,handlers:j,loader:k,server:p,cache:h,scheduler:R,abort:t?.abort}}function P(e,t){C?.controller.abort(new Error(`Router navigation superseded by ${e.pathname}${e.search}.`));const r=new AbortController,n={id:++x,controller:r,abort:r.signal,target:e,matched:t};return C=n,n}function B(e){return!M&&e&&C?.id===e.id&&!e.abort.aborted}function N(){const e=W();z(e,L.match(e),{pending:!1,error:null})}function z(e,t,r={}){A.ensure("router",{}),H({url:e.href,path:e.pathname,query:v(e),params:t?.params??{},route:t?.route??null,...r})}function H(e){A.ensure("router",{});for(const[t,r]of Object.entries(e))A.set(`router.${t}`,r)}function U(e){e.catch(e=>{M||(H({pending:!1,error:e}),function(e,t){const r=e.ownerDocument?.defaultView?.CustomEvent??globalThis.CustomEvent;"function"==typeof r&&e.dispatchEvent?.(new r("async:error",{bubbles:!0,detail:{error:t}}))}($,e))})}function W(){return V(E.defaultView?.location?.href??"http://localhost/")}function V(e){return e instanceof URL?e:new URL(String(e),E.defaultView?.location?.href??"http://localhost/")}function I(){if(M)throw new Error("Router has been destroyed.")}},route:y}})(),h=(()=>{const{createCacheRegistry:e}=n,{createComponentRegistry:a}=i,{createHandlerRegistry:h}=u,{Loader:y}=f,{createPartialRegistry:g}=p,{createRouteRegistry:w,createRouter:m}=d,{createScheduler:b}=l,{createServerNamespace:v}=c,{cloneSignalDeclaration:S,createSignal:E,createSignalRegistry:$}=s,{createRegistryStore:A}=r,{attributeName:j,normalizeAttributeConfig:R}=o,{createLazyRegistry:O,defineRegistrySnapshot:_,sameRegistryValue:k}=t,T=new Set(["signal","handler","server","partial","route","component","asyncSignal"]);function q(e,t={}){const r=A(void 0,{target:"browser"}),n=new Set,o=t.createRuntime??C,s={registry:r,use(e,t){const o=function(e,t){const r={signal:{},handler:{},server:{},partial:{},route:{},component:{},asyncSignal:{},cache:{browser:{},server:{}}};if("string"==typeof e){if(!T.has(e))throw new Error(`Unknown Async registry type "${e}".`);return r[e]=F(e,t),r}if(!e||"object"!=typeof e)throw new TypeError("Async.use(...) requires a registry type or module object.");for(const[t,n]of Object.entries(e))if("cache"!==t){if(!T.has(t))throw new Error(`Unknown Async registry type "${t}".`);r[t]=F(t,n)}else r.cache.browser={...n?.browser??{}},r.cache.server={...n?.server??{}};return r}(e,t);!function(e,t){for(const r of T)P(e,r,t[r]);P(e,"cache.browser",t.cache.browser),P(e,"cache.server",t.cache.server)}(r,o);for(const e of n)e._applyUse(o);return s},snapshot:()=>r.rawSnapshot(),start(e={}){const t=o(s,e).start();return s.runtime=t,t},attachRoot:e=>function(e){return e.runtime||e.start(),e.runtime}(s).attachRoot(e),detachRoot:e=>s.runtime?.detachRoot(e)??s,applySnapshot:(e,t={})=>s.runtime?(s.runtime.applySnapshot(e,t),s):(function(e,t={},r={}){const n=z(t);for(const[t,o]of Object.entries(n.signal))N(e,"signal",t,E(o),r);for(const t of["handler","server","partial","route","component","asyncSignal"])for(const[o,s]of Object.entries(n[t]))N(e,t,o,s,r)}(r,e,t),s),inspectRoots:()=>s.runtime?.inspectRoots()??{count:0,roots:[]},_attach:e=>(n.add(e),()=>s._detach(e)),_detach(e){n.delete(e)}};return e&&s.use(e),s}function C(t=M,r={}){const n=(C=t,Boolean(C&&"function"==typeof C.use&&"function"==typeof C.snapshot&&C.registry)?t:q(t??{})),o=r.target??"browser",s=r.scheduler??r.loader?.scheduler??b({strategy:"server"===o?"manual":"microtask"}),i=!r.scheduler&&!r.loader?.scheduler,c=R(r.attributes),u=r.lazyRegistry??O({registryAssets:r.registryAssets,importModule:r.importModule}),l=r.registry??function(e,{target:t}={}){const r=e.rawSnapshot();return A({...r,signal:D(r.signal)},{target:t})}(n.registry,{target:o}),f=r.signals??$(void 0,{registry:l,type:"signal",lazyRegistry:u}),p=r.handlers??h(void 0,{registry:l,type:"handler",lazyRegistry:u}),d=e(void 0,{registry:l,type:"cache.server"}),v=e(void 0,{registry:l,type:"cache.browser"}),S=r.serverFactory??I,E=r.server??S(void 0,{registry:l,type:"server"}),j=r.partials??g(void 0,{registry:l,type:"partial",lazyRegistry:u}),_=r.routes??w(void 0,{registry:l,type:"route"}),k=r.components??a(void 0,{registry:l,type:"component",lazyRegistry:u}),T=r.loader||Object.hasOwn(r,"root")?r.root:null;var C;let P=r.loader,N=r.router,H=!1,U=()=>{},F=!1,J=!1;const Z=new Map,Y=T??globalThis.document,G=r.snapshot??("browser"===o?x(Y,{attributes:c}):void 0);!function(e,t){try{e.cache=t}catch{}}(E,d);const Q={app:n,registry:l,target:o,signals:f,handlers:p,server:E,partials:j,routes:_,components:k,browser:{cache:v},loader:P,router:N,scheduler:s,attributes:c,start:()=>(ne(),F||(F=!0,"server"!==o?(te({cache:v}),f._setContext?.({server:E,loader:P,cache:v,scheduler:s}),P?(X(P.root,P),P.start(),ee(P.root)):null!=T&&Q.attachRoot(T)):(te({cache:d}),f._setContext?.({server:E,cache:d,scheduler:s}))),Q),use:(e,t)=>(n.use(e,t),Q),attachRoot(e){if(ne(),"server"===o)throw new Error("Server runtimes cannot attach DOM roots.");if(!e)throw new TypeError("runtime.attachRoot(root) requires a root.");if(Z.has(e))return Q;const t=0===Z.size&&P?P:y({root:e,signals:f,handlers:p,server:E,cache:v,scheduler:s,attributes:c});return X(e,t),t.start(),te({cache:v}),f._setContext?.({server:E,loader:Q.loader,cache:v,scheduler:s}),ee(e),Q},detachRoot(e){if(ne(),"server"===o)return Q;if(null==e){for(const e of new Set(Z.values()))e.destroy?.();return Z.clear(),N?.destroy?.(),N=void 0,H=!1,P=void 0,Q.loader=void 0,Q.router=void 0,Q}const t=Z.get(e);if(!t)return Q;if(t.destroy?.(),Z.delete(e),P===t){N?.destroy?.(),N=void 0,H=!1;const e=Z.values().next().value;P=e,Q.loader=e,Q.router=void 0,e&&ee(e.root)}return Q},inspectRoots:()=>({count:Z.size,roots:[...Z].map(([e,t])=>({root:e,loader:t,primary:t===P}))}),applySnapshot:(e,t={})=>(function(e,t={},r={}){const n=z(t);B(e,"asyncSignal",n.asyncSignal,null,r);for(const[t,r]of Object.entries(n.signal))W(e.signals,t,r);e.browser.cache.restore(n.cache.browser),B(e,"handler",n.handler,e.handlers,r),B(e,"server",n.server,e.server,r),B(e,"partial",n.partial,e.partials,r),B(e,"route",n.route,e.routes,r),B(e,"component",n.component,e.components,r)}(Q,e,t),Q),async render(e){ne(),te({cache:d}),f._setContext?.({server:E,cache:d,scheduler:s});const t=_.match(e);if(!t)return await s.flush(),{html:K("",{status:404,signals:f,browserCache:v,boundary:r.boundary??"route",attributes:c}),status:404,signals:f.snapshot(),cache:{browser:v.snapshot()}};const n=t.route.partial,o=n&&j.resolve(n)?await j.render(n,t.params,{params:t.params,route:t.route,signals:f,handlers:p,server:E,cache:d,browserCache:v,partials:j,scheduler:s,...re()}):{html:""};if(o.signals)for(const[e,t]of Object.entries(o.signals))V(f,e,t);o.cache?.browser&&v.restore(o.cache.browser),await s.flush();const a=o.status??200;return{html:K(o.html,{status:a,signals:f,browserCache:v,boundary:o.boundary??r.boundary??"route",attributes:c}),status:a,signals:f.snapshot(),cache:{browser:v.snapshot()}}},destroy(){if(J)return;J=!0,U(),N?.destroy?.();const e=new Set(Z.values());for(const t of e)t.destroy?.();Z.clear(),P&&!e.has(P)&&P?.destroy?.(),f.destroy?.(),i&&s.destroy()},_applyUse(e){!function(e,t){L(e.signals,e.registry,t.signal),L(e.handlers,e.registry,t.handler),L(e.server,e.registry,t.server),L(e.partials,e.registry,t.partial),L(e.routes,e.registry,t.route),L(e.components,e.registry,t.component),function(e,t,r){if(r&&0!==Object.keys(r).length)for(const[n,o]of Object.entries(r))e.has(t,n)||e.register(t,n,o)}(e.registry,"asyncSignal",t.asyncSignal),L(e.browser.cache,e.registry,t.cache.browser),L(e.server.cache,e.registry,t.cache.server)}(Q,e)}};return E.cache=d,Q.server.cache=d,Q.applySnapshot(G,{strict:r.strictSnapshots??!0}),U=n._attach(Q),Q;function X(e,t){Z.set(e,t),P||(P=t,Q.loader=t),t.server=E,t.cache=v,t.scheduler=s}function ee(e){!1!==N&&!H&&(N||function(e,t){return Boolean(t.routerOptions||t.mode||e.entries().length>0)}(_,r))&&Q.loader&&(N=N??m({mode:r.mode??"ssr",root:e,boundary:r.boundary??"route",routes:_,loader:Q.loader,signals:f,handlers:p,server:E,cache:v,partials:j,scheduler:s,attributes:c}),Q.router=N,Q.loader.router=N,te({cache:v,router:N}),N.start(),H=!0)}function te(e={}){const t=function(e){return"function"==typeof e?.registerMany}(E)?d:e.cache;E._setContext?.({signals:f,loader:P,router:N,cache:t,scheduler:s,requestContext:r.requestContext,...re()})}function re(){const e=(t=r.requestContext)?"function"==typeof t.get?t.get()??{}:"function"==typeof t.getStore?t.getStore()??{}:{}:{};var t;return{requestContext:e,request:e.request??r.request,headers:e.headers??r.headers,cookies:e.cookies??r.cookies,locals:e.locals??r.locals}}function ne(){if(J)throw new Error("Async app runtime has been destroyed.")}}const M=q();function x(e=globalThis.document,{attributes:t}={}){const r=R(t),n=j(r,"async","snapshot"),o=e?.ownerDocument??e??globalThis.document,s=e??o;if(!s?.querySelectorAll&&!o?.querySelectorAll)return{};const a={};for(const e of new Set([s,o]))if(e?.querySelectorAll)for(const t of e.querySelectorAll("script[type='application/json'], script")){if(!t.hasAttribute?.(n))continue;const e=t.textContent?.trim()??"";if(!e)continue;let r;try{r=JSON.parse(e)}catch(e){throw new Error(`Could not parse Async snapshot: ${e instanceof Error?e.message:String(e)}`)}H(a,r,{strict:!0})}return a}function L(e,t,r){r&&0!==Object.keys(r).length&&(e?.registry!==t?e?.registerMany?.(r):e._adoptMany?.(r))}function D(e={}){const t={};for(const[r,n]of Object.entries(e??{}))t[r]=S(n);return t}function P(e,t,r){for(const[n,o]of Object.entries(r??{}))e.register(t,n,o)}function B(e,t,r,n,o={}){if(r&&0!==Object.keys(r).length){for(const[n,s]of Object.entries(r))N(e.registry,t,n,s,o);n?._adoptMany?.(r)}}function N(e,t,r,n,o={}){const s=o.strict??!0,a=e._map(t);if(a.has(r)){if(k(a.get(r),n)||U(a.get(r),n))return;if(s)throw new Error(`${t} "${r}" is already registered with a different value.`)}else e.set(t,r,n)}function z(e={}){return{signal:{...e.signals??{},...e.signal??{}},handler:{...e.handler??{}},server:{...e.server??{}},partial:{...e.partial??{}},route:{...e.route??{}},component:{...e.component??{}},asyncSignal:{...e.asyncSignal??{}},cache:{browser:{...e.entries?.browser??{},...e.cache?.browser??{}}}}}function H(e,t,r={}){const n=z(_(t));e.signal={...e.signal??e.signals??{},...n.signal},e.signals=e.signal,e.cache={...e.cache??{},browser:{...e.cache?.browser??{},...n.cache.browser}};for(const t of["handler","server","partial","route","component","asyncSignal"]){e[t]=e[t]??{};for(const[o,s]of Object.entries(n[t]))if(Object.hasOwn(e[t],o)){if(k(e[t][o],s)||U(e[t][o],s))continue;if(r.strict??1)throw new Error(`${t} "${o}" is already declared with a different value.`)}else e[t][o]=s}return e}function U(e,t){if(e===t)return!0;try{return JSON.stringify(e)===JSON.stringify(t)}catch{return!1}}function W(e,t,r){if(e.has?.(t)){const n=e._entry?.(t);return"function"==typeof n?._restore&&function(e){return!(!e||"object"!=typeof e||Array.isArray(e))&&Object.hasOwn(e,"value")&&(Object.hasOwn(e,"loading")||Object.hasOwn(e,"error")||Object.hasOwn(e,"status")||Object.hasOwn(e,"version"))}(r)?void n._restore(r):void e.set(t,r)}e.register(t,E(r))}function V(e,t,r){if("function"==typeof e._setPath)return void e._setPath(t,r);const n=String(t).split(".")[0];e.has?.(n)?e.set(t,r):(e.register(n,E(t===n?r:{})),t!==n&&e.set(t,r))}function I(e={},t={}){const r=t.registry??A(),n=t.type??"server",o={},s={registry:r,register:(e,t)=>(r.register(n,e,t),e),registerMany(e){for(const[t,r]of Object.entries(e??{}))s.register(t,r);return s},unregister:e=>r.unregister(n,e),resolve(){},async run(e){throw new Error(`Server command "${e}" cannot run without a server proxy or server registry.`)},keys:()=>r.keys(n),entries:()=>r.entries(n),inspect:()=>r.entries(n),_setContext:(e={})=>(Object.assign(o,e),s),_adoptMany:()=>s};return s.registerMany(e),v((e,t,r)=>s.run(e,t,r),s,()=>o)}function F(e,t={}){if("signal"!==e)return{...t??{}};const r={};for(const[e,n]of Object.entries(t??{}))r[e]=J(n);return r}function J(e){return e&&"object"==typeof e&&"function"==typeof e.subscribe?e:E(e)}function K(e,{signals:t,browserCache:r,boundary:n,attributes:o}){const s={signals:t.snapshot(),cache:{browser:r.snapshot()}},a=j(o,"async","boundary"),i=j(o,"async","snapshot");return`<section ${a}="${c=n,String(c).replaceAll("&","&amp;").replaceAll('"',"&quot;").replaceAll("<","&lt;")}">${e??""}</section><script type="application/json" ${i}>${function(e){return JSON.stringify(e).replaceAll("<","\\u003c")}(s)}<\/script>`;var c}return{defineApp:q,createApp:C,readSnapshot:x,Async:M}})(),y=(()=>{function e(e){if("string"!=typeof e||0===e.length)throw new TypeError("Boundary patch boundary must be a non-empty string.")}function t(e){return Boolean(e&&"object"==typeof e&&!Array.isArray(e))}return{createBoundaryReceiver:function(r={}){const n=r.loader,o=r.signals??n?.signals,s=r.cache??n?.cache,a=r.scheduler??n?.scheduler,i=r.router??n?.router,c=r.recentLimit??50,u=!0===r.throwOnError,l="function"==typeof r.onApply?r.onApply:void 0,f="function"==typeof r.onIgnore?r.onIgnore:void 0,p="function"==typeof r.onError?r.onError:void 0,d="function"==typeof r.isScopeDestroyed?r.isScopeDestroyed:e=>a?.isScopeDestroyed?.(e)??a?.inspectDestroyed?.(e)??!1;if(!n||"function"!=typeof n.swap)throw new TypeError("createBoundaryReceiver(...) requires a loader with swap(boundary, html).");if(!Number.isInteger(c)||c<0)throw new TypeError("createBoundaryReceiver(...) recentLimit must be a non-negative integer.");const h=new Map,y=[];let g=!1;const w={async apply(r){if(g)throw new Error("Boundary receiver has been destroyed.");const c=function(r){if(!r||"object"!=typeof r||Array.isArray(r))throw new TypeError("receiver.apply(patch) requires a boundary patch object.");if(e(r.boundary),"number"!=typeof r.seq||!Number.isFinite(r.seq))throw new TypeError("Boundary patch seq must be a finite number.");if(void 0!==r.signals&&!t(r.signals))throw new TypeError("Boundary patch signals must be an object.");if(void 0!==r.cache&&!t(r.cache))throw new TypeError("Boundary patch cache must be an object.");if(void 0!==r.cache?.browser&&!t(r.cache.browser))throw new TypeError("Boundary patch cache.browser must be an object.");if(void 0!==r.redirect&&("string"!=typeof r.redirect||0===r.redirect.length))throw new TypeError("Boundary patch redirect must be a non-empty string.");if(void 0!==r.parentScope&&"string"!=typeof r.parentScope)throw new TypeError("Boundary patch parentScope must be a string.");if(void 0!==r.scope&&"string"!=typeof r.scope)throw new TypeError("Boundary patch scope must be a string.");const n=Object.hasOwn(r,"html")&&null!=r.html,o=r.signals&&Object.keys(r.signals).length>0,s=r.cache?.browser&&Object.keys(r.cache.browser).length>0,a=Boolean(r.redirect),i=Object.hasOwn(r,"error");if(!(n||o||s||a||i))throw new TypeError("Boundary patch must include html, signals, cache.browser, redirect, or error.");return r}(r),y=(w=c.boundary,h.has(w)||h.set(w,{lastSeq:-1/0,applied:0,ignored:0,errored:0,lastStatus:void 0}),h.get(w));var w,b;if(c.seq<=y.lastSeq){const e={status:"ignored-stale",boundary:c.boundary,seq:c.seq,lastSeq:y.lastSeq};return y.ignored+=1,y.lastStatus=e.status,m(e),f?.(e,r),e}if(void 0!==c.parentScope&&d(c.parentScope)){const e={status:"ignored-destroyed",boundary:c.boundary,seq:c.seq,parentScope:c.parentScope};return y.ignored+=1,y.lastStatus=e.status,m(e),f?.(e,r),e}if(y.lastSeq=c.seq,Object.hasOwn(c,"error")){const e=(b=c.error)instanceof Error?b:b&&"object"==typeof b&&"string"==typeof b.message?Object.assign(new Error(b.message),b):new Error(String(b)),t={status:"errored",boundary:c.boundary,seq:c.seq,error:e};if(y.errored+=1,y.lastStatus=t.status,m(t),p?.(e,t,r),u)throw e;return t}if(c.signals){if(!o||"function"!=typeof o.set)throw new Error("Boundary patch includes signals, but no signal registry is available.");for(const[e,t]of Object.entries(c.signals))o.set(e,t)}if(c.cache?.browser){if(!s||"function"!=typeof s.restore)throw new Error("Boundary patch includes browser cache, but no cache registry is available.");s.restore(c.cache.browser)}if(null!=c.html&&n.swap(c.boundary,c.html),await async function(e,t){e&&(void 0===t||"function"!=typeof e.flushScope?"function"==typeof e.flush&&await e.flush():await e.flushScope(t))}(a,c.scope),c.redirect){await async function(e,t,r){if(t&&"function"==typeof t.navigate)return void await t.navigate(e);const n=r?.root?.ownerDocument?.defaultView?.location??globalThis.location;n?.assign?.(e)}(c.redirect,i,n);const e={status:"redirected",boundary:c.boundary,seq:c.seq,redirect:c.redirect};return y.applied+=1,y.lastStatus=e.status,m(e),l?.(e,r),e}const v={status:"applied",boundary:c.boundary,seq:c.seq};return y.applied+=1,y.lastStatus=v.status,m(v),l?.(v,r),v},inspect(){const e={};for(const[t,r]of h)e[t]={lastSeq:r.lastSeq,applied:r.applied,ignored:r.ignored,lastStatus:r.lastStatus},r.errored>0&&(e[t].errored=r.errored);return{destroyed:g,boundaries:e,recent:y.map(e=>({...e}))}},reset(t){if(void 0===t)return h.clear(),y.length=0,w;e(t),h.delete(t);for(let e=y.length-1;e>=0;e-=1)y[e].boundary===t&&y.splice(e,1);return w},destroy(){g=!0,h.clear(),y.length=0}};return w;function m(e){if(0!==c)for(y.push(function(e){const t={boundary:e.boundary,seq:e.seq,status:e.status};return"ignored-stale"===e.status&&(t.lastSeq=e.lastSeq),"ignored-destroyed"===e.status&&void 0!==e.parentScope&&(t.parentScope=e.parentScope),"redirected"===e.status&&(t.redirect=e.redirect),t}(e));y.length>c;)y.shift()}}}})(),g=(()=>{function e(e){return e?.reason??new Error("Operation aborted")}return{delay:function(t,r){return r?.aborted?Promise.reject(e(r)):new Promise((n,o)=>{let s=setTimeout(function(){s=void 0,r?.removeEventListener?.("abort",a),n()},t);function a(){void 0!==s&&clearTimeout(s),s=void 0,r?.removeEventListener?.("abort",a),o(e(r))}r?.addEventListener?.("abort",a,{once:!0})})}}})(),w=(()=>{const{Async:e}=h;return{defineAsyncContainerElement:function(t={}){const r=t.tagName??"async-container",n=t.customElements??globalThis.customElements;if(!n)throw new Error("defineAsyncContainerElement(...) requires customElements.");const o=n.get(r);if(o)return o;const s=t.app??t.Async??e,a=t.HTMLElement??t.window?.HTMLElement??globalThis.HTMLElement;if(!a)throw new Error("defineAsyncContainerElement(...) requires HTMLElement.");class i extends a{connectedCallback(){if(this.__asyncAttached)return;const e=s.runtime??s.start?.();e?.attachRoot?.(this),this.__asyncRuntime=e,this.__asyncAttached=!0}disconnectedCallback(){this.__asyncAttached&&(this.__asyncRuntime?.detachRoot?.(this),this.__asyncRuntime=void 0,this.__asyncAttached=!1)}}return n.define(r,i),i},defineAsyncSuspenseElement:function(e={}){const t=e.tagName??"async-suspense",r=e.customElements??globalThis.customElements;if(!r)throw new Error("defineAsyncSuspenseElement(...) requires customElements.");const n=r.get(t);if(n)return n;const o=e.HTMLElement??e.window?.HTMLElement??globalThis.HTMLElement;if(!o)throw new Error("defineAsyncSuspenseElement(...) requires HTMLElement.");class s extends o{}return r.define(t,s),s}}})(),{asyncSignal:m}=e,{Async:b}=h,{createApp:v}=h,{defineApp:S}=h,{readSnapshot:E}=h,{attributeName:$}=o,{defineAttributeConfig:A}=o,{createBoundaryReceiver:j}=y,{createCacheRegistry:R}=n,{defineCache:O}=n,{component:_}=i,{createComponentRegistry:k}=i,{defineComponent:T}=i,{delay:q}=g,{defineAsyncContainerElement:C}=w,{defineAsyncSuspenseElement:M}=w,{createHandlerRegistry:x}=u,{html:L}=a,{createLazyRegistry:D}=t,{defineRegistrySnapshot:P}=t,{Loader:B}=f,{AsyncLoader:N}=f,{createPartialRegistry:z}=p,{createRegistryStore:H}=r,{createRouteRegistry:U}=d,{createRouter:W}=d,{defineRoute:V}=d,{route:I}=d,{createScheduler:F}=l,{applyServerResult:J}=c,{createServerProxy:K}=c,{resolveServerCommandArguments:Z}=c,{unwrapServerResult:Y}=c,{computed:G}=s,{createSignal:Q}=s,{createSignalRegistry:X}=s,{effect:ee}=s,{signal:te}=s,re={asyncSignal:m,Async:b,createApp:v,defineApp:S,readSnapshot:E,attributeName:$,defineAttributeConfig:A,createBoundaryReceiver:j,createCacheRegistry:R,defineCache:O,component:_,createComponentRegistry:k,defineComponent:T,delay:q,defineAsyncContainerElement:C,defineAsyncSuspenseElement:M,createHandlerRegistry:x,html:L,createLazyRegistry:D,defineRegistrySnapshot:P,Loader:B,AsyncLoader:N,createPartialRegistry:z,createRegistryStore:H,createRouteRegistry:U,createRouter:W,defineRoute:V,route:I,createScheduler:F,applyServerResult:J,createServerProxy:K,resolveServerCommandArguments:Z,unwrapServerResult:Y,computed:G,createSignal:Q,createSignalRegistry:X,effect:ee,signal:te};return function(e,t){const r=Object.keys(e).filter(e=>"Async"!==e&&Object.prototype.hasOwnProperty.call(t,e));if(r.length>0)throw new Error(`UMD Async namespace export conflict: ${r.join(", ")}.`)}(re,b),Object.assign(b,re),b.Async=b,b}();"function"==typeof define&&define.amd?define([],()=>t):"object"==typeof module&&module.exports?module.exports=t:(e.AsyncFramework=t,e.Async=t)}("undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:this);