@pablopunk/webr 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. package/LICENSE +661 -0
  2. package/README.md +17 -0
  3. package/bin/webr.mjs +11 -0
  4. package/dist/client/_astro/App.BxlQhLhN.css +1 -0
  5. package/dist/client/_astro/App.CzxEZ_Dw.js +2 -0
  6. package/dist/client/_astro/ClientRouter.astro_astro_type_script_index_0_lang.CTgtIFyY.js +1 -0
  7. package/dist/client/_astro/addon-fit.jgKqzwky.js +1 -0
  8. package/dist/client/_astro/addon-web-links.C9lyQRxI.js +1 -0
  9. package/dist/client/_astro/client.BDkzSRUN.js +1 -0
  10. package/dist/client/_astro/client.Bbg9OBwT.js +1 -0
  11. package/dist/client/_astro/client.CLSsMr2g.js +9 -0
  12. package/dist/client/_astro/jetbrains-mono.CFJaiWaY.woff2 +0 -0
  13. package/dist/client/_astro/symbols-nerd.CEdkKAK8.woff2 +0 -0
  14. package/dist/client/_astro/xterm.B-l5AIf6.js +7 -0
  15. package/dist/client/apple-touch-icon.png +0 -0
  16. package/dist/client/brand-mark.png +0 -0
  17. package/dist/client/favicon-16.png +0 -0
  18. package/dist/client/favicon-32.png +0 -0
  19. package/dist/client/favicon.ico +0 -0
  20. package/dist/client/icon-192.png +0 -0
  21. package/dist/client/icon-512.png +0 -0
  22. package/dist/client/icon-maskable-512.png +0 -0
  23. package/dist/client/manifest.webmanifest +30 -0
  24. package/dist/server/chunks/App_BmsGAwGf.mjs +4314 -0
  25. package/dist/server/chunks/_id__u0ueX6GO.mjs +34 -0
  26. package/dist/server/chunks/_tab__DL6wyr-j.mjs +35 -0
  27. package/dist/server/chunks/_virtual_astro_server-island-manifest_C1Q2srgE.mjs +5 -0
  28. package/dist/server/chunks/_virtual_astro_session-driver_DS5V7T-N.mjs +6 -0
  29. package/dist/server/chunks/compiler_CpXox_xS.mjs +35 -0
  30. package/dist/server/chunks/console_CucE1SwS.mjs +170 -0
  31. package/dist/server/chunks/errors_BgIp4W2B.mjs +383 -0
  32. package/dist/server/chunks/index_DyyPce_k.mjs +22 -0
  33. package/dist/server/chunks/new_G7XChx5p.mjs +33 -0
  34. package/dist/server/chunks/node_BlixNyYV.mjs +1816 -0
  35. package/dist/server/chunks/noop-entrypoint_Z3zFhrGC.mjs +4 -0
  36. package/dist/server/chunks/remote_BxuVLM0r.mjs +169 -0
  37. package/dist/server/chunks/server_DS45LC4q.mjs +2496 -0
  38. package/dist/server/chunks/settings_DLV2Js3e.mjs +31 -0
  39. package/dist/server/chunks/sharp_CgNvPCpY.mjs +152 -0
  40. package/dist/server/chunks/vnode-children_CRmaSs5G.mjs +24 -0
  41. package/dist/server/entry.mjs +5837 -0
  42. package/dist/server/virtual_astro_middleware.mjs +4 -0
  43. package/drizzle/0000_gateway.sql +13 -0
  44. package/drizzle/0001_device_sessions.sql +9 -0
  45. package/drizzle/0002_audit_events.sql +7 -0
  46. package/drizzle/meta/_journal.json +1 -0
  47. package/package.json +88 -0
  48. package/server/cli.ts +93 -0
  49. package/server/command.ts +9 -0
  50. package/server/entry.ts +3 -0
  51. package/server/herdr-check.ts +37 -0
  52. package/server/home.ts +4 -0
  53. package/server/log-file.ts +52 -0
  54. package/server/package-info.ts +6 -0
  55. package/server/plugin/config.ts +14 -0
  56. package/server/plugin/dev.ts +27 -0
  57. package/server/plugin/files.ts +10 -0
  58. package/server/plugin/herdr.ts +33 -0
  59. package/server/plugin/index.ts +68 -0
  60. package/server/plugin/probe.ts +17 -0
  61. package/server/plugin/stop.ts +39 -0
  62. package/server/port.ts +8 -0
  63. package/server/run.ts +35 -0
  64. package/server/ssr.ts +23 -0
  65. package/server/start.ts +5 -0
  66. package/server/update/hint.ts +26 -0
  67. package/server/update/index.ts +33 -0
  68. package/server/update/latest.ts +33 -0
  69. package/server/update/package-manager.ts +24 -0
  70. package/server/update/versions.ts +15 -0
  71. package/src/lib/avatars.ts +15 -0
  72. package/src/lib/launch.ts +16 -0
  73. package/src/lib/machines.ts +41 -0
  74. package/src/lib/mock-store.ts +82 -0
  75. package/src/lib/models.ts +139 -0
  76. package/src/lib/project-icons.ts +120 -0
  77. package/src/lib/terminal-split.ts +23 -0
  78. package/src/lib/uuid.ts +10 -0
  79. package/src/server/auth/access.ts +22 -0
  80. package/src/server/auth/audit.ts +15 -0
  81. package/src/server/auth/auth.ts +134 -0
  82. package/src/server/auth/pair-page.ts +85 -0
  83. package/src/server/auth/pairing.ts +91 -0
  84. package/src/server/auth/presence.ts +8 -0
  85. package/src/server/auth/sessions.ts +48 -0
  86. package/src/server/directories.ts +21 -0
  87. package/src/server/dist.ts +3 -0
  88. package/src/server/host.ts +166 -0
  89. package/src/server/perf-log.ts +23 -0
  90. package/src/server/protocol/deadlines.ts +24 -0
  91. package/src/server/protocol/native.ts +10 -0
  92. package/src/server/protocol/ndjson.ts +22 -0
  93. package/src/server/protocol/socket.ts +81 -0
  94. package/src/server/protocol/validate.ts +17 -0
  95. package/src/server/public-urls.ts +17 -0
  96. package/src/server/runtime/herdr-actions.ts +122 -0
  97. package/src/server/runtime/launch.ts +55 -0
  98. package/src/server/runtime/manager.ts +187 -0
  99. package/src/server/runtime/reconcile.ts +51 -0
  100. package/src/server/runtime/supervisor.ts +92 -0
  101. package/src/server/runtime/target.ts +37 -0
  102. package/src/server/runtime/workspace.ts +24 -0
  103. package/src/server/storage/database.ts +88 -0
  104. package/src/server/storage/drizzle-node-sqlite.ts +18 -0
  105. package/src/server/storage/node-sqlite-client.ts +44 -0
  106. package/src/server/storage/schema.ts +25 -0
  107. package/src/server/tailscale-host.ts +17 -0
  108. package/src/server/terminal/cli.ts +44 -0
  109. package/src/server/terminal/hub.ts +140 -0
  110. package/src/server/terminal/writer.ts +38 -0
  111. package/src/server/transport/herdr-target.ts +148 -0
  112. package/src/server/transport/icons.ts +65 -0
  113. package/src/server/transport/identity.ts +5 -0
  114. package/src/server/transport/local-session.ts +65 -0
  115. package/src/server/transport/model-discovery.ts +18 -0
  116. package/src/server/transport/native-locations.ts +17 -0
  117. package/src/server/transport/process.ts +21 -0
  118. package/src/server/transport/registry.ts +27 -0
  119. package/src/server/transport/ssh.ts +47 -0
  120. package/src/server/uploads.ts +40 -0
  121. package/src/server/websockets.ts +62 -0
  122. package/src/shared/agent-kinds.ts +4 -0
  123. package/src/shared/frame.ts +38 -0
  124. package/src/shared/projects.ts +1 -0
  125. package/src/shared/retry.ts +1 -0
  126. package/src/shared/runtime.ts +33 -0
