astro-designed-error-pages_CuMapJD2.mjs 48 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261
  1. globalThis.process ??= {}; globalThis.process.env ??= {};
  2. import { aq as REDIRECT_STATUS_CODES, A as AstroError, ar as ActionsReturnedInvalidDataError, as as escape, D as DEFAULT_404_COMPONENT } from './astro/server_WO3f6Mge.mjs';
  3. /* es-module-lexer 1.7.0 */
  4. var ImportType;!function(A){A[A.Static=1]="Static",A[A.Dynamic=2]="Dynamic",A[A.ImportMeta=3]="ImportMeta",A[A.StaticSourcePhase=4]="StaticSourcePhase",A[A.DynamicSourcePhase=5]="DynamicSourcePhase",A[A.StaticDeferPhase=6]="StaticDeferPhase",A[A.DynamicDeferPhase=7]="DynamicDeferPhase";}(ImportType||(ImportType={}));1===new Uint8Array(new Uint16Array([1]).buffer)[0];const E=()=>{return A="AGFzbQEAAAABKwhgAX8Bf2AEf39/fwBgAAF/YAAAYAF/AGADf39/AX9gAn9/AX9gA39/fwADMTAAAQECAgICAgICAgICAgICAgICAgIAAwMDBAQAAAUAAAAAAAMDAwAGAAAABwAGAgUEBQFwAQEBBQMBAAEGDwJ/AUHA8gALfwBBwPIACwd6FQZtZW1vcnkCAAJzYQAAAWUAAwJpcwAEAmllAAUCc3MABgJzZQAHAml0AAgCYWkACQJpZAAKAmlwAAsCZXMADAJlZQANA2VscwAOA2VsZQAPAnJpABACcmUAEQFmABICbXMAEwVwYXJzZQAUC19faGVhcF9iYXNlAwEKzkQwaAEBf0EAIAA2AoAKQQAoAtwJIgEgAEEBdGoiAEEAOwEAQQAgAEECaiIANgKECkEAIAA2AogKQQBBADYC4AlBAEEANgLwCUEAQQA2AugJQQBBADYC5AlBAEEANgL4CUEAQQA2AuwJIAEL0wEBA39BACgC8AkhBEEAQQAoAogKIgU2AvAJQQAgBDYC9AlBACAFQSRqNgKICiAEQSBqQeAJIAQbIAU2AgBBACgC1AkhBEEAKALQCSEGIAUgATYCACAFIAA2AgggBSACIAJBAmpBACAGIANGIgAbIAQgA0YiBBs2AgwgBSADNgIUIAVBADYCECAFIAI2AgQgBUEANgIgIAVBA0EBQQIgABsgBBs2AhwgBUEAKALQCSADRiICOgAYAkACQCACDQBBACgC1AkgA0cNAQtBAEEBOgCMCgsLXgEBf0EAKAL4CSIEQRBqQeQJIAQbQQAoAogKIgQ2AgBBACAENgL4CUEAIARBFGo2AogKQQBBAToAjAogBEEANgIQIAQgAzYCDCAEIAI2AgggBCABNgIEIAQgADYCAAsIAEEAKAKQCgsVAEEAKALoCSgCAEEAKALcCWtBAXULHgEBf0EAKALoCSgCBCIAQQAoAtwJa0EBdUF/IAAbCxUAQQAoAugJKAIIQQAoAtwJa0EBdQseAQF/QQAoAugJKAIMIgBBACgC3AlrQQF1QX8gABsLCwBBACgC6AkoAhwLHgEBf0EAKALoCSgCECIAQQAoAtwJa0EBdUF/IAAbCzsBAX8CQEEAKALoCSgCFCIAQQAoAtAJRw0AQX8PCwJAIABBACgC1AlHDQBBfg8LIABBACgC3AlrQQF1CwsAQQAoAugJLQAYCxUAQQAoAuwJKAIAQQAoAtwJa0EBdQsVAEEAKALsCSgCBEEAKALcCWtBAXULHgEBf0EAKALsCSgCCCIAQQAoAtwJa0EBdUF/IAAbCx4BAX9BACgC7AkoAgwiAEEAKALcCWtBAXVBfyAAGwslAQF/QQBBACgC6AkiAEEgakHgCSAAGygCACIANgLoCSAAQQBHCyUBAX9BAEEAKALsCSIAQRBqQeQJIAAbKAIAIgA2AuwJIABBAEcLCABBAC0AlAoLCABBAC0AjAoL3Q0BBX8jAEGA0ABrIgAkAEEAQQE6AJQKQQBBACgC2Ak2ApwKQQBBACgC3AlBfmoiATYCsApBACABQQAoAoAKQQF0aiICNgK0CkEAQQA6AIwKQQBBADsBlgpBAEEAOwGYCkEAQQA6AKAKQQBBADYCkApBAEEAOgD8CUEAIABBgBBqNgKkCkEAIAA2AqgKQQBBADoArAoCQAJAAkACQANAQQAgAUECaiIDNgKwCiABIAJPDQECQCADLwEAIgJBd2pBBUkNAAJAAkACQAJAAkAgAkGbf2oOBQEICAgCAAsgAkEgRg0EIAJBL0YNAyACQTtGDQIMBwtBAC8BmAoNASADEBVFDQEgAUEEakGCCEEKEC8NARAWQQAtAJQKDQFBAEEAKAKwCiIBNgKcCgwHCyADEBVFDQAgAUEEakGMCEEKEC8NABAXC0EAQQAoArAKNgKcCgwBCwJAIAEvAQQiA0EqRg0AIANBL0cNBBAYDAELQQEQGQtBACgCtAohAkEAKAKwCiEBDAALC0EAIQIgAyEBQQAtAPwJDQIMAQtBACABNgKwCkEAQQA6AJQKCwNAQQAgAUECaiIDNgKwCgJAAkACQAJAAkACQAJAIAFBACgCtApPDQAgAy8BACICQXdqQQVJDQYCQAJAAkACQAJAAkACQAJAAkACQCACQWBqDgoQDwYPDw8PBQECAAsCQAJAAkACQCACQaB/ag4KCxISAxIBEhISAgALIAJBhX9qDgMFEQYJC0EALwGYCg0QIAMQFUUNECABQQRqQYIIQQoQLw0QEBYMEAsgAxAVRQ0PIAFBBGpBjAhBChAvDQ8QFwwPCyADEBVFDQ4gASkABELsgISDsI7AOVINDiABLwEMIgNBd2oiAUEXSw0MQQEgAXRBn4CABHFFDQwMDQtBAEEALwGYCiIBQQFqOwGYCkEAKAKkCiABQQN0aiIBQQE2AgAgAUEAKAKcCjYCBAwNC0EALwGYCiIDRQ0JQQAgA0F/aiIDOwGYCkEALwGWCiICRQ0MQQAoAqQKIANB//8DcUEDdGooAgBBBUcNDAJAIAJBAnRBACgCqApqQXxqKAIAIgMoAgQNACADQQAoApwKQQJqNgIEC0EAIAJBf2o7AZYKIAMgAUEEajYCDAwMCwJAQQAoApwKIgEvAQBBKUcNAEEAKALwCSIDRQ0AIAMoAgQgAUcNAEEAQQAoAvQJIgM2AvAJAkAgA0UNACADQQA2AiAMAQtBAEEANgLgCQtBAEEALwGYCiIDQQFqOwGYCkEAKAKkCiADQQN0aiIDQQZBAkEALQCsChs2AgAgAyABNgIEQQBBADoArAoMCwtBAC8BmAoiAUUNB0EAIAFBf2oiATsBmApBACgCpAogAUH//wNxQQN0aigCAEEERg0EDAoLQScQGgwJC0EiEBoMCAsgAkEvRw0HAkACQCABLwEEIgFBKkYNACABQS9HDQEQGAwKC0EBEBkMCQsCQAJAAkACQEEAKAKcCiIBLwEAIgMQG0UNAAJAAkAgA0FVag4EAAkBAwkLIAFBfmovAQBBK0YNAwwICyABQX5qLwEAQS1GDQIMBwsgA0EpRw0BQQAoAqQKQQAvAZgKIgJBA3RqKAIEEBxFDQIMBgsgAUF+ai8BAEFQakH//wNxQQpPDQULQQAvAZgKIQILAkACQCACQf//A3EiAkUNACADQeYARw0AQQAoAqQKIAJBf2pBA3RqIgQoAgBBAUcNACABQX5qLwEAQe8ARw0BIAQoAgRBlghBAxAdRQ0BDAULIANB/QBHDQBBACgCpAogAkEDdGoiAigCBBAeDQQgAigCAEEGRg0ECyABEB8NAyADRQ0DIANBL0ZBAC0AoApBAEdxDQMCQEEAKAL4CSICRQ0AIAEgAigCAEkNACABIAIoAgRNDQQLIAFBfmohAUEAKALcCSECAkADQCABQQJqIgQgAk0NAUEAIAE2ApwKIAEvAQAhAyABQX5qIgQhASADECBFDQALIARBAmohBAsCQCADQf//A3EQIUUNACAEQX5qIQECQANAIAFBAmoiAyACTQ0BQQAgATYCnAogAS8BACEDIAFBfmoiBCEBIAMQIQ0ACyAEQQJqIQMLIAMQIg0EC0EAQQE6AKAKDAcLQQAoAqQKQQAvAZgKIgFBA3QiA2pBACgCnAo2AgRBACABQQFqOwGYCkEAKAKkCiADakEDNgIACxAjDAULQQAtAPwJQQAvAZYKQQAvAZgKcnJFIQIMBwsQJEEAQQA6AKAKDAMLECVBACECDAULIANBoAFHDQELQQBBAToArAoLQQBBACgCsAo2ApwKC0EAKAKwCiEBDAALCyAAQYDQAGokACACCxoAAkBBACgC3AkgAEcNAEEBDwsgAEF+ahAmC/4KAQZ/QQBBACgCsAoiAEEMaiIBNgKwCkEAKAL4CSECQQEQKSEDAkACQAJAAkACQAJAAkACQAJAQQAoArAKIgQgAUcNACADEChFDQELAkACQAJAAkACQAJAAkAgA0EqRg0AIANB+wBHDQFBACAEQQJqNgKwCkEBECkhA0EAKAKwCiEEA0ACQAJAIANB//8DcSIDQSJGDQAgA0EnRg0AIAMQLBpBACgCsAohAwwBCyADEBpBAEEAKAKwCkECaiIDNgKwCgtBARApGgJAIAQgAxAtIgNBLEcNAEEAQQAoArAKQQJqNgKwCkEBECkhAwsgA0H9AEYNA0EAKAKwCiIFIARGDQ8gBSEEIAVBACgCtApNDQAMDwsLQQAgBEECajYCsApBARApGkEAKAKwCiIDIAMQLRoMAgtBAEEAOgCUCgJAAkACQAJAAkACQCADQZ9/ag4MAgsEAQsDCwsLCwsFAAsgA0H2AEYNBAwKC0EAIARBDmoiAzYCsAoCQAJAAkBBARApQZ9/ag4GABICEhIBEgtBACgCsAoiBSkAAkLzgOSD4I3AMVINESAFLwEKECFFDRFBACAFQQpqNgKwCkEAECkaC0EAKAKwCiIFQQJqQbIIQQ4QLw0QIAUvARAiAkF3aiIBQRdLDQ1BASABdEGfgIAEcUUNDQwOC0EAKAKwCiIFKQACQuyAhIOwjsA5Ug0PIAUvAQoiAkF3aiIBQRdNDQYMCgtBACAEQQpqNgKwCkEAECkaQQAoArAKIQQLQQAgBEEQajYCsAoCQEEBECkiBEEqRw0AQQBBACgCsApBAmo2ArAKQQEQKSEEC0EAKAKwCiEDIAQQLBogA0EAKAKwCiIEIAMgBBACQQBBACgCsApBfmo2ArAKDwsCQCAEKQACQuyAhIOwjsA5Ug0AIAQvAQoQIEUNAEEAIARBCmo2ArAKQQEQKSEEQQAoArAKIQMgBBAsGiADQQAoArAKIgQgAyAEEAJBAEEAKAKwCkF+ajYCsAoPC0EAIARBBGoiBDYCsAoLQQAgBEEGajYCsApBAEEAOgCUCkEBECkhBEEAKAKwCiEDIAQQLCEEQQAoArAKIQIgBEHf/wNxIgFB2wBHDQNBACACQQJqNgKwCkEBECkhBUEAKAKwCiEDQQAhBAwEC0EAQQE6AIwKQQBBACgCsApBAmo2ArAKC0EBECkhBEEAKAKwCiEDAkAgBEHmAEcNACADQQJqQawIQQYQLw0AQQAgA0EIajYCsAogAEEBEClBABArIAJBEGpB5AkgAhshAwNAIAMoAgAiA0UNBSADQgA3AgggA0EQaiEDDAALC0EAIANBfmo2ArAKDAMLQQEgAXRBn4CABHFFDQMMBAtBASEECwNAAkACQCAEDgIAAQELIAVB//8DcRAsGkEBIQQMAQsCQAJAQQAoArAKIgQgA0YNACADIAQgAyAEEAJBARApIQQCQCABQdsARw0AIARBIHJB/QBGDQQLQQAoArAKIQMCQCAEQSxHDQBBACADQQJqNgKwCkEBECkhBUEAKAKwCiEDIAVBIHJB+wBHDQILQQAgA0F+ajYCsAoLIAFB2wBHDQJBACACQX5qNgKwCg8LQQAhBAwACwsPCyACQaABRg0AIAJB+wBHDQQLQQAgBUEKajYCsApBARApIgVB+wBGDQMMAgsCQCACQVhqDgMBAwEACyACQaABRw0CC0EAIAVBEGo2ArAKAkBBARApIgVBKkcNAEEAQQAoArAKQQJqNgKwCkEBECkhBQsgBUEoRg0BC0EAKAKwCiEBIAUQLBpBACgCsAoiBSABTQ0AIAQgAyABIAUQAkEAQQAoArAKQX5qNgKwCg8LIAQgA0EAQQAQAkEAIARBDGo2ArAKDwsQJQuFDAEKf0EAQQAoArAKIgBBDGoiATYCsApBARApIQJBACgCsAohAwJAAkACQAJAAkACQAJAAkAgAkEuRw0AQQAgA0ECajYCsAoCQEEBECkiAkHkAEYNAAJAIAJB8wBGDQAgAkHtAEcNB0EAKAKwCiICQQJqQZwIQQYQLw0HAkBBACgCnAoiAxAqDQAgAy8BAEEuRg0ICyAAIAAgAkEIakEAKALUCRABDwtBACgCsAoiAkECakGiCEEKEC8NBgJAQQAoApwKIgMQKg0AIAMvAQBBLkYNBwtBACEEQQAgAkEMajYCsApBASEFQQUhBkEBECkhAkEAIQdBASEIDAILQQAoArAKIgIpAAJC5YCYg9CMgDlSDQUCQEEAKAKcCiIDECoNACADLwEAQS5GDQYLQQAhBEEAIAJBCmo2ArAKQQIhCEEHIQZBASEHQQEQKSECQQEhBQwBCwJAAkACQAJAIAJB8wBHDQAgAyABTQ0AIANBAmpBoghBChAvDQACQCADLwEMIgRBd2oiB0EXSw0AQQEgB3RBn4CABHENAgsgBEGgAUYNAQtBACEHQQchBkEBIQQgAkHkAEYNAQwCC0EAIQRBACADQQxqIgI2ArAKQQEhBUEBECkhCQJAQQAoArAKIgYgAkYNAEHmACECAkAgCUHmAEYNAEEFIQZBACEHQQEhCCAJIQIMBAtBACEHQQEhCCAGQQJqQawIQQYQLw0EIAYvAQgQIEUNBAtBACEHQQAgAzYCsApBByEGQQEhBEEAIQVBACEIIAkhAgwCCyADIABBCmpNDQBBACEIQeQAIQICQCADKQACQuWAmIPQjIA5Ug0AAkACQCADLwEKIgRBd2oiB0EXSw0AQQEgB3RBn4CABHENAQtBACEIIARBoAFHDQELQQAhBUEAIANBCmo2ArAKQSohAkEBIQdBAiEIQQEQKSIJQSpGDQRBACADNgKwCkEBIQRBACEHQQAhCCAJIQIMAgsgAyEGQQAhBwwCC0EAIQVBACEICwJAIAJBKEcNAEEAKAKkCkEALwGYCiICQQN0aiIDQQAoArAKNgIEQQAgAkEBajsBmAogA0EFNgIAQQAoApwKLwEAQS5GDQRBAEEAKAKwCiIDQQJqNgKwCkEBECkhAiAAQQAoArAKQQAgAxABAkACQCAFDQBBACgC8AkhAQwBC0EAKALwCSIBIAY2AhwLQQBBAC8BlgoiA0EBajsBlgpBACgCqAogA0ECdGogATYCAAJAIAJBIkYNACACQSdGDQBBAEEAKAKwCkF+ajYCsAoPCyACEBpBAEEAKAKwCkECaiICNgKwCgJAAkACQEEBEClBV2oOBAECAgACC0EAQQAoArAKQQJqNgKwCkEBECkaQQAoAvAJIgMgAjYCBCADQQE6ABggA0EAKAKwCiICNgIQQQAgAkF+ajYCsAoPC0EAKALwCSIDIAI2AgQgA0EBOgAYQQBBAC8BmApBf2o7AZgKIANBACgCsApBAmo2AgxBAEEALwGWCkF/ajsBlgoPC0EAQQAoArAKQX5qNgKwCg8LAkAgBEEBcyACQfsAR3INAEEAKAKwCiECQQAvAZgKDQUDQAJAAkACQCACQQAoArQKTw0AQQEQKSICQSJGDQEgAkEnRg0BIAJB/QBHDQJBAEEAKAKwCkECajYCsAoLQQEQKSEDQQAoArAKIQICQCADQeYARw0AIAJBAmpBrAhBBhAvDQcLQQAgAkEIajYCsAoCQEEBECkiAkEiRg0AIAJBJ0cNBwsgACACQQAQKw8LIAIQGgtBAEEAKAKwCkECaiICNgKwCgwACwsCQAJAIAJBWWoOBAMBAQMACyACQSJGDQILQQAoArAKIQYLIAYgAUcNAEEAIABBCmo2ArAKDwsgAkEqRyAHcQ0DQQAvAZgKQf//A3ENA0EAKAKwCiECQQAoArQKIQEDQCACIAFPDQECQAJAIAIvAQAiA0EnRg0AIANBIkcNAQsgACADIAgQKw8LQQAgAkECaiICNgKwCgwACwsQJQsPC0EAIAJBfmo2ArAKDwtBAEEAKAKwCkF+ajYCsAoLRwEDf0EAKAKwCkECaiEAQQAoArQKIQECQANAIAAiAkF+aiABTw0BIAJBAmohACACLwEAQXZqDgQBAAABAAsLQQAgAjYCsAoLmAEBA39BAEEAKAKwCiIBQQJqNgKwCiABQQZqIQFBACgCtAohAgNAAkACQAJAIAFBfGogAk8NACABQX5qLwEAIQMCQAJAIAANACADQSpGDQEgA0F2ag4EAgQEAgQLIANBKkcNAwsgAS8BAEEvRw0CQQAgAUF+ajYCsAoMAQsgAUF+aiEBC0EAIAE2ArAKDwsgAUECaiEBDAALC4gBAQR/QQAoArAKIQFBACgCtAohAgJAAkADQCABIgNBAmohASADIAJPDQEgAS8BACIEIABGDQICQCAEQdwARg0AIARBdmoOBAIBAQIBCyADQQRqIQEgAy8BBEENRw0AIANBBmogASADLwEGQQpGGyEBDAALC0EAIAE2ArAKECUPC0EAIAE2ArAKC2wBAX8CQAJAIABBX2oiAUEFSw0AQQEgAXRBMXENAQsgAEFGakH//wNxQQZJDQAgAEEpRyAAQVhqQf//A3FBB0lxDQACQCAAQaV/ag4EAQAAAQALIABB/QBHIABBhX9qQf//A3FBBElxDwtBAQsuAQF/QQEhAQJAIABBpglBBRAdDQAgAEGWCEEDEB0NACAAQbAJQQIQHSEBCyABC0YBA39BACEDAkAgACACQQF0IgJrIgRBAmoiAEEAKALcCSIFSQ0AIAAgASACEC8NAAJAIAAgBUcNAEEBDwsgBBAmIQMLIAMLgwEBAn9BASEBAkACQAJAAkACQAJAIAAvAQAiAkFFag4EBQQEAQALAkAgAkGbf2oOBAMEBAIACyACQSlGDQQgAkH5AEcNAyAAQX5qQbwJQQYQHQ8LIABBfmovAQBBPUYPCyAAQX5qQbQJQQQQHQ8LIABBfmpByAlBAxAdDwtBACEBCyABC7QDAQJ/QQAhAQJAAkACQAJAAkACQAJAAkACQAJAIAAvAQBBnH9qDhQAAQIJCQkJAwkJBAUJCQYJBwkJCAkLAkACQCAAQX5qLwEAQZd/ag4EAAoKAQoLIABBfGpByghBAhAdDwsgAEF8akHOCEEDEB0PCwJAAkACQCAAQX5qLwEAQY1/ag4DAAECCgsCQCAAQXxqLwEAIgJB4QBGDQAgAkHsAEcNCiAAQXpqQeUAECcPCyAAQXpqQeMAECcPCyAAQXxqQdQIQQQQHQ8LIABBfGpB3AhBBhAdDwsgAEF+ai8BAEHvAEcNBiAAQXxqLwEAQeUARw0GAkAgAEF6ai8BACICQfAARg0AIAJB4wBHDQcgAEF4akHoCEEGEB0PCyAAQXhqQfQIQQIQHQ8LIABBfmpB+AhBBBAdDwtBASEBIABBfmoiAEHpABAnDQQgAEGACUEFEB0PCyAAQX5qQeQAECcPCyAAQX5qQYoJQQcQHQ8LIABBfmpBmAlBBBAdDwsCQCAAQX5qLwEAIgJB7wBGDQAgAkHlAEcNASAAQXxqQe4AECcPCyAAQXxqQaAJQQMQHSEBCyABCzQBAX9BASEBAkAgAEF3akH//wNxQQVJDQAgAEGAAXJBoAFGDQAgAEEuRyAAEChxIQELIAELMAEBfwJAAkAgAEF3aiIBQRdLDQBBASABdEGNgIAEcQ0BCyAAQaABRg0AQQAPC0EBC04BAn9BACEBAkACQCAALwEAIgJB5QBGDQAgAkHrAEcNASAAQX5qQfgIQQQQHQ8LIABBfmovAQBB9QBHDQAgAEF8akHcCEEGEB0hAQsgAQveAQEEf0EAKAKwCiEAQQAoArQKIQECQAJAAkADQCAAIgJBAmohACACIAFPDQECQAJAAkAgAC8BACIDQaR/ag4FAgMDAwEACyADQSRHDQIgAi8BBEH7AEcNAkEAIAJBBGoiADYCsApBAEEALwGYCiICQQFqOwGYCkEAKAKkCiACQQN0aiICQQQ2AgAgAiAANgIEDwtBACAANgKwCkEAQQAvAZgKQX9qIgA7AZgKQQAoAqQKIABB//8DcUEDdGooAgBBA0cNAwwECyACQQRqIQAMAAsLQQAgADYCsAoLECULC3ABAn8CQAJAA0BBAEEAKAKwCiIAQQJqIgE2ArAKIABBACgCtApPDQECQAJAAkAgAS8BACIBQaV/ag4CAQIACwJAIAFBdmoOBAQDAwQACyABQS9HDQIMBAsQLhoMAQtBACAAQQRqNgKwCgwACwsQJQsLNQEBf0EAQQE6APwJQQAoArAKIQBBAEEAKAK0CkECajYCsApBACAAQQAoAtwJa0EBdTYCkAoLQwECf0EBIQECQCAALwEAIgJBd2pB//8DcUEFSQ0AIAJBgAFyQaABRg0AQQAhASACEChFDQAgAkEuRyAAECpyDwsgAQs9AQJ/QQAhAgJAQQAoAtwJIgMgAEsNACAALwEAIAFHDQACQCADIABHDQBBAQ8LIABBfmovAQAQICECCyACC2gBAn9BASEBAkACQCAAQV9qIgJBBUsNAEEBIAJ0QTFxDQELIABB+P8DcUEoRg0AIABBRmpB//8DcUEGSQ0AAkAgAEGlf2oiAkEDSw0AIAJBAUcNAQsgAEGFf2pB//8DcUEESSEBCyABC5wBAQN/QQAoArAKIQECQANAAkACQCABLwEAIgJBL0cNAAJAIAEvAQIiAUEqRg0AIAFBL0cNBBAYDAILIAAQGQwBCwJAAkAgAEUNACACQXdqIgFBF0sNAUEBIAF0QZ+AgARxRQ0BDAILIAIQIUUNAwwBCyACQaABRw0CC0EAQQAoArAKIgNBAmoiATYCsAogA0EAKAK0CkkNAAsLIAILMQEBf0EAIQECQCAALwEAQS5HDQAgAEF+ai8BAEEuRw0AIABBfGovAQBBLkYhAQsgAQumBAEBfwJAIAFBIkYNACABQSdGDQAQJQ8LQQAoArAKIQMgARAaIAAgA0ECakEAKAKwCkEAKALQCRABAkAgAkEBSA0AQQAoAvAJQQRBBiACQQFGGzYCHAtBAEEAKAKwCkECajYCsAoCQAJAAkACQEEAECkiAUHhAEYNACABQfcARg0BQQAoArAKIQEMAgtBACgCsAoiAUECakHACEEKEC8NAUEGIQIMAgtBACgCsAoiAS8BAkHpAEcNACABLwEEQfQARw0AQQQhAiABLwEGQegARg0BC0EAIAFBfmo2ArAKDwtBACABIAJBAXRqNgKwCgJAQQEQKUH7AEYNAEEAIAE2ArAKDwtBACgCsAoiACECA0BBACACQQJqNgKwCgJAAkACQEEBECkiAkEiRg0AIAJBJ0cNAUEnEBpBAEEAKAKwCkECajYCsApBARApIQIMAgtBIhAaQQBBACgCsApBAmo2ArAKQQEQKSECDAELIAIQLCECCwJAIAJBOkYNAEEAIAE2ArAKDwtBAEEAKAKwCkECajYCsAoCQEEBECkiAkEiRg0AIAJBJ0YNAEEAIAE2ArAKDwsgAhAaQQBBACgCsApBAmo2ArAKAkACQEEBECkiAkEsRg0AIAJB/QBGDQFBACABNgKwCg8LQQBBACgCsApBAmo2ArAKQQEQKUH9AEYNAEEAKAKwCiECDAELC0EAKALwCSIBIAA2AhAgAUEAKAKwCkECajYCDAttAQJ/AkACQANAAkAgAEH//wNxIgFBd2oiAkEXSw0AQQEgAnRBn4CABHENAgsgAUGgAUYNASAAIQIgARAoDQJBACECQQBBACgCsAoiAEECajYCsAogAC8BAiIADQAMAgsLIAAhAgsgAkH//wNxC6sBAQR/AkACQEEAKAKwCiICLwEAIgNB4QBGDQAgASEEIAAhBQwBC0EAIAJBBGo2ArAKQQEQKSECQQAoArAKIQUCQAJAIAJBIkYNACACQSdGDQAgAhAsGkEAKAKwCiEEDAELIAIQGkEAQQAoArAKQQJqIgQ2ArAKC0EBECkhA0EAKAKwCiECCwJAIAIgBUYNACAFIARBACAAIAAgAUYiAhtBACABIAIbEAILIAMLcgEEf0EAKAKwCiEAQQAoArQKIQECQAJAA0AgAEECaiECIAAgAU8NAQJAAkAgAi8BACIDQaR/ag4CAQQACyACIQAgA0F2ag4EAgEBAgELIABBBGohAAwACwtBACACNgKwChAlQQAPC0EAIAI2ArAKQd0AC0kBA39BACEDAkAgAkUNAAJAA0AgAC0AACIEIAEtAAAiBUcNASABQQFqIQEgAEEBaiEAIAJBf2oiAg0ADAILCyAEIAVrIQMLIAMLC+wBAgBBgAgLzgEAAHgAcABvAHIAdABtAHAAbwByAHQAZgBvAHIAZQB0AGEAbwB1AHIAYwBlAHIAbwBtAHUAbgBjAHQAaQBvAG4AcwBzAGUAcgB0AHYAbwB5AGkAZQBkAGUAbABlAGMAbwBuAHQAaQBuAGkAbgBzAHQAYQBuAHQAeQBiAHIAZQBhAHIAZQB0AHUAcgBkAGUAYgB1AGcAZwBlAGEAdwBhAGkAdABoAHIAdwBoAGkAbABlAGkAZgBjAGEAdABjAGYAaQBuAGEAbABsAGUAbABzAABB0AkLEAEAAAACAAAAAAQAAEA5AAA=","undefined"!=typeof Buffer?Buffer.from(A,"base64"):Uint8Array.from(atob(A),(A=>A.charCodeAt(0)));var A;};WebAssembly.compile(E()).then(WebAssembly.instantiate).then((({exports:A})=>{}));
  5. /** @type {Record<string, string>} */
  6. class DevalueError extends Error {
  7. /**
  8. * @param {string} message
  9. * @param {string[]} keys
  10. */
  11. constructor(message, keys) {
  12. super(message);
  13. this.name = 'DevalueError';
  14. this.path = keys.join('');
  15. }
  16. }
  17. /** @param {any} thing */
  18. function is_primitive(thing) {
  19. return Object(thing) !== thing;
  20. }
  21. const object_proto_names = /* @__PURE__ */ Object.getOwnPropertyNames(
  22. Object.prototype
  23. )
  24. .sort()
  25. .join('\0');
  26. /** @param {any} thing */
  27. function is_plain_object(thing) {
  28. const proto = Object.getPrototypeOf(thing);
  29. return (
  30. proto === Object.prototype ||
  31. proto === null ||
  32. Object.getPrototypeOf(proto) === null ||
  33. Object.getOwnPropertyNames(proto).sort().join('\0') === object_proto_names
  34. );
  35. }
  36. /** @param {any} thing */
  37. function get_type(thing) {
  38. return Object.prototype.toString.call(thing).slice(8, -1);
  39. }
  40. /** @param {string} char */
  41. function get_escaped_char(char) {
  42. switch (char) {
  43. case '"':
  44. return '\\"';
  45. case '<':
  46. return '\\u003C';
  47. case '\\':
  48. return '\\\\';
  49. case '\n':
  50. return '\\n';
  51. case '\r':
  52. return '\\r';
  53. case '\t':
  54. return '\\t';
  55. case '\b':
  56. return '\\b';
  57. case '\f':
  58. return '\\f';
  59. case '\u2028':
  60. return '\\u2028';
  61. case '\u2029':
  62. return '\\u2029';
  63. default:
  64. return char < ' '
  65. ? `\\u${char.charCodeAt(0).toString(16).padStart(4, '0')}`
  66. : '';
  67. }
  68. }
  69. /** @param {string} str */
  70. function stringify_string(str) {
  71. let result = '';
  72. let last_pos = 0;
  73. const len = str.length;
  74. for (let i = 0; i < len; i += 1) {
  75. const char = str[i];
  76. const replacement = get_escaped_char(char);
  77. if (replacement) {
  78. result += str.slice(last_pos, i) + replacement;
  79. last_pos = i + 1;
  80. }
  81. }
  82. return `"${last_pos === 0 ? str : result + str.slice(last_pos)}"`;
  83. }
  84. /** @param {Record<string | symbol, any>} object */
  85. function enumerable_symbols(object) {
  86. return Object.getOwnPropertySymbols(object).filter(
  87. (symbol) => Object.getOwnPropertyDescriptor(object, symbol).enumerable
  88. );
  89. }
  90. const is_identifier = /^[a-zA-Z_$][a-zA-Z_$0-9]*$/;
  91. /** @param {string} key */
  92. function stringify_key(key) {
  93. return is_identifier.test(key) ? '.' + key : '[' + JSON.stringify(key) + ']';
  94. }
  95. /**
  96. * Base64 Encodes an arraybuffer
  97. * @param {ArrayBuffer} arraybuffer
  98. * @returns {string}
  99. */
  100. function encode64(arraybuffer) {
  101. const dv = new DataView(arraybuffer);
  102. let binaryString = "";
  103. for (let i = 0; i < arraybuffer.byteLength; i++) {
  104. binaryString += String.fromCharCode(dv.getUint8(i));
  105. }
  106. return binaryToAscii(binaryString);
  107. }
  108. /**
  109. * Decodes a base64 string into an arraybuffer
  110. * @param {string} string
  111. * @returns {ArrayBuffer}
  112. */
  113. function decode64(string) {
  114. const binaryString = asciiToBinary(string);
  115. const arraybuffer = new ArrayBuffer(binaryString.length);
  116. const dv = new DataView(arraybuffer);
  117. for (let i = 0; i < arraybuffer.byteLength; i++) {
  118. dv.setUint8(i, binaryString.charCodeAt(i));
  119. }
  120. return arraybuffer;
  121. }
  122. const KEY_STRING =
  123. "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
  124. /**
  125. * Substitute for atob since it's deprecated in node.
  126. * Does not do any input validation.
  127. *
  128. * @see https://github.com/jsdom/abab/blob/master/lib/atob.js
  129. *
  130. * @param {string} data
  131. * @returns {string}
  132. */
  133. function asciiToBinary(data) {
  134. if (data.length % 4 === 0) {
  135. data = data.replace(/==?$/, "");
  136. }
  137. let output = "";
  138. let buffer = 0;
  139. let accumulatedBits = 0;
  140. for (let i = 0; i < data.length; i++) {
  141. buffer <<= 6;
  142. buffer |= KEY_STRING.indexOf(data[i]);
  143. accumulatedBits += 6;
  144. if (accumulatedBits === 24) {
  145. output += String.fromCharCode((buffer & 0xff0000) >> 16);
  146. output += String.fromCharCode((buffer & 0xff00) >> 8);
  147. output += String.fromCharCode(buffer & 0xff);
  148. buffer = accumulatedBits = 0;
  149. }
  150. }
  151. if (accumulatedBits === 12) {
  152. buffer >>= 4;
  153. output += String.fromCharCode(buffer);
  154. } else if (accumulatedBits === 18) {
  155. buffer >>= 2;
  156. output += String.fromCharCode((buffer & 0xff00) >> 8);
  157. output += String.fromCharCode(buffer & 0xff);
  158. }
  159. return output;
  160. }
  161. /**
  162. * Substitute for btoa since it's deprecated in node.
  163. * Does not do any input validation.
  164. *
  165. * @see https://github.com/jsdom/abab/blob/master/lib/btoa.js
  166. *
  167. * @param {string} str
  168. * @returns {string}
  169. */
  170. function binaryToAscii(str) {
  171. let out = "";
  172. for (let i = 0; i < str.length; i += 3) {
  173. /** @type {[number, number, number, number]} */
  174. const groupsOfSix = [undefined, undefined, undefined, undefined];
  175. groupsOfSix[0] = str.charCodeAt(i) >> 2;
  176. groupsOfSix[1] = (str.charCodeAt(i) & 0x03) << 4;
  177. if (str.length > i + 1) {
  178. groupsOfSix[1] |= str.charCodeAt(i + 1) >> 4;
  179. groupsOfSix[2] = (str.charCodeAt(i + 1) & 0x0f) << 2;
  180. }
  181. if (str.length > i + 2) {
  182. groupsOfSix[2] |= str.charCodeAt(i + 2) >> 6;
  183. groupsOfSix[3] = str.charCodeAt(i + 2) & 0x3f;
  184. }
  185. for (let j = 0; j < groupsOfSix.length; j++) {
  186. if (typeof groupsOfSix[j] === "undefined") {
  187. out += "=";
  188. } else {
  189. out += KEY_STRING[groupsOfSix[j]];
  190. }
  191. }
  192. }
  193. return out;
  194. }
  195. const UNDEFINED = -1;
  196. const HOLE = -2;
  197. const NAN = -3;
  198. const POSITIVE_INFINITY = -4;
  199. const NEGATIVE_INFINITY = -5;
  200. const NEGATIVE_ZERO = -6;
  201. /**
  202. * Revive a value serialized with `devalue.stringify`
  203. * @param {string} serialized
  204. * @param {Record<string, (value: any) => any>} [revivers]
  205. */
  206. function parse(serialized, revivers) {
  207. return unflatten(JSON.parse(serialized), revivers);
  208. }
  209. /**
  210. * Revive a value flattened with `devalue.stringify`
  211. * @param {number | any[]} parsed
  212. * @param {Record<string, (value: any) => any>} [revivers]
  213. */
  214. function unflatten(parsed, revivers) {
  215. if (typeof parsed === 'number') return hydrate(parsed, true);
  216. if (!Array.isArray(parsed) || parsed.length === 0) {
  217. throw new Error('Invalid input');
  218. }
  219. const values = /** @type {any[]} */ (parsed);
  220. const hydrated = Array(values.length);
  221. /**
  222. * @param {number} index
  223. * @returns {any}
  224. */
  225. function hydrate(index, standalone = false) {
  226. if (index === UNDEFINED) return undefined;
  227. if (index === NAN) return NaN;
  228. if (index === POSITIVE_INFINITY) return Infinity;
  229. if (index === NEGATIVE_INFINITY) return -Infinity;
  230. if (index === NEGATIVE_ZERO) return -0;
  231. if (standalone || typeof index !== 'number') {
  232. throw new Error(`Invalid input`);
  233. }
  234. if (index in hydrated) return hydrated[index];
  235. const value = values[index];
  236. if (!value || typeof value !== 'object') {
  237. hydrated[index] = value;
  238. } else if (Array.isArray(value)) {
  239. if (typeof value[0] === 'string') {
  240. const type = value[0];
  241. const reviver = revivers?.[type];
  242. if (reviver) {
  243. return (hydrated[index] = reviver(hydrate(value[1])));
  244. }
  245. switch (type) {
  246. case 'Date':
  247. hydrated[index] = new Date(value[1]);
  248. break;
  249. case 'Set':
  250. const set = new Set();
  251. hydrated[index] = set;
  252. for (let i = 1; i < value.length; i += 1) {
  253. set.add(hydrate(value[i]));
  254. }
  255. break;
  256. case 'Map':
  257. const map = new Map();
  258. hydrated[index] = map;
  259. for (let i = 1; i < value.length; i += 2) {
  260. map.set(hydrate(value[i]), hydrate(value[i + 1]));
  261. }
  262. break;
  263. case 'RegExp':
  264. hydrated[index] = new RegExp(value[1], value[2]);
  265. break;
  266. case 'Object':
  267. hydrated[index] = Object(value[1]);
  268. break;
  269. case 'BigInt':
  270. hydrated[index] = BigInt(value[1]);
  271. break;
  272. case 'null':
  273. const obj = Object.create(null);
  274. hydrated[index] = obj;
  275. for (let i = 1; i < value.length; i += 2) {
  276. obj[value[i]] = hydrate(value[i + 1]);
  277. }
  278. break;
  279. case 'Int8Array':
  280. case 'Uint8Array':
  281. case 'Uint8ClampedArray':
  282. case 'Int16Array':
  283. case 'Uint16Array':
  284. case 'Int32Array':
  285. case 'Uint32Array':
  286. case 'Float32Array':
  287. case 'Float64Array':
  288. case 'BigInt64Array':
  289. case 'BigUint64Array': {
  290. const TypedArrayConstructor = globalThis[type];
  291. const typedArray = new TypedArrayConstructor(hydrate(value[1]));
  292. hydrated[index] =
  293. value[2] !== undefined
  294. ? typedArray.subarray(value[2], value[3])
  295. : typedArray;
  296. break;
  297. }
  298. case 'ArrayBuffer': {
  299. const base64 = value[1];
  300. const arraybuffer = decode64(base64);
  301. hydrated[index] = arraybuffer;
  302. break;
  303. }
  304. case 'Temporal.Duration':
  305. case 'Temporal.Instant':
  306. case 'Temporal.PlainDate':
  307. case 'Temporal.PlainTime':
  308. case 'Temporal.PlainDateTime':
  309. case 'Temporal.PlainMonthDay':
  310. case 'Temporal.PlainYearMonth':
  311. case 'Temporal.ZonedDateTime': {
  312. const temporalName = type.slice(9);
  313. // @ts-expect-error TS doesn't know about Temporal yet
  314. hydrated[index] = Temporal[temporalName].from(value[1]);
  315. break;
  316. }
  317. case 'URL': {
  318. const url = new URL(value[1]);
  319. hydrated[index] = url;
  320. break;
  321. }
  322. case 'URLSearchParams': {
  323. const url = new URLSearchParams(value[1]);
  324. hydrated[index] = url;
  325. break;
  326. }
  327. default:
  328. throw new Error(`Unknown type ${type}`);
  329. }
  330. } else {
  331. const array = new Array(value.length);
  332. hydrated[index] = array;
  333. for (let i = 0; i < value.length; i += 1) {
  334. const n = value[i];
  335. if (n === HOLE) continue;
  336. array[i] = hydrate(n);
  337. }
  338. }
  339. } else {
  340. /** @type {Record<string, any>} */
  341. const object = {};
  342. hydrated[index] = object;
  343. for (const key in value) {
  344. if (key === '__proto__') {
  345. throw new Error('Cannot parse an object with a `__proto__` property');
  346. }
  347. const n = value[key];
  348. object[key] = hydrate(n);
  349. }
  350. }
  351. return hydrated[index];
  352. }
  353. return hydrate(0);
  354. }
  355. /**
  356. * Turn a value into a JSON string that can be parsed with `devalue.parse`
  357. * @param {any} value
  358. * @param {Record<string, (value: any) => any>} [reducers]
  359. */
  360. function stringify(value, reducers) {
  361. /** @type {any[]} */
  362. const stringified = [];
  363. /** @type {Map<any, number>} */
  364. const indexes = new Map();
  365. /** @type {Array<{ key: string, fn: (value: any) => any }>} */
  366. const custom = [];
  367. if (reducers) {
  368. for (const key of Object.getOwnPropertyNames(reducers)) {
  369. custom.push({ key, fn: reducers[key] });
  370. }
  371. }
  372. /** @type {string[]} */
  373. const keys = [];
  374. let p = 0;
  375. /** @param {any} thing */
  376. function flatten(thing) {
  377. if (typeof thing === 'function') {
  378. throw new DevalueError(`Cannot stringify a function`, keys);
  379. }
  380. if (thing === undefined) return UNDEFINED;
  381. if (Number.isNaN(thing)) return NAN;
  382. if (thing === Infinity) return POSITIVE_INFINITY;
  383. if (thing === -Infinity) return NEGATIVE_INFINITY;
  384. if (thing === 0 && 1 / thing < 0) return NEGATIVE_ZERO;
  385. if (indexes.has(thing)) return indexes.get(thing);
  386. const index = p++;
  387. indexes.set(thing, index);
  388. for (const { key, fn } of custom) {
  389. const value = fn(thing);
  390. if (value) {
  391. stringified[index] = `["${key}",${flatten(value)}]`;
  392. return index;
  393. }
  394. }
  395. let str = '';
  396. if (is_primitive(thing)) {
  397. str = stringify_primitive(thing);
  398. } else {
  399. const type = get_type(thing);
  400. switch (type) {
  401. case 'Number':
  402. case 'String':
  403. case 'Boolean':
  404. str = `["Object",${stringify_primitive(thing)}]`;
  405. break;
  406. case 'BigInt':
  407. str = `["BigInt",${thing}]`;
  408. break;
  409. case 'Date':
  410. const valid = !isNaN(thing.getDate());
  411. str = `["Date","${valid ? thing.toISOString() : ''}"]`;
  412. break;
  413. case 'URL':
  414. str = `["URL",${stringify_string(thing.toString())}]`;
  415. break;
  416. case 'URLSearchParams':
  417. str = `["URLSearchParams",${stringify_string(thing.toString())}]`;
  418. break;
  419. case 'RegExp':
  420. const { source, flags } = thing;
  421. str = flags
  422. ? `["RegExp",${stringify_string(source)},"${flags}"]`
  423. : `["RegExp",${stringify_string(source)}]`;
  424. break;
  425. case 'Array':
  426. str = '[';
  427. for (let i = 0; i < thing.length; i += 1) {
  428. if (i > 0) str += ',';
  429. if (i in thing) {
  430. keys.push(`[${i}]`);
  431. str += flatten(thing[i]);
  432. keys.pop();
  433. } else {
  434. str += HOLE;
  435. }
  436. }
  437. str += ']';
  438. break;
  439. case 'Set':
  440. str = '["Set"';
  441. for (const value of thing) {
  442. str += `,${flatten(value)}`;
  443. }
  444. str += ']';
  445. break;
  446. case 'Map':
  447. str = '["Map"';
  448. for (const [key, value] of thing) {
  449. keys.push(
  450. `.get(${is_primitive(key) ? stringify_primitive(key) : '...'})`
  451. );
  452. str += `,${flatten(key)},${flatten(value)}`;
  453. keys.pop();
  454. }
  455. str += ']';
  456. break;
  457. case 'Int8Array':
  458. case 'Uint8Array':
  459. case 'Uint8ClampedArray':
  460. case 'Int16Array':
  461. case 'Uint16Array':
  462. case 'Int32Array':
  463. case 'Uint32Array':
  464. case 'Float32Array':
  465. case 'Float64Array':
  466. case 'BigInt64Array':
  467. case 'BigUint64Array': {
  468. /** @type {import("./types.js").TypedArray} */
  469. const typedArray = thing;
  470. str = '["' + type + '",' + flatten(typedArray.buffer);
  471. const a = thing.byteOffset;
  472. const b = a + thing.byteLength;
  473. // handle subarrays
  474. if (a > 0 || b !== typedArray.buffer.byteLength) {
  475. const m = +/(\d+)/.exec(type)[1] / 8;
  476. str += `,${a / m},${b / m}`;
  477. }
  478. str += ']';
  479. break;
  480. }
  481. case 'ArrayBuffer': {
  482. /** @type {ArrayBuffer} */
  483. const arraybuffer = thing;
  484. const base64 = encode64(arraybuffer);
  485. str = `["ArrayBuffer","${base64}"]`;
  486. break;
  487. }
  488. case 'Temporal.Duration':
  489. case 'Temporal.Instant':
  490. case 'Temporal.PlainDate':
  491. case 'Temporal.PlainTime':
  492. case 'Temporal.PlainDateTime':
  493. case 'Temporal.PlainMonthDay':
  494. case 'Temporal.PlainYearMonth':
  495. case 'Temporal.ZonedDateTime':
  496. str = `["${type}",${stringify_string(thing.toString())}]`;
  497. break;
  498. default:
  499. if (!is_plain_object(thing)) {
  500. throw new DevalueError(
  501. `Cannot stringify arbitrary non-POJOs`,
  502. keys
  503. );
  504. }
  505. if (enumerable_symbols(thing).length > 0) {
  506. throw new DevalueError(
  507. `Cannot stringify POJOs with symbolic keys`,
  508. keys
  509. );
  510. }
  511. if (Object.getPrototypeOf(thing) === null) {
  512. str = '["null"';
  513. for (const key in thing) {
  514. keys.push(stringify_key(key));
  515. str += `,${stringify_string(key)},${flatten(thing[key])}`;
  516. keys.pop();
  517. }
  518. str += ']';
  519. } else {
  520. str = '{';
  521. let started = false;
  522. for (const key in thing) {
  523. if (started) str += ',';
  524. started = true;
  525. keys.push(stringify_key(key));
  526. str += `${stringify_string(key)}:${flatten(thing[key])}`;
  527. keys.pop();
  528. }
  529. str += '}';
  530. }
  531. }
  532. }
  533. stringified[index] = str;
  534. return index;
  535. }
  536. const index = flatten(value);
  537. // special case — value is represented as a negative index
  538. if (index < 0) return `${index}`;
  539. return `[${stringified.join(',')}]`;
  540. }
  541. /**
  542. * @param {any} thing
  543. * @returns {string}
  544. */
  545. function stringify_primitive(thing) {
  546. const type = typeof thing;
  547. if (type === 'string') return stringify_string(thing);
  548. if (thing instanceof String) return stringify_string(thing.toString());
  549. if (thing === void 0) return UNDEFINED.toString();
  550. if (thing === 0 && 1 / thing < 0) return NEGATIVE_ZERO.toString();
  551. if (type === 'bigint') return `["BigInt","${thing}"]`;
  552. return String(thing);
  553. }
  554. const ACTION_QUERY_PARAMS$1 = {
  555. actionName: "_action"};
  556. const ACTION_RPC_ROUTE_PATTERN = "/_actions/[...path]";
  557. const __vite_import_meta_env__ = {"ASSETS_PREFIX": undefined, "BASE_URL": "/", "DEV": false, "MODE": "production", "PROD": true, "SITE": undefined, "SSR": true};
  558. const ACTION_QUERY_PARAMS = ACTION_QUERY_PARAMS$1;
  559. const codeToStatusMap = {
  560. // Implemented from IANA HTTP Status Code Registry
  561. // https://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml
  562. BAD_REQUEST: 400,
  563. UNAUTHORIZED: 401,
  564. PAYMENT_REQUIRED: 402,
  565. FORBIDDEN: 403,
  566. NOT_FOUND: 404,
  567. METHOD_NOT_ALLOWED: 405,
  568. NOT_ACCEPTABLE: 406,
  569. PROXY_AUTHENTICATION_REQUIRED: 407,
  570. REQUEST_TIMEOUT: 408,
  571. CONFLICT: 409,
  572. GONE: 410,
  573. LENGTH_REQUIRED: 411,
  574. PRECONDITION_FAILED: 412,
  575. CONTENT_TOO_LARGE: 413,
  576. URI_TOO_LONG: 414,
  577. UNSUPPORTED_MEDIA_TYPE: 415,
  578. RANGE_NOT_SATISFIABLE: 416,
  579. EXPECTATION_FAILED: 417,
  580. MISDIRECTED_REQUEST: 421,
  581. UNPROCESSABLE_CONTENT: 422,
  582. LOCKED: 423,
  583. FAILED_DEPENDENCY: 424,
  584. TOO_EARLY: 425,
  585. UPGRADE_REQUIRED: 426,
  586. PRECONDITION_REQUIRED: 428,
  587. TOO_MANY_REQUESTS: 429,
  588. REQUEST_HEADER_FIELDS_TOO_LARGE: 431,
  589. UNAVAILABLE_FOR_LEGAL_REASONS: 451,
  590. INTERNAL_SERVER_ERROR: 500,
  591. NOT_IMPLEMENTED: 501,
  592. BAD_GATEWAY: 502,
  593. SERVICE_UNAVAILABLE: 503,
  594. GATEWAY_TIMEOUT: 504,
  595. HTTP_VERSION_NOT_SUPPORTED: 505,
  596. VARIANT_ALSO_NEGOTIATES: 506,
  597. INSUFFICIENT_STORAGE: 507,
  598. LOOP_DETECTED: 508,
  599. NETWORK_AUTHENTICATION_REQUIRED: 511
  600. };
  601. const statusToCodeMap = Object.entries(codeToStatusMap).reduce(
  602. // reverse the key-value pairs
  603. (acc, [key, value]) => ({ ...acc, [value]: key }),
  604. {}
  605. );
  606. class ActionError extends Error {
  607. type = "AstroActionError";
  608. code = "INTERNAL_SERVER_ERROR";
  609. status = 500;
  610. constructor(params) {
  611. super(params.message);
  612. this.code = params.code;
  613. this.status = ActionError.codeToStatus(params.code);
  614. if (params.stack) {
  615. this.stack = params.stack;
  616. }
  617. }
  618. static codeToStatus(code) {
  619. return codeToStatusMap[code];
  620. }
  621. static statusToCode(status) {
  622. return statusToCodeMap[status] ?? "INTERNAL_SERVER_ERROR";
  623. }
  624. static fromJson(body) {
  625. if (isInputError(body)) {
  626. return new ActionInputError(body.issues);
  627. }
  628. if (isActionError(body)) {
  629. return new ActionError(body);
  630. }
  631. return new ActionError({
  632. code: "INTERNAL_SERVER_ERROR"
  633. });
  634. }
  635. }
  636. function isActionError(error) {
  637. return typeof error === "object" && error != null && "type" in error && error.type === "AstroActionError";
  638. }
  639. function isInputError(error) {
  640. return typeof error === "object" && error != null && "type" in error && error.type === "AstroActionInputError" && "issues" in error && Array.isArray(error.issues);
  641. }
  642. class ActionInputError extends ActionError {
  643. type = "AstroActionInputError";
  644. // We don't expose all ZodError properties.
  645. // Not all properties will serialize from server to client,
  646. // and we don't want to import the full ZodError object into the client.
  647. issues;
  648. fields;
  649. constructor(issues) {
  650. super({
  651. message: `Failed to validate: ${JSON.stringify(issues, null, 2)}`,
  652. code: "BAD_REQUEST"
  653. });
  654. this.issues = issues;
  655. this.fields = {};
  656. for (const issue of issues) {
  657. if (issue.path.length > 0) {
  658. const key = issue.path[0].toString();
  659. this.fields[key] ??= [];
  660. this.fields[key]?.push(issue.message);
  661. }
  662. }
  663. }
  664. }
  665. function getActionQueryString(name) {
  666. const searchParams = new URLSearchParams({ [ACTION_QUERY_PARAMS$1.actionName]: name });
  667. return `?${searchParams.toString()}`;
  668. }
  669. function serializeActionResult(res) {
  670. if (res.error) {
  671. if (Object.assign(__vite_import_meta_env__, { _: process.env._ })?.DEV) {
  672. actionResultErrorStack.set(res.error.stack);
  673. }
  674. let body2;
  675. if (res.error instanceof ActionInputError) {
  676. body2 = {
  677. type: res.error.type,
  678. issues: res.error.issues,
  679. fields: res.error.fields
  680. };
  681. } else {
  682. body2 = {
  683. ...res.error,
  684. message: res.error.message
  685. };
  686. }
  687. return {
  688. type: "error",
  689. status: res.error.status,
  690. contentType: "application/json",
  691. body: JSON.stringify(body2)
  692. };
  693. }
  694. if (res.data === void 0) {
  695. return {
  696. type: "empty",
  697. status: 204
  698. };
  699. }
  700. let body;
  701. try {
  702. body = stringify(res.data, {
  703. // Add support for URL objects
  704. URL: (value) => value instanceof URL && value.href
  705. });
  706. } catch (e) {
  707. let hint = ActionsReturnedInvalidDataError.hint;
  708. if (res.data instanceof Response) {
  709. hint = REDIRECT_STATUS_CODES.includes(res.data.status) ? "If you need to redirect when the action succeeds, trigger a redirect where the action is called. See the Actions guide for server and client redirect examples: https://docs.astro.build/en/guides/actions." : "If you need to return a Response object, try using a server endpoint instead. See https://docs.astro.build/en/guides/endpoints/#server-endpoints-api-routes";
  710. }
  711. throw new AstroError({
  712. ...ActionsReturnedInvalidDataError,
  713. message: ActionsReturnedInvalidDataError.message(String(e)),
  714. hint
  715. });
  716. }
  717. return {
  718. type: "data",
  719. status: 200,
  720. contentType: "application/json+devalue",
  721. body
  722. };
  723. }
  724. function deserializeActionResult(res) {
  725. if (res.type === "error") {
  726. let json;
  727. try {
  728. json = JSON.parse(res.body);
  729. } catch {
  730. return {
  731. data: void 0,
  732. error: new ActionError({
  733. message: res.body,
  734. code: "INTERNAL_SERVER_ERROR"
  735. })
  736. };
  737. }
  738. if (Object.assign(__vite_import_meta_env__, { _: process.env._ })?.PROD) {
  739. return { error: ActionError.fromJson(json), data: void 0 };
  740. } else {
  741. const error = ActionError.fromJson(json);
  742. error.stack = actionResultErrorStack.get();
  743. return {
  744. error,
  745. data: void 0
  746. };
  747. }
  748. }
  749. if (res.type === "empty") {
  750. return { data: void 0, error: void 0 };
  751. }
  752. return {
  753. data: parse(res.body, {
  754. URL: (href) => new URL(href)
  755. }),
  756. error: void 0
  757. };
  758. }
  759. const actionResultErrorStack = /* @__PURE__ */ (function actionResultErrorStackFn() {
  760. let errorStack;
  761. return {
  762. set(stack) {
  763. errorStack = stack;
  764. },
  765. get() {
  766. return errorStack;
  767. }
  768. };
  769. })();
  770. var dist = {};
  771. var hasRequiredDist;
  772. function requireDist () {
  773. if (hasRequiredDist) return dist;
  774. hasRequiredDist = 1;
  775. Object.defineProperty(dist, "__esModule", { value: true });
  776. dist.parse = parse;
  777. dist.serialize = serialize;
  778. /**
  779. * RegExp to match cookie-name in RFC 6265 sec 4.1.1
  780. * This refers out to the obsoleted definition of token in RFC 2616 sec 2.2
  781. * which has been replaced by the token definition in RFC 7230 appendix B.
  782. *
  783. * cookie-name = token
  784. * token = 1*tchar
  785. * tchar = "!" / "#" / "$" / "%" / "&" / "'" /
  786. * "*" / "+" / "-" / "." / "^" / "_" /
  787. * "`" / "|" / "~" / DIGIT / ALPHA
  788. *
  789. * Note: Allowing more characters - https://github.com/jshttp/cookie/issues/191
  790. * Allow same range as cookie value, except `=`, which delimits end of name.
  791. */
  792. const cookieNameRegExp = /^[\u0021-\u003A\u003C\u003E-\u007E]+$/;
  793. /**
  794. * RegExp to match cookie-value in RFC 6265 sec 4.1.1
  795. *
  796. * cookie-value = *cookie-octet / ( DQUOTE *cookie-octet DQUOTE )
  797. * cookie-octet = %x21 / %x23-2B / %x2D-3A / %x3C-5B / %x5D-7E
  798. * ; US-ASCII characters excluding CTLs,
  799. * ; whitespace DQUOTE, comma, semicolon,
  800. * ; and backslash
  801. *
  802. * Allowing more characters: https://github.com/jshttp/cookie/issues/191
  803. * Comma, backslash, and DQUOTE are not part of the parsing algorithm.
  804. */
  805. const cookieValueRegExp = /^[\u0021-\u003A\u003C-\u007E]*$/;
  806. /**
  807. * RegExp to match domain-value in RFC 6265 sec 4.1.1
  808. *
  809. * domain-value = <subdomain>
  810. * ; defined in [RFC1034], Section 3.5, as
  811. * ; enhanced by [RFC1123], Section 2.1
  812. * <subdomain> = <label> | <subdomain> "." <label>
  813. * <label> = <let-dig> [ [ <ldh-str> ] <let-dig> ]
  814. * Labels must be 63 characters or less.
  815. * 'let-dig' not 'letter' in the first char, per RFC1123
  816. * <ldh-str> = <let-dig-hyp> | <let-dig-hyp> <ldh-str>
  817. * <let-dig-hyp> = <let-dig> | "-"
  818. * <let-dig> = <letter> | <digit>
  819. * <letter> = any one of the 52 alphabetic characters A through Z in
  820. * upper case and a through z in lower case
  821. * <digit> = any one of the ten digits 0 through 9
  822. *
  823. * Keep support for leading dot: https://github.com/jshttp/cookie/issues/173
  824. *
  825. * > (Note that a leading %x2E ("."), if present, is ignored even though that
  826. * character is not permitted, but a trailing %x2E ("."), if present, will
  827. * cause the user agent to ignore the attribute.)
  828. */
  829. const domainValueRegExp = /^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i;
  830. /**
  831. * RegExp to match path-value in RFC 6265 sec 4.1.1
  832. *
  833. * path-value = <any CHAR except CTLs or ";">
  834. * CHAR = %x01-7F
  835. * ; defined in RFC 5234 appendix B.1
  836. */
  837. const pathValueRegExp = /^[\u0020-\u003A\u003D-\u007E]*$/;
  838. const __toString = Object.prototype.toString;
  839. const NullObject = /* @__PURE__ */ (() => {
  840. const C = function () { };
  841. C.prototype = Object.create(null);
  842. return C;
  843. })();
  844. /**
  845. * Parse a cookie header.
  846. *
  847. * Parse the given cookie header string into an object
  848. * The object has the various cookies as keys(names) => values
  849. */
  850. function parse(str, options) {
  851. const obj = new NullObject();
  852. const len = str.length;
  853. // RFC 6265 sec 4.1.1, RFC 2616 2.2 defines a cookie name consists of one char minimum, plus '='.
  854. if (len < 2)
  855. return obj;
  856. const dec = options?.decode || decode;
  857. let index = 0;
  858. do {
  859. const eqIdx = str.indexOf("=", index);
  860. if (eqIdx === -1)
  861. break; // No more cookie pairs.
  862. const colonIdx = str.indexOf(";", index);
  863. const endIdx = colonIdx === -1 ? len : colonIdx;
  864. if (eqIdx > endIdx) {
  865. // backtrack on prior semicolon
  866. index = str.lastIndexOf(";", eqIdx - 1) + 1;
  867. continue;
  868. }
  869. const keyStartIdx = startIndex(str, index, eqIdx);
  870. const keyEndIdx = endIndex(str, eqIdx, keyStartIdx);
  871. const key = str.slice(keyStartIdx, keyEndIdx);
  872. // only assign once
  873. if (obj[key] === undefined) {
  874. let valStartIdx = startIndex(str, eqIdx + 1, endIdx);
  875. let valEndIdx = endIndex(str, endIdx, valStartIdx);
  876. const value = dec(str.slice(valStartIdx, valEndIdx));
  877. obj[key] = value;
  878. }
  879. index = endIdx + 1;
  880. } while (index < len);
  881. return obj;
  882. }
  883. function startIndex(str, index, max) {
  884. do {
  885. const code = str.charCodeAt(index);
  886. if (code !== 0x20 /* */ && code !== 0x09 /* \t */)
  887. return index;
  888. } while (++index < max);
  889. return max;
  890. }
  891. function endIndex(str, index, min) {
  892. while (index > min) {
  893. const code = str.charCodeAt(--index);
  894. if (code !== 0x20 /* */ && code !== 0x09 /* \t */)
  895. return index + 1;
  896. }
  897. return min;
  898. }
  899. /**
  900. * Serialize data into a cookie header.
  901. *
  902. * Serialize a name value pair into a cookie string suitable for
  903. * http headers. An optional options object specifies cookie parameters.
  904. *
  905. * serialize('foo', 'bar', { httpOnly: true })
  906. * => "foo=bar; httpOnly"
  907. */
  908. function serialize(name, val, options) {
  909. const enc = options?.encode || encodeURIComponent;
  910. if (!cookieNameRegExp.test(name)) {
  911. throw new TypeError(`argument name is invalid: ${name}`);
  912. }
  913. const value = enc(val);
  914. if (!cookieValueRegExp.test(value)) {
  915. throw new TypeError(`argument val is invalid: ${val}`);
  916. }
  917. let str = name + "=" + value;
  918. if (!options)
  919. return str;
  920. if (options.maxAge !== undefined) {
  921. if (!Number.isInteger(options.maxAge)) {
  922. throw new TypeError(`option maxAge is invalid: ${options.maxAge}`);
  923. }
  924. str += "; Max-Age=" + options.maxAge;
  925. }
  926. if (options.domain) {
  927. if (!domainValueRegExp.test(options.domain)) {
  928. throw new TypeError(`option domain is invalid: ${options.domain}`);
  929. }
  930. str += "; Domain=" + options.domain;
  931. }
  932. if (options.path) {
  933. if (!pathValueRegExp.test(options.path)) {
  934. throw new TypeError(`option path is invalid: ${options.path}`);
  935. }
  936. str += "; Path=" + options.path;
  937. }
  938. if (options.expires) {
  939. if (!isDate(options.expires) ||
  940. !Number.isFinite(options.expires.valueOf())) {
  941. throw new TypeError(`option expires is invalid: ${options.expires}`);
  942. }
  943. str += "; Expires=" + options.expires.toUTCString();
  944. }
  945. if (options.httpOnly) {
  946. str += "; HttpOnly";
  947. }
  948. if (options.secure) {
  949. str += "; Secure";
  950. }
  951. if (options.partitioned) {
  952. str += "; Partitioned";
  953. }
  954. if (options.priority) {
  955. const priority = typeof options.priority === "string"
  956. ? options.priority.toLowerCase()
  957. : undefined;
  958. switch (priority) {
  959. case "low":
  960. str += "; Priority=Low";
  961. break;
  962. case "medium":
  963. str += "; Priority=Medium";
  964. break;
  965. case "high":
  966. str += "; Priority=High";
  967. break;
  968. default:
  969. throw new TypeError(`option priority is invalid: ${options.priority}`);
  970. }
  971. }
  972. if (options.sameSite) {
  973. const sameSite = typeof options.sameSite === "string"
  974. ? options.sameSite.toLowerCase()
  975. : options.sameSite;
  976. switch (sameSite) {
  977. case true:
  978. case "strict":
  979. str += "; SameSite=Strict";
  980. break;
  981. case "lax":
  982. str += "; SameSite=Lax";
  983. break;
  984. case "none":
  985. str += "; SameSite=None";
  986. break;
  987. default:
  988. throw new TypeError(`option sameSite is invalid: ${options.sameSite}`);
  989. }
  990. }
  991. return str;
  992. }
  993. /**
  994. * URL-decode string value. Optimized to skip native call when no %.
  995. */
  996. function decode(str) {
  997. if (str.indexOf("%") === -1)
  998. return str;
  999. try {
  1000. return decodeURIComponent(str);
  1001. }
  1002. catch (e) {
  1003. return str;
  1004. }
  1005. }
  1006. /**
  1007. * Determine if value is a Date.
  1008. */
  1009. function isDate(val) {
  1010. return __toString.call(val) === "[object Date]";
  1011. }
  1012. return dist;
  1013. }
  1014. var distExports = requireDist();
  1015. function template({
  1016. title,
  1017. pathname,
  1018. statusCode = 404,
  1019. tabTitle,
  1020. body
  1021. }) {
  1022. return `<!doctype html>
  1023. <html lang="en">
  1024. <head>
  1025. <meta charset="UTF-8">
  1026. <title>${tabTitle}</title>
  1027. <style>
  1028. :root {
  1029. --gray-10: hsl(258, 7%, 10%);
  1030. --gray-20: hsl(258, 7%, 20%);
  1031. --gray-30: hsl(258, 7%, 30%);
  1032. --gray-40: hsl(258, 7%, 40%);
  1033. --gray-50: hsl(258, 7%, 50%);
  1034. --gray-60: hsl(258, 7%, 60%);
  1035. --gray-70: hsl(258, 7%, 70%);
  1036. --gray-80: hsl(258, 7%, 80%);
  1037. --gray-90: hsl(258, 7%, 90%);
  1038. --black: #13151A;
  1039. --accent-light: #E0CCFA;
  1040. }
  1041. * {
  1042. box-sizing: border-box;
  1043. }
  1044. html {
  1045. background: var(--black);
  1046. color-scheme: dark;
  1047. accent-color: var(--accent-light);
  1048. }
  1049. body {
  1050. background-color: var(--gray-10);
  1051. color: var(--gray-80);
  1052. font-family: ui-monospace, Menlo, Monaco, "Cascadia Mono", "Segoe UI Mono", "Roboto Mono", "Oxygen Mono", "Ubuntu Monospace", "Source Code Pro", "Fira Mono", "Droid Sans Mono", "Courier New", monospace;
  1053. line-height: 1.5;
  1054. margin: 0;
  1055. }
  1056. a {
  1057. color: var(--accent-light);
  1058. }
  1059. .center {
  1060. display: flex;
  1061. flex-direction: column;
  1062. justify-content: center;
  1063. align-items: center;
  1064. height: 100vh;
  1065. width: 100vw;
  1066. }
  1067. h1 {
  1068. margin-bottom: 8px;
  1069. color: white;
  1070. font-family: system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
  1071. font-weight: 700;
  1072. margin-top: 1rem;
  1073. margin-bottom: 0;
  1074. }
  1075. .statusCode {
  1076. color: var(--accent-light);
  1077. }
  1078. .astro-icon {
  1079. height: 124px;
  1080. width: 124px;
  1081. }
  1082. pre, code {
  1083. padding: 2px 8px;
  1084. background: rgba(0,0,0, 0.25);
  1085. border: 1px solid rgba(255,255,255, 0.25);
  1086. border-radius: 4px;
  1087. font-size: 1.2em;
  1088. margin-top: 0;
  1089. max-width: 60em;
  1090. }
  1091. </style>
  1092. </head>
  1093. <body>
  1094. <main class="center">
  1095. <svg class="astro-icon" xmlns="http://www.w3.org/2000/svg" width="64" height="80" viewBox="0 0 64 80" fill="none"> <path d="M20.5253 67.6322C16.9291 64.3531 15.8793 57.4632 17.3776 52.4717C19.9755 55.6188 23.575 56.6157 27.3035 57.1784C33.0594 58.0468 38.7122 57.722 44.0592 55.0977C44.6709 54.7972 45.2362 54.3978 45.9045 53.9931C46.4062 55.4451 46.5368 56.9109 46.3616 58.4028C45.9355 62.0362 44.1228 64.8429 41.2397 66.9705C40.0868 67.8215 38.8669 68.5822 37.6762 69.3846C34.0181 71.8508 33.0285 74.7426 34.403 78.9491C34.4357 79.0516 34.4649 79.1541 34.5388 79.4042C32.6711 78.5705 31.3069 77.3565 30.2674 75.7604C29.1694 74.0757 28.6471 72.2121 28.6196 70.1957C28.6059 69.2144 28.6059 68.2244 28.4736 67.257C28.1506 64.8985 27.0406 63.8425 24.9496 63.7817C22.8036 63.7192 21.106 65.0426 20.6559 67.1268C20.6215 67.2865 20.5717 67.4446 20.5218 67.6304L20.5253 67.6322Z" fill="white"/> <path d="M20.5253 67.6322C16.9291 64.3531 15.8793 57.4632 17.3776 52.4717C19.9755 55.6188 23.575 56.6157 27.3035 57.1784C33.0594 58.0468 38.7122 57.722 44.0592 55.0977C44.6709 54.7972 45.2362 54.3978 45.9045 53.9931C46.4062 55.4451 46.5368 56.9109 46.3616 58.4028C45.9355 62.0362 44.1228 64.8429 41.2397 66.9705C40.0868 67.8215 38.8669 68.5822 37.6762 69.3846C34.0181 71.8508 33.0285 74.7426 34.403 78.9491C34.4357 79.0516 34.4649 79.1541 34.5388 79.4042C32.6711 78.5705 31.3069 77.3565 30.2674 75.7604C29.1694 74.0757 28.6471 72.2121 28.6196 70.1957C28.6059 69.2144 28.6059 68.2244 28.4736 67.257C28.1506 64.8985 27.0406 63.8425 24.9496 63.7817C22.8036 63.7192 21.106 65.0426 20.6559 67.1268C20.6215 67.2865 20.5717 67.4446 20.5218 67.6304L20.5253 67.6322Z" fill="url(#paint0_linear_738_686)"/> <path d="M0 51.6401C0 51.6401 10.6488 46.4654 21.3274 46.4654L29.3786 21.6102C29.6801 20.4082 30.5602 19.5913 31.5538 19.5913C32.5474 19.5913 33.4275 20.4082 33.7289 21.6102L41.7802 46.4654C54.4274 46.4654 63.1076 51.6401 63.1076 51.6401C63.1076 51.6401 45.0197 2.48776 44.9843 2.38914C44.4652 0.935933 43.5888 0 42.4073 0H20.7022C19.5206 0 18.6796 0.935933 18.1251 2.38914C18.086 2.4859 0 51.6401 0 51.6401Z" fill="white"/> <defs> <linearGradient id="paint0_linear_738_686" x1="31.554" y1="75.4423" x2="39.7462" y2="48.376" gradientUnits="userSpaceOnUse"> <stop stop-color="#D83333"/> <stop offset="1" stop-color="#F041FF"/> </linearGradient> </defs> </svg>
  1096. <h1>${statusCode ? `<span class="statusCode">${statusCode}: </span> ` : ""}<span class="statusMessage">${title}</span></h1>
  1097. ${body || `
  1098. <pre>Path: ${escape(pathname)}</pre>
  1099. `}
  1100. </main>
  1101. </body>
  1102. </html>`;
  1103. }
  1104. const DEFAULT_404_ROUTE = {
  1105. component: DEFAULT_404_COMPONENT,
  1106. generate: () => "",
  1107. params: [],
  1108. pattern: /^\/404\/?$/,
  1109. prerender: false,
  1110. pathname: "/404",
  1111. segments: [[{ content: "404", dynamic: false, spread: false }]],
  1112. type: "page",
  1113. route: "/404",
  1114. fallbackRoutes: [],
  1115. isIndex: false,
  1116. origin: "internal"
  1117. };
  1118. function ensure404Route(manifest) {
  1119. if (!manifest.routes.some((route) => route.route === "/404")) {
  1120. manifest.routes.push(DEFAULT_404_ROUTE);
  1121. }
  1122. return manifest;
  1123. }
  1124. async function default404Page({ pathname }) {
  1125. return new Response(
  1126. template({
  1127. statusCode: 404,
  1128. title: "Not found",
  1129. tabTitle: "404: Not Found",
  1130. pathname
  1131. }),
  1132. { status: 404, headers: { "Content-Type": "text/html" } }
  1133. );
  1134. }
  1135. default404Page.isAstroComponentFactory = true;
  1136. const default404Instance = {
  1137. default: default404Page
  1138. };
  1139. export { ActionError as A, DEFAULT_404_ROUTE as D, deserializeActionResult as a, distExports as b, ACTION_RPC_ROUTE_PATTERN as c, default404Instance as d, ensure404Route as e, ACTION_QUERY_PARAMS as f, getActionQueryString as g, stringify as h, serializeActionResult as s, unflatten as u };