@@ -0,0 +1 @@
1
+ import{n as e,r as t,t as n}from"./client.Bbg9OBwT.js";var r=new Set,i=new WeakSet,a=void 0,o=void 0,s=!1;function c(e){s||(s=!0,a??=e?.prefetchAll??!1,o??=e?.defaultStrategy??`hover`,l(),u(),d(),p())}function l(){for(let e of[`touchstart`,`mousedown`])document.addEventListener(e,e=>{let t=e.target.closest(`a`);g(t,`tap`)&&m(t.href,{ignoreSlowConnection:!0})},{passive:!0})}function u(){let e;document.body.addEventListener(`focusin`,e=>{let n=e.target.closest(`a`);g(n,`hover`)&&t(n.href)},{passive:!0}),document.body.addEventListener(`focusout`,n,{passive:!0}),v(()=>{for(let e of document.getElementsByTagName(`a`))i.has(e)||g(e,`hover`)&&(i.add(e),e.addEventListener(`mouseenter`,e=>t(e.currentTarget.href),{passive:!0}),e.addEventListener(`mouseleave`,n,{passive:!0}))});function t(t){e&&clearTimeout(e),e=setTimeout(()=>{m(t)},80)}function n(){e&&=(clearTimeout(e),0)}}function d(){let e;v(()=>{for(let t of document.getElementsByTagName(`a`))i.has(t)||g(t,`viewport`)&&(i.add(t),e??=f(),e.observe(t))})}function f(){let e=new WeakMap;return new IntersectionObserver((t,n)=>{for(let r of t){let t=r.target,i=e.get(t);r.isIntersecting?(i&&clearTimeout(i),e.set(t,setTimeout(()=>{n.unobserve(t),e.delete(t),m(t.href)},300))):i&&(clearTimeout(i),e.delete(t))}})}function p(){v(()=>{for(let e of document.getElementsByTagName(`a`))g(e,`load`)&&m(e.href)})}function m(e,n){e=e.replace(/#.*/,``);let i=n?.ignoreSlowConnection??!1;if(h(e,i)){if(r.add(e),document.createElement(`link`).relList?.supports?.(`prefetch`)){let t=document.createElement(`link`);t.rel=`prefetch`,t.setAttribute(`href`,e),document.head.append(t)}else{let n=new Headers;for(let[e,r]of Object.entries(t))n.set(e,r);fetch(e,{priority:`low`,headers:n}).catch(()=>{})}}}function h(e,t){if(!navigator.onLine||!t&&_())return!1;try{let t=new URL(e,location.href);return location.origin===t.origin&&(location.pathname!==t.pathname||location.search!==t.search)&&!r.has(e)}catch{}return!1}function g(e,t){if(e?.tagName!==`A`)return!1;let n=e.dataset.astroPrefetch;return n===`false`?!1:t===`tap`&&(n!=null||a)&&_()?!0:n==null&&a||n===``?t===o:n===t}function _(){if(`connection`in navigator){let e=navigator.connection;return e.saveData||/2g/.test(e.effectiveType)}return!1}function v(e){e();let t=!1;document.addEventListener(`astro:page-load`,()=>{if(!t){t=!0;return}e()}),new MutationObserver(t=>{for(let n of t)for(let t of n.addedNodes)if(t instanceof Element&&(t.tagName===`A`||t.querySelector?.(`a`))){e();return}}).observe(document.body,{childList:!0,subtree:!0})}var y=null;function b(){let e=document.querySelector(`[name="astro-view-transitions-fallback"]`);return e?e.getAttribute(`content`):`animate`}function x(e){return e.dataset.astroReload!==void 0}var S=e=>e.button&&e.button!==0||e.metaKey||e.ctrlKey||e.altKey||e.shiftKey;(e||b()!==`none`)&&(document.addEventListener(`click`,e=>{let t=e.target;if(y=S(e)?t:null,e.composed&&(t=e.composedPath()[0]),t instanceof Element&&(t=t.closest(`a, area`)),!(t instanceof HTMLAnchorElement)&&!(t instanceof SVGAElement)&&!(t instanceof HTMLAreaElement))return;let r=t instanceof HTMLElement?t.target:t.target.baseVal,i=t instanceof HTMLElement?t.href:t.href.baseVal,a=new URL(i,location.href).origin;x(t)||t.hasAttribute(`download`)||!t.href||r&&r!==`_self`||a!==location.origin||y||e.defaultPrevented||(e.preventDefault(),n(i,{history:t.dataset.astroHistory===`replace`?`replace`:`auto`,sourceElement:t}))}),document.addEventListener(`submit`,e=>{let t=e.target,r=e.submitter,i=r&&r===y;if(y=null,t.tagName!==`FORM`||e.defaultPrevented||x(t)||i)return;let a=t,o=new FormData(a,r),s=typeof a.action==`string`?a.action:a.getAttribute(`action`),c=typeof a.method==`string`?a.method:a.getAttribute(`method`),l=r?.getAttribute(`formaction`)??s??location.pathname,u=r?.getAttribute(`formmethod`)??c??`get`;if(u===`dialog`||location.origin!==new URL(l,location.href).origin)return;let d={sourceElement:r??a};if(u===`get`){let e=new URLSearchParams(o),t=new URL(l);t.search=e.toString(),l=t.toString()}else d.formData=o;e.preventDefault(),n(l,d)}),c({prefetchAll:!0}));
@@ -0,0 +1 @@
1
+ import{i as e}from"./client.CLSsMr2g.js";var t=e(((e,t)=>{(function(n,r){typeof e==`object`&&typeof t==`object`?t.exports=r():typeof define==`function`&&define.amd?define([],r):typeof e==`object`?e.FitAddon=r():n.FitAddon=r()})(self,(()=>(()=>{var e={};return(()=>{var t=e;Object.defineProperty(t,"__esModule",{value:!0}),t.FitAddon=void 0,t.FitAddon=class{activate(e){this._terminal=e}dispose(){}fit(){let e=this.proposeDimensions();if(!e||!this._terminal||isNaN(e.cols)||isNaN(e.rows))return;let t=this._terminal._core;this._terminal.rows===e.rows&&this._terminal.cols===e.cols||(t._renderService.clear(),this._terminal.resize(e.cols,e.rows))}proposeDimensions(){if(!this._terminal||!this._terminal.element||!this._terminal.element.parentElement)return;let e=this._terminal._core,t=e._renderService.dimensions;if(t.css.cell.width===0||t.css.cell.height===0)return;let n=this._terminal.options.scrollback===0?0:e.viewport.scrollBarWidth,r=window.getComputedStyle(this._terminal.element.parentElement),i=parseInt(r.getPropertyValue(`height`)),a=Math.max(0,parseInt(r.getPropertyValue(`width`))),o=window.getComputedStyle(this._terminal.element),s=i-(parseInt(o.getPropertyValue(`padding-top`))+parseInt(o.getPropertyValue(`padding-bottom`))),c=a-(parseInt(o.getPropertyValue(`padding-right`))+parseInt(o.getPropertyValue(`padding-left`)))-n;return{cols:Math.max(2,Math.floor(c/t.css.cell.width)),rows:Math.max(1,Math.floor(s/t.css.cell.height))}}}})(),e})()))}));export default t();
@@ -0,0 +1 @@
1
+ import{i as e}from"./client.CLSsMr2g.js";var t=e(((e,t)=>{(function(n,r){typeof e==`object`&&typeof t==`object`?t.exports=r():typeof define==`function`&&define.amd?define([],r):typeof e==`object`?e.WebLinksAddon=r():n.WebLinksAddon=r()})(self,(()=>(()=>{var e={6:(e,t)=>{function n(e){try{let t=new URL(e),n=t.password&&t.username?`${t.protocol}//${t.username}:${t.password}@${t.host}`:t.username?`${t.protocol}//${t.username}@${t.host}`:`${t.protocol}//${t.host}`;return e.toLocaleLowerCase().startsWith(n.toLocaleLowerCase())}catch{return!1}}Object.defineProperty(t,"__esModule",{value:!0}),t.LinkComputer=t.WebLinkProvider=void 0,t.WebLinkProvider=class{constructor(e,t,n,r={}){this._terminal=e,this._regex=t,this._handler=n,this._options=r}provideLinks(e,t){let n=r.computeLink(e,this._regex,this._terminal,this._handler);t(this._addCallbacks(n))}_addCallbacks(e){return e.map((e=>(e.leave=this._options.leave,e.hover=(t,n)=>{if(this._options.hover){let{range:r}=e;this._options.hover(t,n,r)}},e)))}};class r{static computeLink(e,t,i,a){let o=new RegExp(t.source,(t.flags||``)+`g`),[s,c]=r._getWindowedLineStrings(e-1,i),l=s.join(``),u,d=[];for(;u=o.exec(l);){let e=u[0];if(!n(e))continue;let[t,o]=r._mapStrIdx(i,c,0,u.index),[s,l]=r._mapStrIdx(i,t,o,e.length);if(t===-1||o===-1||s===-1||l===-1)continue;let f={start:{x:o+1,y:t+1},end:{x:l,y:s+1}};d.push({range:f,text:e,activate:a})}return d}static _getWindowedLineStrings(e,t){let n,r=e,i=e,a=0,o=``,s=[];if(n=t.buffer.active.getLine(e)){let e=n.translateToString(!0);if(n.isWrapped&&e[0]!==` `){for(a=0;(n=t.buffer.active.getLine(--r))&&a<2048&&(o=n.translateToString(!0),a+=o.length,s.push(o),n.isWrapped&&o.indexOf(` `)===-1););s.reverse()}for(s.push(e),a=0;(n=t.buffer.active.getLine(++i))&&n.isWrapped&&a<2048&&(o=n.translateToString(!0),a+=o.length,s.push(o),o.indexOf(` `)===-1););}return[s,r]}static _mapStrIdx(e,t,n,r){let i=e.buffer.active,a=i.getNullCell(),o=n;for(;r;){let e=i.getLine(t);if(!e)return[-1,-1];for(let n=o;n<e.length;++n){e.getCell(n,a);let o=a.getChars();if(a.getWidth()&&(r-=o.length||1,n===e.length-1&&o===``)){let e=i.getLine(t+1);e&&e.isWrapped&&(e.getCell(0,a),a.getWidth()===2&&(r+=1))}if(r<0)return[t,n]}t++,o=0}return[t,o]}}t.LinkComputer=r}},t={};function n(r){var i=t[r];if(i!==void 0)return i.exports;var a=t[r]={exports:{}};return e[r](a,a.exports,n),a.exports}var r={};return(()=>{var e=r;Object.defineProperty(e,"__esModule",{value:!0}),e.WebLinksAddon=void 0;let t=n(6),i=/(https?|HTTPS?):[/]{2}[^\s"'!*(){}|\\\^<>`]*[^\s"':,.!?{}|\\\^~\[\]`()<>]/;function a(e,t){let n=window.open();if(n){try{n.opener=null}catch{}n.location.href=t}else console.warn(`Opening link blocked as opener could not be cleared`)}e.WebLinksAddon=class{constructor(e=a,t={}){this._handler=e,this._options=t}activate(e){this._terminal=e;let n=this._options,r=n.urlRegex||i;this._linkProvider=this._terminal.registerLinkProvider(new t.WebLinkProvider(this._terminal,r,this._handler,n))}dispose(){this._linkProvider?.dispose()}}})(),r})()))}));export default t();
@@ -0,0 +1 @@
1
+ import{a as e,r as t,t as n}from"./client.CLSsMr2g.js";var r=n(),i=e(t(),1),a=(0,i.memo)(({value:e,name:t,hydrate:n=!0})=>e==null||e.trim()===``?null:(0,i.createElement)(n?`astro-slot`:`astro-static-slot`,{name:t,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:e}}),()=>!0);function o(e){for(let t in e)if(t.startsWith(`__reactContainer`))return t}var s={class:`className`,for:`htmlFor`},c=0;function l(e,t,n){t===void 0&&(c+=1,t=c,n=0);let r={};for(let t of e.attributes){let e=s[t.name]||t.name;r[e]=t.value}if(r.key=`${t}-${n}`,e.firstChild===null)return(0,i.createElement)(e.localName,r);let a=0;return(0,i.createElement)(e.localName,r,Array.from(e.childNodes).map(e=>{if(e.nodeType===Node.TEXT_NODE)return e.data;if(e.nodeType===Node.ELEMENT_NODE)return a+=1,l(e,t,a)}).filter(e=>!!e))}function u(e,t){if(t&&e){let t=[],n=document.createElement(`template`);n.innerHTML=e;for(let e of n.content.children)t.push(l(e));return t}if(e)return(0,i.createElement)(a,{value:e})}var d=new WeakMap,f=(e,t)=>{let n=d.get(e);return n||(n=t(),d.set(e,n)),n},p=e=>(t,n,{default:s,...c},{client:l})=>{if(!e.hasAttribute(`ssr`))return;let d=e.getAttribute(`data-action-key`),p=e.getAttribute(`data-action-name`),m=e.getAttribute(`data-action-result`),h=d&&p&&m?[JSON.parse(m),d,p]:void 0,g={identifierPrefix:e.getAttribute(`prefix`),formState:h};for(let[e,t]of Object.entries(c))n[e]=(0,i.createElement)(a,{value:t,name:e});let _=(0,i.createElement)(t,n,u(s,e.hasAttribute(`data-react-children`))),v=o(e);if(v&&delete e[v],l===`only`)return(0,i.startTransition)(()=>{f(e,()=>{let t=(0,r.createRoot)(e);return e.addEventListener(`astro:unmount`,()=>t.unmount(),{once:!0}),t}).render(_)});(0,i.startTransition)(()=>{f(e,()=>{let t=(0,r.hydrateRoot)(e,_,g);return e.addEventListener(`astro:unmount`,()=>t.unmount(),{once:!0}),t}).render(_)})};export{p as default};
@@ -0,0 +1 @@
1
+ var e={},t=`data-astro-transition-persist`,n=[`data-astro-transition`,`data-astro-transition-fallback`],r=new Set;function i(e){let t=e.src?new URL(e.src,location.href).href:e.textContent;return r.has(t)?!0:(r.add(t),!1)}function a(e){for(let t of e.scripts)!t.hasAttribute(`data-astro-rerun`)&&i(t)&&(t.dataset.astroExec=``)}function o(e){let t=document.documentElement,r=[...t.attributes].filter(({name:e})=>(t.removeAttribute(e),n.includes(e)));[...e.documentElement.attributes,...r].forEach(({name:e,value:n})=>t.setAttribute(e,n))}function s(e){let t=(e,t=`both`)=>[...[...e.childNodes].filter(e=>e.nodeType===8&&e.textContent===`[if astro]>server-island-start<![endif]`||t===`both`&&e.nodeType===1)];for(let t of Array.from(document.head.children)){let n=p(t,e);n?n.remove():t.remove()}t(document.head,`commentsOnly`).forEach(e=>e.remove()),document.head.append(...t(e.head))}function c(e,n){let r=[],i=n.ownerDocument.documentElement,a=new Set(n.querySelectorAll(`video, audio`)),o=typeof i.moveBefore==`function`?(e,t,n)=>e.moveBefore(t,n):null;for(let a of n.querySelectorAll(`[${t}]`)){let n=a.getAttribute(t),s=e.querySelector(`[${t}="${n}"]`);s&&(r.push({old:a,newTarget:s}),o?o(i,a,null):i.appendChild(a))}n.replaceWith(e);for(let{old:e,newTarget:t}of r)o?(o(t.parentNode,e,t),t.remove()):t.replaceWith(e),t.localName===`astro-island`&&m(e)&&!h(e,t)&&(e.setAttribute(`ssr`,``),e.setAttribute(`props`,t.getAttribute(`props`)));u(e),l(e,a)}function l(e,t){for(let n of e.querySelectorAll(`video, audio`)){if(t.has(n))continue;let e=document.createElement(n.localName);for(let t of n.attributes)e.setAttribute(t.name,t.value);e.innerHTML=n.innerHTML,n.replaceWith(e)}}function u(e){e.querySelectorAll(`template[shadowrootmode]`).forEach(e=>{let t=e.getAttribute(`shadowrootmode`),n=e.parentNode;if((t===`closed`||t===`open`)&&n instanceof HTMLElement){if(n.shadowRoot){e.remove();return}let r=n.attachShadow({mode:t});r.appendChild(e.content),e.remove(),u(r)}})}var d=()=>{let e=document.activeElement;if(e?.closest(`[${t}]`)){if(e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement){let t=e.selectionStart,n=e.selectionEnd;return()=>f({activeElement:e,start:t,end:n})}return()=>f({activeElement:e})}return()=>f({activeElement:null})},f=({activeElement:e,start:t,end:n})=>{e&&(e.focus(),(e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement)&&(typeof t==`number`&&(e.selectionStart=t),typeof n==`number`&&(e.selectionEnd=n)))},p=(e,n)=>{let r=e.getAttribute(t),i=r&&n.head.querySelector(`[${t}="${r}"]`);if(i)return i;if(e.matches(`link[rel=stylesheet]`)){let t=e.getAttribute(`href`);return n.head.querySelector(`link[rel=stylesheet][href="${t}"]`)}if(e.tagName===`STYLE`&&e.textContent){let t=n.head.querySelectorAll(`style`);for(let n of t)if(n.textContent===e.textContent)return n}if(e.matches(`link[rel=preload][as=font]`)){let t=e.getAttribute(`href`);return n.head.querySelector(`link[rel=preload][as=font][href="${t}"]`)}return null},m=e=>{let t=e.dataset.astroTransitionPersistProps;return t==null||t===`false`},h=(e,t)=>e.getAttribute(`props`)===t.getAttribute(`props`),g=e=>{a(e),o(e),s(e);let t=d();c(e.body,document.body),t()},_=e=>document.dispatchEvent(new Event(e)),v=()=>_(`astro:page-load`),y=class extends Event{from;to;direction;navigationType;sourceElement;info;newDocument;signal;constructor(e,t,n,r,i,a,o,s,c,l){super(e,t),this.from=n,this.to=r,this.direction=i,this.navigationType=a,this.sourceElement=o,this.info=s,this.newDocument=c,this.signal=l,Object.defineProperties(this,{from:{enumerable:!0},to:{enumerable:!0,writable:!0},direction:{enumerable:!0,writable:!0},navigationType:{enumerable:!0},sourceElement:{enumerable:!0},info:{enumerable:!0},newDocument:{enumerable:!0,writable:!0},signal:{enumerable:!0}})}},b=class extends y{formData;loader;constructor(e,t,n,r,i,a,o,s,c,l){super(`astro:before-preparation`,{cancelable:!0},e,t,n,r,i,a,o,s),this.formData=c,this.loader=l.bind(this,this),Object.defineProperties(this,{formData:{enumerable:!0},loader:{enumerable:!0,writable:!0}})}},x=class extends y{direction;viewTransition;swap;constructor(e,t){super(`astro:before-swap`,void 0,e.from,e.to,e.direction,e.navigationType,e.sourceElement,e.info,e.newDocument,e.signal),this.direction=e.direction,this.viewTransition=t,this.swap=()=>g(this.newDocument),Object.defineProperties(this,{direction:{enumerable:!0},viewTransition:{enumerable:!0},swap:{enumerable:!0,writable:!0}})}};async function S(e,t,n,r,i,a,o,s,c){let l=new b(e,t,n,r,i,a,window.document,o,s,c);return document.dispatchEvent(l)&&(await l.loader(),l.defaultPrevented||(_(`astro:after-preparation`),l.navigationType!==`traverse`&&C({scrollX,scrollY}))),l}var C=e=>{history.state&&(history.scrollRestoration=`manual`,history.replaceState({...history.state,...e},``))};async function w(e,t,n){let r=new x(e,t);return document.dispatchEvent(r),n&&await n(),r.swap(),r}var T=!!document.startViewTransition,E=()=>!!document.querySelector(`[name="astro-view-transitions-enabled"]`),D=(e,t)=>e.pathname===t.pathname&&e.search===t.search,O,k,A,j=()=>{let e=document.createElement(`div`);e.setAttribute(`aria-live`,`assertive`),e.setAttribute(`aria-atomic`,`true`),e.className=`astro-route-announcer`,document.body.append(e),setTimeout(()=>{let t=document.title||document.querySelector(`h1`)?.textContent||location.pathname;e.textContent=t},60)},M=`data-astro-transition-persist`,N=`data-astro-transition`,P=`data-astro-transition-fallback`,F,I=0;history.state?(I=history.state.index,scrollTo({left:history.state.scrollX,top:history.state.scrollY})):E()&&(history.replaceState({index:I,scrollX,scrollY},``),history.scrollRestoration=`manual`);async function L(t,n){try{let r=new Headers(n?.headers);for(let[t,n]of Object.entries(e))r.set(t,n);let i=await fetch(t,{...n,headers:r}),a=(i.headers.get(`content-type`)??``).split(`;`,1)[0].trim();return a!==`text/html`&&a!==`application/xhtml+xml`?null:{html:await i.text(),redirected:i.redirected?i.url:void 0,mediaType:a}}catch{return null}}function R(){let e=document.querySelector(`[name="astro-view-transitions-fallback"]`);return e?e.getAttribute(`content`):`animate`}function z(){let e=Promise.resolve(),t=!1;for(let e of document.getElementsByTagName(`script`))e.dataset.astroExec===void 0&&e.getAttribute(`type`)===`module`&&(t=e.getAttribute(`src`)===null);t&&document.body.insertAdjacentHTML(`beforeend`,`<script type="module" src="data:application/javascript,"/>`);for(let t of document.getElementsByTagName(`script`)){if(t.dataset.astroExec===``)continue;let n=t.getAttribute(`type`);if(n&&n!==`module`&&n!==`text/javascript`)continue;let r=document.createElement(`script`);r.innerHTML=t.innerHTML;for(let n of t.attributes){if(n.name===`src`){let t=new Promise(e=>{r.onload=r.onerror=e});e=e.then(()=>t)}r.setAttribute(n.name,n.value)}r.dataset.astroExec=``,t.replaceWith(r)}return e}var B=(e,t,n,r,i)=>{let a=D(t,e),o=document.title;document.title=r;let s=!1;if(e.href!==location.href&&!i){if(n.history===`replace`){let t=history.state;history.replaceState({...n.state,index:t.index,scrollX:t.scrollX,scrollY:t.scrollY},``,e.href)}else history.pushState({...n.state,index:++I,scrollX:0,scrollY:0},``,e.href)}if(document.title=o,A=e,a||(scrollTo({left:0,top:0,behavior:`instant`}),s=!0),i)scrollTo(i.scrollX,i.scrollY);else{if(e.hash){history.scrollRestoration=`auto`;let t=history.state;location.href=e.href,history.state||(history.replaceState(t,``),a&&window.dispatchEvent(new PopStateEvent(`popstate`)))}else s||scrollTo({left:0,top:0,behavior:`instant`});history.scrollRestoration=`manual`}};function V(e){let t=[];for(let n of e.querySelectorAll(`head link[rel=stylesheet]`))if(!document.querySelector(`[${M}="${n.getAttribute(M)}"], link[rel=stylesheet][href="${n.getAttribute(`href`)}"]`)){let e=document.createElement(`link`);e.setAttribute(`rel`,`preload`),e.setAttribute(`as`,`style`),e.setAttribute(`href`,n.getAttribute(`href`)),t.push(new Promise(t=>{[`load`,`error`].forEach(n=>e.addEventListener(n,t)),document.head.append(e)}))}return t}async function H(e,t,n,r,i){async function a(e){function t(e){let t=e.effect;return!t||!(t instanceof KeyframeEffect)||!t.target?!1:window.getComputedStyle(t.target,t.pseudoElement).animationIterationCount===`infinite`}let n=document.getAnimations();document.documentElement.setAttribute(P,e);let r=document.getAnimations().filter(e=>!n.includes(e)&&!t(e));return Promise.allSettled(r.map(e=>e.finished))}let o=async()=>{if(i===`animate`&&!n.transitionSkipped&&!e.signal.aborted)try{await a(`old`)}catch{}},s=document.title,c=await w(e,n.viewTransition,o);B(c.to,c.from,t,s,r),_(`astro:after-swap`),i===`animate`&&!n.transitionSkipped&&!c.signal.aborted?a(`new`).finally(()=>n.viewTransitionFinished()):n.viewTransitionFinished?.()}function U(){return O?.controller.abort(),O={controller:new AbortController}}async function W(e,t,n,r,i,a=!1){let o=U();if(!E()||location.origin!==n.origin){o===O&&(O=void 0),location.href=n.href;return}let s=i?`traverse`:r.history===`replace`?`replace`:`push`;if(s!==`traverse`&&C({scrollX,scrollY}),D(t,n)&&!r.formData&&(e!==`back`&&n.hash||e===`back`&&t.hash)){B(n,t,r,document.title,i),o===O&&(O=void 0);return}let c=await S(t,n,e,s,r.sourceElement,r.info,o.controller.signal,r.formData,l);if(c.defaultPrevented||c.signal.aborted){o===O&&(O=void 0),c.signal.aborted||(location.href=n.href);return}async function l(e){let n=e.to.href,r={signal:e.signal};if(e.formData){r.method=`POST`;let n=e.sourceElement instanceof HTMLFormElement?e.sourceElement:e.sourceElement instanceof HTMLElement&&`form`in e.sourceElement?e.sourceElement.form:e.sourceElement?.closest(`form`);r.body=t!==void 0&&Reflect.get(HTMLFormElement.prototype,`attributes`,n).getNamedItem(`enctype`)?.value===`application/x-www-form-urlencoded`?new URLSearchParams(e.formData):e.formData}let i=await L(n,r);if(i===null){e.preventDefault();return}if(i.redirected){let t=new URL(i.redirected);if(t.origin!==e.to.origin){e.preventDefault();return}let n=e.to.hash;e.to=t,e.to.hash=n}if(F??=new DOMParser,e.newDocument=F.parseFromString(i.html,i.mediaType),e.newDocument.querySelectorAll(`noscript`).forEach(e=>e.remove()),!e.newDocument.querySelector(`[name="astro-view-transitions-enabled"]`)&&!e.formData){e.preventDefault();return}let a=V(e.newDocument);a.length&&!e.signal.aborted&&await Promise.all(a)}async function u(){if(k&&k.viewTransition){try{k.viewTransition.skipTransition()}catch{}try{await k.viewTransition.updateCallbackDone}catch{}}return k={transitionSkipped:!1}}let d=await u();if(c.signal.aborted){o===O&&(O=void 0);return}if(document.documentElement.setAttribute(N,c.direction),T&&!a)d.viewTransition=document.startViewTransition(async()=>await H(c,r,d,i));else{let e=(async()=>{await Promise.resolve(),await H(c,r,d,i,a?`swap`:R())})();d.viewTransition={updateCallbackDone:e,ready:e,finished:new Promise(e=>d.viewTransitionFinished=e),skipTransition:()=>{d.transitionSkipped=!0,document.documentElement.removeAttribute(P)},types:new Set}}d.viewTransition?.updateCallbackDone.finally(async()=>{await z(),v(),j()}),d.viewTransition?.finished.finally(()=>{d.viewTransition=void 0,d===k&&(k=void 0),o===O&&(O=void 0),document.documentElement.removeAttribute(N),document.documentElement.removeAttribute(P)});try{await d.viewTransition?.updateCallbackDone}catch(e){let t=e;console.log(`[astro]`,t.name,t.message,t.stack)}}async function G(e,t){await W(`forward`,A,new URL(e,location.href),t??{})}function K(e){if(!E()&&e.state){location.reload();return}if(e.state===null)return;let t=history.state,n=t.index,r=n>I?`forward`:`back`;I=n,W(r,A,new URL(location.href),{},t,e.hasUAVisualTransition)}var q=()=>{history.state&&(scrollX!==history.state.scrollX||scrollY!==history.state.scrollY)&&C({scrollX,scrollY})};if(T||R()!==`none`){if(A=new URL(location.href),addEventListener(`popstate`,K),addEventListener(`load`,v),`onscrollend`in window)addEventListener(`scrollend`,q);else{let e,t,n,r,i=()=>{if(r!==history.state?.index){clearInterval(e),e=void 0;return}if(t===scrollY&&n===scrollX){clearInterval(e),e=void 0,q();return}t=scrollY,n=scrollX};addEventListener(`scroll`,()=>{e===void 0&&(r=history.state?.index,t=scrollY,n=scrollX,e=window.setInterval(i,50))},{passive:!0})}}for(let e of document.getElementsByTagName(`script`))i(e),e.dataset.astroExec=``;export{T as n,e as r,G as t};