@banou/stub 0.0.24 → 0.0.26
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/build/assets/account-BENsgVNM.js +1 -0
- package/build/assets/account-DlIk6xHa.js +1 -0
- package/build/assets/api-BdTgLphT-N3l6mbjo.js +3 -0
- package/build/assets/api-D1AUDaGk.js +1 -0
- package/build/assets/build-CQLpK1BK.js +1 -0
- package/build/assets/embed-BiH-YCjQ.js +1461 -0
- package/build/assets/index-js0hDSG0.js +2126 -0
- package/build/assets/lib-Co-0V6DV.js +71 -0
- package/build/assets/{lib-account-DncELSPq.js → lib-account-BUymp__o.js} +12 -12
- package/build/assets/lib-account-zcRp2Stn.js +2 -0
- package/build/assets/{lib-api-BdTgLphT-CAZBNIQ5.js → lib-api-BdTgLphT-DSr8Qbeb.js} +353 -367
- package/build/assets/lib-api-MaBk5T3E.js +2 -0
- package/build/assets/{lib-rolldown-runtime-B1bRi_D7.js → lib-rolldown-runtime-Cb76FRpK.js} +2 -2
- package/build/assets/{lib-worker-0qYIS3eh.js → lib-worker-BGozEgr9.js} +148 -140
- package/build/assets/{lib-worker-Cv77f0ZX.js → lib-worker-GYQJyD7j.js} +1 -1
- package/build/assets/lib-worker-index-B4F7kvUH.js +2126 -0
- package/build/assets/main-BmWUQYUk.js +3844 -0
- package/build/assets/main-CSyC6ryz.css +1 -0
- package/build/assets/remote-CVVOdyaq.js +1 -0
- package/build/assets/remote-VQoP8ehb.js +1 -0
- package/build/assets/uri-DvH8-88e.js +1 -0
- package/build/assets/{worker-BCl_Bm_R.js → worker-BwFHZ688.js} +1 -1
- package/build/assets/{worker-BsQDcd-k.js → worker-CT1T8vTt.js} +1 -1
- package/build/embed.html +8 -39
- package/build/index.html +9 -9
- package/build/index.js +2664 -2655
- package/fkn.json +1 -0
- package/package.json +9 -6
- package/build/assets/account-B0kxAr97.js +0 -1
- package/build/assets/account-DjnuxpAV.js +0 -1
- package/build/assets/api-BdTgLphT-QGKmIqNg.js +0 -3
- package/build/assets/api-DsRXk6Ul.js +0 -1
- package/build/assets/build-BuC_lDPE.js +0 -1
- package/build/assets/embed-k24RBb_R.js +0 -1461
- package/build/assets/index-CPsp3E-B.js +0 -1964
- package/build/assets/lib-BqoXHewM.js +0 -71
- package/build/assets/lib-account-cGGxEwWz.js +0 -2
- package/build/assets/lib-api-Bi9f-0mj.js +0 -2
- package/build/assets/lib-worker-index-rcCwnCgE.js +0 -1964
- package/build/assets/main-BOObvcfb.js +0 -3844
- package/build/assets/main-DZ0Ws1xk.css +0 -1
- package/build/assets/remote-CW2xewp5.js +0 -1
- package/build/assets/remote-DNcNpuT3.js +0 -1
- package/build/assets/uri-BYw9k-7q.js +0 -1
package/fkn.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"v":0,"app":"fkn:app:173elff365hgaijng4mufbd4zo6lypfskb3zdd5jkpgd4hj4ovjjq","name":"Stub","version":"0.0.26","key":"iScXi3QXmf9WXSFKHIRV6kxihm7Tmy4YRZe9wCdovuQ=","issuedAt":1790290831,"perSource":["npm:@banou/stub"],"contentsDigest":"X2Hmmn5M97X7k+CcIKcibnp9ETIB9H+sWEnjGsty3iA=","sig":"08+BBDVj95Hnco2iTZVL5ZsrZWItncRTdS9rOqmEyWQ8rCyYI8tmkgR1cJ5NG/B8ICEV0t6moAaFmMvsbSl0BQ==","contents":{"name":"@banou/stub","version":"0.0.26","alg":"sha256","files":{"README.md":"UlRX2sBn1TfnBWbCmOoAbyYQ7jYz5xwO1YmpGLIarsY=","build/assets/account-BENsgVNM.js":"PbF2XQphVQDiv+IMvEHWayBzLQcIbVisNitKf7LUKRc=","build/assets/account-DlIk6xHa.js":"kvGi3mmxLNQu68918zGFh4/LasCiajQA+JyM5sdShV8=","build/assets/anime-index-Jbe1K3rX.js":"GX18NEu4KqVsycGt40uiW2kcHF1A9hXPt/pVKrzdSSk=","build/assets/anime-seasons-CVM0BQGM.js":"L6fZ6Qpvlqr/dhdK1nl3Pa51iq4tVu8U6xchCJ/pO84=","build/assets/api-BdTgLphT-N3l6mbjo.js":"nA/GwqiIfEo8iZViBRljgvek9CiTYPm4H1/8zDcc0+M=","build/assets/api-D1AUDaGk.js":"MxrJh+rnuv7BnT5vfeMvaBOzInV1lNAWfAlp8lbVGMI=","build/assets/build-CQLpK1BK.js":"hKYmEy2EbTZSyHofyGuayYsSf8C1sUd9qWOpP7t6Izs=","build/assets/embed-3a7RYKgR.css":"EuPdgWlK6mGFtnOnlqri0xmDiB/N98ZkSuFJJYccMsY=","build/assets/embed-BiH-YCjQ.js":"yvYkcknyRcIpHvGTD8eDoWQj1prB8eGrTX7cBevz/0g=","build/assets/frizbee_wasm_bg-FO8dlm9E.wasm":"EbPVSEfqpLjbbYlJez4oFXWj1pxftV//IJXVMjMkxWY=","build/assets/index-js0hDSG0.js":"ZOU1zYGlFXoa0PgCcED9qjk6+IXIdoMvFWpxZ0HrUuQ=","build/assets/lib-Co-0V6DV.js":"kLyxawuYo1Yzho30NqR0fkHsolPkuG6dqD7AfLz+kRk=","build/assets/lib-account-BUymp__o.js":"yk6bInNSavi4xlRtma88xGYB/IEcv60wiBpFMRitX2Y=","build/assets/lib-account-zcRp2Stn.js":"xk2UhjaTqgM8UTwc3HOunRM4OI4BZTlQGZxrT0PX0mI=","build/assets/lib-api-BdTgLphT-DSr8Qbeb.js":"AJd+XLy+RGkJwK8uSy4Au2hxm7CYVrVlaArWhWEm+MY=","build/assets/lib-api-MaBk5T3E.js":"obSevyER55x2zJTBb/+xCbJKVgruGscNe5KLCXIpCBo=","build/assets/lib-rolldown-runtime-Cb76FRpK.js":"rbkB5HPusB8/kdOGAO86YoXaWoUoORGeUbc7DQ1plYk=","build/assets/lib-worker-BGozEgr9.js":"TAhfD4CJYI1A9/R6slyidpmJAi5aX7aM8Rv6T6TGrgE=","build/assets/lib-worker-GYQJyD7j.js":"jOWSaLKtxOcMAFNmePGgDd0NXxGK9a3FChGVmZaySjM=","build/assets/lib-worker-anime-index-Jbe1K3rX.js":"GX18NEu4KqVsycGt40uiW2kcHF1A9hXPt/pVKrzdSSk=","build/assets/lib-worker-anime-seasons-CVM0BQGM.js":"L6fZ6Qpvlqr/dhdK1nl3Pa51iq4tVu8U6xchCJ/pO84=","build/assets/lib-worker-index-B4F7kvUH.js":"D0uxX32h8McnLytvmANlLYTtYx7jd/BxH5z7ZhC8gpk=","build/assets/main-BmWUQYUk.js":"KMQIx0A7JIfjmp+wY+8/2XdjhT4KicpeCO6h/NreHhc=","build/assets/main-CSyC6ryz.css":"u8JE9MBZl8EydceHpj+DhPVqHNH466jU+G+FCb3EJhI=","build/assets/remote-CVVOdyaq.js":"XobfVI+OoMFOw2RnQ+vlkeAv+36pUTcM537KkpoRhig=","build/assets/remote-VQoP8ehb.js":"uaBaVvfl6FtbnoGAwgjtkSQnhj+KoZ+Ks2DxmxSn1Z8=","build/assets/sacha_bg-CNH7LeJ_.wasm":"smWtrIBF7AJr+ZplWM15OF/LhD/8/qI1IA2fVj6hCHM=","build/assets/uri-DvH8-88e.js":"JjOiTM8eMVvzaC8nsLEDbkQt8l1ImaoiUrVdwYzzU5M=","build/assets/worker-BwFHZ688.js":"gQLJWNVurvnB5KXCUgm7aM+ClA49eA2vGdiYdNZLmxc=","build/assets/worker-CT1T8vTt.js":"JdEbae0xpJdLa6ACRlFO4FIoBLoPyhVMiiY180TpwGQ=","build/embed.html":"RZPnZ9PBLfO0psBR1Igris6veXhGhkEFa4cD9+aYX50=","build/index.html":"dtHsPQLwsxyEjD36gmVnq1t9yXdlHRTnVyIJyqr74/4=","build/index.js":"ynAdgr/lQkO7r20vMdZCZYkX+HkUnGfhHfnoA8w5e3I=","package.json":"ikxmIi68DX2oOLQcbkhvf/ebVQBCcTv2BYjxZ8/lLZ8="},"types":{"README.md":"text/markdown","build/assets/account-BENsgVNM.js":"text/javascript","build/assets/account-DlIk6xHa.js":"text/javascript","build/assets/anime-index-Jbe1K3rX.js":"text/javascript","build/assets/anime-seasons-CVM0BQGM.js":"text/javascript","build/assets/api-BdTgLphT-N3l6mbjo.js":"text/javascript","build/assets/api-D1AUDaGk.js":"text/javascript","build/assets/build-CQLpK1BK.js":"text/javascript","build/assets/embed-3a7RYKgR.css":"text/css","build/assets/embed-BiH-YCjQ.js":"text/javascript","build/assets/frizbee_wasm_bg-FO8dlm9E.wasm":"application/wasm","build/assets/index-js0hDSG0.js":"text/javascript","build/assets/lib-Co-0V6DV.js":"text/javascript","build/assets/lib-account-BUymp__o.js":"text/javascript","build/assets/lib-account-zcRp2Stn.js":"text/javascript","build/assets/lib-api-BdTgLphT-DSr8Qbeb.js":"text/javascript","build/assets/lib-api-MaBk5T3E.js":"text/javascript","build/assets/lib-rolldown-runtime-Cb76FRpK.js":"text/javascript","build/assets/lib-worker-BGozEgr9.js":"text/javascript","build/assets/lib-worker-GYQJyD7j.js":"text/javascript","build/assets/lib-worker-anime-index-Jbe1K3rX.js":"text/javascript","build/assets/lib-worker-anime-seasons-CVM0BQGM.js":"text/javascript","build/assets/lib-worker-index-B4F7kvUH.js":"text/javascript","build/assets/main-BmWUQYUk.js":"text/javascript","build/assets/main-CSyC6ryz.css":"text/css","build/assets/remote-CVVOdyaq.js":"text/javascript","build/assets/remote-VQoP8ehb.js":"text/javascript","build/assets/sacha_bg-CNH7LeJ_.wasm":"application/wasm","build/assets/uri-DvH8-88e.js":"text/javascript","build/assets/worker-BwFHZ688.js":"text/javascript","build/assets/worker-CT1T8vTt.js":"text/javascript","build/embed.html":"text/html","build/index.html":"text/html","build/index.js":"text/javascript","package.json":"application/json"}},"keys":{"app":"fkn:app:173elff365hgaijng4mufbd4zo6lypfskb3zdd5jkpgd4hj4ovjjq","serial":1790278160679,"issuedAt":1790278160,"founder":{"kind":"fkn","seed":"f2qit1bapv9x9cvvve101bl0w3"},"signer":"fkn-1","name":"Stub","members":[{"key":"iScXi3QXmf9WXSFKHIRV6kxihm7Tmy4YRZe9wCdovuQ=","since":1790278160}],"sig":"+0lWhiIjTUH2utYkxtt2kQqTdrrG6rMLW4K21SDNAMyDi5RDdIZR+HtJ2S87hYatNUksZA3gQVHLYjJGgSdWAg=="}}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@banou/stub",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.26",
|
|
4
4
|
"keywords": [
|
|
5
5
|
"fkn",
|
|
6
6
|
"fkn-type:app"
|
|
@@ -11,10 +11,12 @@
|
|
|
11
11
|
"url": "git+https://github.com/banou26/stub.git"
|
|
12
12
|
},
|
|
13
13
|
"fkn": {
|
|
14
|
-
"app": "fkn:app:
|
|
14
|
+
"app": "fkn:app:173elff365hgaijng4mufbd4zo6lypfskb3zdd5jkpgd4hj4ovjjq",
|
|
15
|
+
"signed": true
|
|
15
16
|
},
|
|
16
17
|
"files": [
|
|
17
|
-
"build"
|
|
18
|
+
"build",
|
|
19
|
+
"fkn.json"
|
|
18
20
|
],
|
|
19
21
|
"type": "module",
|
|
20
22
|
"main": "build/index.js",
|
|
@@ -95,12 +97,13 @@
|
|
|
95
97
|
"playwright": "^1.54.2",
|
|
96
98
|
"shx": "^0.4.0",
|
|
97
99
|
"typescript": "^7.0.2",
|
|
98
|
-
"vite": "npm:@voidzero-dev/vite-plus-core@0.
|
|
100
|
+
"vite": "npm:@voidzero-dev/vite-plus-core@0.3.3",
|
|
99
101
|
"vite-plugin-node-polyfills": "^0.25.0",
|
|
100
|
-
"vite-plus": "0.
|
|
102
|
+
"vite-plus": "0.3.3"
|
|
101
103
|
},
|
|
102
104
|
"overrides": {
|
|
103
105
|
"lodash": "^4.18.1",
|
|
104
|
-
"vite": "npm:@voidzero-dev/vite-plus-core@0.
|
|
106
|
+
"vite": "npm:@voidzero-dev/vite-plus-core@0.3.3",
|
|
107
|
+
"vitest": "4.1.11"
|
|
105
108
|
}
|
|
106
109
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./account-DjnuxpAV.js";export{e as onChange};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{c as e,i as t,t as n}from"./api-BdTgLphT-QGKmIqNg.js";var r=Object.defineProperty,i=(e,t)=>{let n={};for(var i in e)r(n,i,{get:e[i],enumerable:!0});return t||r(n,Symbol.toStringTag,{value:`Module`}),n},a=i({info:()=>c,login:()=>o,logout:()=>s,onChange:()=>p}),o=async()=>typeof window>`u`?!1:(await t).account.login(location.origin).catch(()=>!1),s=async()=>{typeof window>`u`||await(await t).account.logout().catch(()=>{})},c=async()=>{if(typeof window>`u`)return null;let e=await t.then(e=>e.account.info()).catch(()=>null);return e?{name:e.name,image:e.image,premium:e.premium,premiumUntil:e.premiumUntil?Date.parse(e.premiumUntil):null}:null},l=new Set,u=()=>{for(let e of[...l])try{e()}catch{}},d=0,f=()=>{let t=e();!t||l.size===0||d===t.epoch||(d=t.epoch,Promise.resolve(t.remote.account.onChange(u)).catch(()=>{d===t.epoch&&(d=0)}))};typeof window<`u`&&n(f);var p=async e=>typeof window>`u`?()=>{}:(l.add(e),f(),()=>{l.delete(e)});export{c as a,s as i,p as n,i as o,a as r,o as t};
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import{a as e}from"./build-BuC_lDPE.js";var t=1e4,n=16,r=e=>{let t;try{t=e.contentWindow}catch{return!0}if(!t)return!0;try{let e=t.location.href;return e!==``&&e!==`about:blank`}catch{return!0}},i=(e,i=t)=>new Promise(t=>{if(r(e))return t();let a=()=>{clearInterval(o),clearTimeout(s),e.removeEventListener(`load`,a),t()},o=setInterval(()=>{r(e)&&a()},n),s=setTimeout(a,i);e.addEventListener(`load`,a)}),a=32,o=8,s=120,c=typeof CSS<`u`&&CSS.supports(`clip-path`,`path('M0 0H1V1H0Z')`),l=typeof CSS<`u`&&CSS.supports(`clip-path`,`polygon(nonzero, 0px 0px, 1px 0px, 1px 1px)`),u=e=>{let t=e.style;t.setProperty(`display`,`block`,`important`),t.setProperty(`position`,`fixed`,`important`),t.setProperty(`top`,`0`,`important`),t.setProperty(`left`,`0`,`important`),t.setProperty(`width`,`100%`,`important`),t.setProperty(`height`,`100%`,`important`),t.setProperty(`border`,`none`,`important`),t.setProperty(`padding`,`0`,`important`),t.setProperty(`box-sizing`,`border-box`,`important`),t.setProperty(`clip-path`,`inset(100%)`,`important`),t.setProperty(`background`,`transparent`),t.setProperty(`color-scheme`,`normal`),t.setProperty(`z-index`,`2147483647`),e.setAttribute(`title`,`FKN`)},d=({x:e,y:t,width:n,height:r,radius:i})=>{if(!i)return`M${e} ${t}h${n}v${r}h${-n}Z`;let a=Math.min(n,r)/2,[o,s,c,l]=i.map(e=>Math.max(0,Math.min(e,a)));return`M${e+o} ${t}h${n-o-s}a${s} ${s} 0 0 1 ${s} ${s}v${r-s-c}a${c} ${c} 0 0 1 ${-c} ${c}h${-(n-c-l)}a${l} ${l} 0 0 1 ${-l} ${-l}v${-(r-l-o)}a${o} ${o} 0 0 1 ${o} ${-o}Z`},f=()=>c&&l,p=({x:e,y:t,width:n,height:r})=>[[e,t],[e+n,t],[e+n,t+r],[e,t+r],[e,t]],ee=e=>{let t=e[0];if(!t)return[];let n=p(t)[0],r=[];return e.forEach((t,i)=>{r.push(...p(t)),i>0&&i<e.length-1&&r.push(n)}),r},m=e=>`polygon(nonzero, ${ee(e).map(([e,t])=>`${e}px ${t}px`).join(`, `)})`,h=({x:e,y:t,width:n,height:r,radius:i},a)=>{let o=`${t}px ${a.width-e-n}px ${a.height-t-r}px ${e}px`;return i?`inset(${o} round ${i.map(e=>`${e}px`).join(` `)})`:`inset(${o})`},g=(e,t,n)=>{if(t)return`none`;if(e.length===0)return`inset(100%)`;let r=e.length===1?e[0]:void 0;return r?h(r,n):l&&e.length<=5&&!e.some(e=>e.radius)?m(e):`path('${e.map(d).join(``)}')`},_=e=>{if(e.length<2)return null;let t=Math.min(...e.map(e=>e.x)),n=Math.min(...e.map(e=>e.y));return{x:t,y:n,width:Math.max(...e.map(e=>e.x+e.width))-t,height:Math.max(...e.map(e=>e.y+e.height))-n}},te=(e,t,n)=>t>=e.x&&t<e.x+e.width&&n>=e.y&&n<e.y+e.height,ne=16,v=(e,t,n)=>t===1?e*ne:t===2?e*n:e,y=(e,t,n)=>{let r=getComputedStyle(e);return n!==0&&/auto|scroll/.test(r.overflowY)&&e.scrollHeight>e.clientHeight?!0:t!==0&&/auto|scroll/.test(r.overflowX)&&e.scrollWidth>e.clientWidth},re=(e,t,n)=>{for(let r=e;r;r=r.parentElement)if(y(r,t,n))return r;return document.scrollingElement},b=null,x=null,S=e=>({width:e.offsetWidth||window.innerWidth,height:e.offsetHeight||window.innerHeight}),C=e=>{if(!x||!b||!te(x,e.clientX,e.clientY))return;let t=document.elementFromPoint(e.clientX,e.clientY);if(!t||t===b)return;let n=v(e.deltaX,e.deltaMode,window.innerWidth),r=v(e.deltaY,e.deltaMode,window.innerHeight),i=re(t,n,r);i&&(i.scrollBy({left:n,top:r,behavior:`instant`}),e.cancelable&&e.preventDefault())},ie=e=>{let t=x!==null;x=e,t!==(e!==null)&&(e?window.addEventListener(`wheel`,C,{capture:!0,passive:!1}):window.removeEventListener(`wheel`,C,{capture:!0}))},w=0,ae=e=>{if(e===w)return;w=e;let t=document.documentElement.style;e>0?(t.setProperty(`margin-top`,`${e}px`,`important`),t.setProperty(`--fkn-inset-top`,`${e}px`)):(t.removeProperty(`margin-top`),t.removeProperty(`--fkn-inset-top`))},T=(e,{modal:t,rects:n,inset:r},i)=>{if(ae(r),!c){let r=t||n.length>0;e.style.setProperty(`pointer-events`,r?`auto`:`none`,`important`),e.style.setProperty(`visibility`,r?`visible`:`hidden`,`important`);return}let a=g(n,t,i),o=a===`none`||CSS.supports(`clip-path`,a)?a:`inset(100%)`;e.style.setProperty(`clip-path`,o,`important`),ie(t||o!==a?null:_(n))},oe=e=>{if(typeof e!=`object`||!e)return 0;let{top:t}=e;return typeof t!=`number`||!Number.isFinite(t)||t<=0?0:Math.min(Math.round(t),s)},se=e=>{if(!(!Array.isArray(e)||e.length!==4)&&e.every(e=>typeof e==`number`&&Number.isFinite(e)&&e>=0))return e.some(e=>e>0)?e:void 0},ce=(e,t)=>{if(typeof e!=`object`||!e)return null;let{x:n,y:r,width:i,height:a}=e;if(![n,r,i,a].every(e=>typeof e==`number`&&Number.isFinite(e)))return null;let o=t.width,s=t.height,c=Math.max(0,Math.min(Math.round(n),o)),l=Math.max(0,Math.min(Math.round(r),s)),u=Math.max(c,Math.min(Math.round(n+i),o)),d=Math.max(l,Math.min(Math.round(r+a),s)),f=se(e.radius);return{x:c,y:l,width:u-c,height:d-l,...f?{radius:f}:{}}},E={"not-rendered":`this page is not painting it at all, so it or an ancestor is display:none, or the frame was moved out of the layout`,clipped:`it is clipped away or positioned outside the viewport`,"not-shown":`it is rendered but would not be seen, so either something is drawn over it, or it or an ancestor has opacity below 1, visibility:hidden, or a filter`},le=e=>Array.isArray(e)?e.slice(0,o).flatMap(e=>{if(typeof e!=`object`||!e)return[];let{kind:t,cause:n,level:r}=e;return typeof t!=`string`||t.length>40||typeof n!=`string`||!(n in E)||r!==`full`&&r!==`liveness`?[]:[{kind:t,cause:n,level:r}]}):[],D=new Set,ue=e=>{for(let{kind:t,cause:n,level:r}of e)D.has(t)||(D.add(t),console.error(`[FKN] The FKN ${JSON.stringify(t)} is not visible on this page: ${E[n]}. Nobody using this page can see or answer it.
|
|
2
|
-
@fkn/lib draws its UI inside <iframe title="FKN"> and sets display, position, top, left, width, height, border, padding, box-sizing, clip-path and z-index on that element. Leave those as they are, then check for an ancestor with opacity, visibility, display or a clipping transform, and for an element stacked above it.`+(r===`liveness`?`
|
|
3
|
-
This browser reports limited detail, so the cause above is a best guess.`:``)))},O=(e,t)=>{if(typeof e!=`object`||!e)return null;let n=e,r=(Array.isArray(n.rects)?n.rects.slice(0,a):[]).map(e=>ce(e,t)).filter(e=>e!==null&&e.width>0&&e.height>0);return{modal:n.modal===!0,rects:r,hidden:le(n.hidden),inset:oe(n.inset)}},k=()=>b!==null,A=null,j=null,M=()=>{if(!b||A===null)return;let e=S(b),t=O(A,e);t&&T(b,t,e)},N=e=>{typeof ResizeObserver>`u`||(j??=new ResizeObserver(M),j.disconnect(),j.observe(e))},P=e=>{u(e),T(e,{modal:!1,rects:[],hidden:[],inset:0},S(e)),b=e,N(e)},F=e=>{if(!b)return;let t=S(b),n=O(e,t);n&&(A=e,T(b,n,t),ue(n.hidden))},I=[`fkn.app`,`fkn.dev`,`sdbx.app`],L=e=>e.replace(/\.+$/,``),R=e=>{let t=L(e);return I.some(e=>t===e||t.endsWith(`.${e}`))},z=e=>{let t=typeof e==`string`?e:e instanceof URL?e.href:e.url,n;try{n=new URL(t)}catch{return}if(R(n.hostname))throw Error(`fetch refuses FKN platform domains (${n.hostname})`)},B=`autoplay.fullscreen.picture-in-picture.encrypted-media.screen-wake-lock.speaker-selection.captured-surface-control.camera.microphone.display-capture.geolocation.midi.usb.serial.hid.bluetooth.gamepad.keyboard-map.xr-spatial-tracking.accelerometer.gyroscope.magnetometer.ambient-light-sensor.compute-pressure.clipboard-read.clipboard-write.storage-access.window-management.local-fonts.idle-detection.web-share.sync-xhr.unload.payment.publickey-credentials-get.publickey-credentials-create.otp-credentials.identity-credentials-get.digital-credentials-get.local-network.local-network-access.loopback-network`.split(`.`),V=(e=!0)=>[...B,...e?[`cross-origin-isolated`]:[]].join(`; `),H=`https://fkn.app`,U=typeof globalThis<`u`&&globalThis.document?globalThis.document:void 0,W=typeof globalThis<`u`&&globalThis.crossOriginIsolated===!0,G=`${H}/api${W?`?coi=1`:``}`,de=`fkn-api-port`,fe=`fkn-api-port-ack`,pe=2e3,me=()=>{if(!U||typeof window>`u`||window.parent===window)return Promise.resolve(void 0);let e;try{e=window.parent}catch{return Promise.resolve(void 0)}let t=new MessageChannel;return new Promise(n=>{let r=e=>{if(clearTimeout(a),t.port1.removeEventListener(`message`,i),!e)try{t.port1.close()}catch{}n(e)},i=e=>{e.data?.type===fe&&r(t.port1)},a=setTimeout(()=>r(void 0),pe);t.port1.addEventListener(`message`,i),t.port1.start();try{e.postMessage({type:de},H,[t.port2])}catch{r(void 0)}})},K,he=()=>{if(K||!U)return K;let e=U.querySelector(`iframe[src="${G}"]`);if(e)K=e;else{let e=U.createElement(`iframe`);e.setAttribute(`allow`,V(W)),e.src=G,U.body.appendChild(e),K=e}return P(K),K},q=(async()=>{if(!U)return;let e=await me();if(e)return{receive:e,emit:e};let t=he();if(!t)return;await i(t);let n=t.contentWindow;return n?{receive:window,emit:n}:void 0})(),ge=e=>{let t,n=()=>{},r=new Promise(e=>{n=e}),i=new Set,a=new Set,o=0,s=0;(async()=>{for await(let r of e){let e=(t?.epoch??0)+1;t={remote:r,epoch:e},e===1&&n(r);let o=[...a];a.clear();let s=Error(`FKN: the broker was replaced while this call was pending; retry it`);for(let e of o)try{e(s)}catch{}for(let t of[...i])try{t(r,e)}catch{}}})().catch(()=>{});let c=async(e,n)=>{let i=t?.remote??await r;for(let t of e.slice(0,-1))i=i[t];let c=i[e[e.length-1]??``];o=Date.now(),s+=1;let l=()=>{},u=new Promise((e,t)=>{l=t});a.add(l);try{return await Promise.race([Promise.resolve(c.apply(i,n)),u])}finally{--s,a.delete(l),o=Date.now()}},l=new Map,u=e=>{let n=e.join(`\0`),r=l.get(n);if(r)return r;let i=new Proxy(function(){},{get:(n,r)=>{if(typeof r!=`string`||r===`then`)return;let i=t;if(i){let t=i.remote;for(let n of e)t=t?.[n];if(t?.[r]===void 0)return}return u([...e,r])},apply:(t,n,r)=>c(e,r)});return l.set(n,i),i};return{facade:u([]),first:r.then(()=>{}),current:()=>t,onEpoch:e=>{if(i.add(e),t)try{e(t.remote,t.epoch)}catch{}return()=>{i.delete(e)}},lastCall:()=>o,inFlight:()=>s}},_e=typeof window<`u`||typeof self<`u`,ve=async()=>{if(typeof window<`u`)return q;if(typeof self<`u`)return{receive:self,emit:self}},J=ge({async*[Symbol.asyncIterator](){let t=await ve();if(!t){await new Promise(()=>{});return}yield*e({},{key:`fkn-api`,transport:t})}}),Y=J.first.then(()=>J.facade),X=8e3,ye=1e3,Z=!1,Q=class extends Error{constructor(e,t){super(`@fkn/lib: no broker connection within ${t}ms, so ${e} could not be requested`),this.name=`BrokerUnreachableError`}},be=e=>{let t=Z?ye:X;return Promise.race([Y,new Promise((n,r)=>setTimeout(()=>{Z=!0,r(new Q(e,t))},t))])},$=J.onEpoch,xe=J.current;J.lastCall,J.inFlight,$(e=>{k()&&e.overlay.setHost(F,{exactClips:f()}).catch(()=>{})});export{_e as a,xe as c,Y as i,z as l,Q as n,be as o,X as r,q as s,$ as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e,t}from"./api-BdTgLphT-QGKmIqNg.js";export{e as apiPromise,t as onApiEpoch};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e=Object.defineProperty,t=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n||e(r,Symbol.toStringTag,{value:`Module`}),r},n=`__OSRA_KEY__`,r=`__OSRA_DEFAULT_KEY__`,i=`__OSRA_BOX__`,a=()=>globalThis.browser??globalThis.chrome,o=()=>a()?.runtime,s=(e,t)=>ne(e)&&e.__OSRA_KEY__===t,c=(e,t)=>{if(e){if(e.aborted){t();return}e.addEventListener(`abort`,t,{once:!0})}},l=({listener:e,transport:t,remoteName:n,key:i=r,origin:a=`*`,unregisterSignal:o})=>{if(o?.aborted)return;let l=pe(t)?t.receive:t;if(typeof l==`function`){let t=l((t,r)=>{o?.aborted||s(t,i)&&(n&&t.name!==n||e(t,r))});typeof t==`function`&&c(o,t);return}if(T(l)||E(l)||oe(l)||se(l)){let t=(t,r)=>{let a=(t,a)=>{s(t,i)&&(n&&t.name!==n||e(t,{port:r,sender:a}))};t.addListener(a),c(o,()=>t.removeListener(a))};if(T(l))t(l.onMessage);else if(oe(l)){let e=e=>t(e.onMessage,e);l.addListener(e),c(o,()=>l.removeListener(e))}else se(l)?t(l):t(l.onMessage);return}let u=S(l)?l.port:l,d=a!==`*`&&D(l),f=t=>{let r=t.data;if(typeof r==`string`)try{r=JSON.parse(r)}catch{return}s(r,i)&&(n&&r.name!==n||d&&t.origin&&t.origin!==a||e(r,{receiveTransport:l,source:t.source,origin:t.origin}))};u.addEventListener(`message`,f),u instanceof MessagePort&&u.start(),c(o,()=>u.removeEventListener(`message`,f))},u=new WeakSet,d=e=>String(e?.message??e).includes(`disconnected port`),f=(e,t,n=`*`,r=[])=>{let i=pe(e)?e.emit:e;if(typeof i==`function`)i(t,r);else if(D(i))i.postMessage(t,n,r);else if(E(i)){if(u.has(i))return;try{i.postMessage(t)}catch(e){if(!d(e))throw e;u.add(i)}}else if(T(i))i.sendMessage(t)?.catch?.(e=>{if(!String(e?.message).includes(`Receiving end does not exist`))throw e});else if(v(i)){let e=JSON.stringify(t);i.readyState===WebSocket.CONNECTING?i.addEventListener(`open`,()=>i.send(e),{once:!0}):i.send(e)}else S(i)?i.port.postMessage(t,r):i.postMessage(t,r)},p=globalThis.Float16Array,m={Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float16Array:p,Float32Array,Float64Array,BigInt64Array,BigUint64Array},h=Object.values(m),g=e=>{let t=e.constructor.name;if(t in m)return t;for(let[t,n]of Object.entries(m))if(n&&e instanceof n)return t;throw Error(`Unknown typed array type`)},ee=e=>{let t=m[e];if(!t)throw Error(`Unknown typed array type`);return t},_=e=>w(e,h),v=e=>e instanceof WebSocket,y=e=>!!globalThis.ServiceWorkerContainer&&e instanceof ServiceWorkerContainer,b=e=>!!globalThis.ServiceWorker&&e instanceof ServiceWorker,te=e=>!!globalThis.Worker&&e instanceof Worker,x=e=>{let t=globalThis.DedicatedWorkerGlobalScope;return!!t&&e instanceof t},S=e=>!!globalThis.SharedWorker&&e instanceof SharedWorker,C=e=>e instanceof MessagePort,ne=e=>!!e&&typeof e==`object`&&`__OSRA_KEY__`in e&&!!e.__OSRA_KEY__,w=(e,t)=>{if(e===null||typeof e!=`object`&&typeof e!=`function`)return!1;for(let n of t)if(n&&e instanceof n)return!0;return!1},re=e=>w(e,[globalThis.SharedArrayBuffer]),ie=e=>w(e,[globalThis.ArrayBuffer,globalThis.MessagePort,globalThis.ReadableStream,globalThis.WritableStream,globalThis.TransformStream,globalThis.ImageBitmap,globalThis.OffscreenCanvas,globalThis.AudioData,globalThis.VideoFrame,globalThis.MediaSourceHandle,globalThis.MediaStreamTrack,globalThis.MIDIAccess,globalThis.RTCDataChannel,globalThis.WebTransportReceiveStream,globalThis.WebTransportSendStream]),T=e=>{let t=o();return t?e===t:!1},E=(e,t=!1)=>!e||typeof e!=`object`||D(e)||!(`name`in e)||!(`disconnect`in e)||!(`postMessage`in e)?!1:t?`sender`in e&&`onMessage`in e&&`onDisconnect`in e:!0,ae=e=>!!e&&typeof e==`object`&&!D(e)&&`addListener`in e&&`hasListener`in e&&`removeListener`in e,oe=e=>{let t=o();return t?e===t.onConnect||e===t.onConnectExternal:!1},se=e=>ae(e),D=e=>{if(!e||typeof e!=`object`)return!1;try{return`window`in e&&e.window===e}catch{try{return`closed`in e&&typeof e.closed==`boolean`&&`close`in e&&typeof e.close==`function`}catch{return!1}}},ce=e=>v(e)||E(e)||T(e),le=e=>v(e)||E(e)||oe(e)||se(e)||T(e),O=e=>!!e&&typeof e==`object`&&!D(e)&&`isJson`in e&&e.isJson===!0||ce(e)||le(e),k=e=>D(e)||ce(e)||b(e)||te(e)||x(e)||S(e)||C(e)||de(e),A=e=>D(e)||le(e)||y(e)||te(e)||x(e)||S(e)||C(e)||fe(e),ue=e=>{if(!e||typeof e!=`object`||D(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null},de=e=>!ue(e)||!(`emit`in e)?!1:k(e.emit)||typeof e.emit==`function`,fe=e=>!ue(e)||!(`receive`in e)?!1:A(e.receive)||typeof e.receive==`function`,pe=e=>de(e)||fe(e),me=()=>globalThis.Buffer,he=32768,ge=e=>{let t=e.toBase64;if(typeof t==`function`)return t.call(e);let n=me();if(n)return n.from(e).toString(`base64`);let r=``;for(let t=0;t<e.length;t+=he)r+=String.fromCharCode(...e.subarray(t,t+he));return btoa(r)},_e=e=>{let t=Uint8Array.fromBase64;if(typeof t==`function`)return t(e);let n=me();if(n)return new Uint8Array(n.from(e,`base64`));let r=atob(e),i=new Uint8Array(r.length);for(let e=0;e<r.length;e++)i[e]=r.charCodeAt(e);return i},j={[i]:`revivable`},ve=e=>!!e&&typeof e==`object`&&`__OSRA_BOX__`in e&&e.__OSRA_BOX__===`revivable`,ye=(e,t)=>O(t.transport)?{base64Buffer:ge(new Uint8Array(e))}:{arrayBuffer:e},be=e=>`arrayBuffer`in e?e.arrayBuffer:_e(e.base64Buffer).buffer,xe=t({box:()=>we,isType:()=>Ce,objectsOnly:()=>!0,revive:()=>Te,type:()=>Se}),Se=`arrayBuffer`,Ce=e=>e instanceof ArrayBuffer,we=(e,t)=>({...j,type:Se,...ye(e,t)}),Te=(e,t)=>be(e),Ee=t({box:()=>ke,isType:()=>Oe,objectsOnly:()=>!0,revive:()=>Ae,type:()=>De}),De=`date`,Oe=e=>e instanceof Date,ke=(e,t)=>({...j,type:De,ISOString:e.toISOString()}),Ae=(e,t)=>new Date(e.ISOString),je=t({box:()=>Pe,isType:()=>Ne,objectsOnly:()=>!0,revive:()=>Fe,type:()=>Me}),Me=`headers`,Ne=e=>e instanceof Headers,Pe=(e,t)=>({...j,type:Me,entries:[...e.entries()]}),Fe=(e,t)=>new Headers(e.entries),Ie=t({box:()=>Be,isType:()=>ze,objectsOnly:()=>!0,revive:()=>Ve,type:()=>Le}),Le=`error`,Re={Error,TypeError,RangeError,SyntaxError,ReferenceError,EvalError,URIError},ze=e=>e instanceof Error,Be=(e,t)=>{let n=`cause`in e&&e.cause!==void 0,r=typeof AggregateError<`u`&&e instanceof AggregateError,i=typeof DOMException<`u`&&e instanceof DOMException;return{...j,type:Le,name:e.name,message:e.message,stack:e.stack||e.toString(),...n?{cause:Q(e.cause,t)}:{},...r?{errors:Q(e.errors,t)}:{},...i?{isDOMException:!0}:{}}},Ve=(e,t)=>{let n=e.cause===void 0?void 0:$(e.cause,t),r=n===void 0?void 0:{cause:n};if(e.isDOMException&&typeof DOMException<`u`){let t=new DOMException(e.message,e.name);if(e.stack)try{Object.defineProperty(t,"stack",{value:e.stack,configurable:!0})}catch{}return t}let i;if(e.errors!==void 0&&typeof AggregateError<`u`)i=AggregateError($(e.errors,t),e.message,r);else{let t=Re[e.name]??Error;i=r===void 0?new t(e.message):new t(e.message,r)}return e.name&&i.name!==e.name&&(i.name=e.name),e.stack&&(i.stack=e.stack),i},He=t({box:()=>Ge,isType:()=>We,objectsOnly:()=>!0,revive:()=>Ke,type:()=>Ue}),Ue=`typedArray`,We=_,Ge=(e,t)=>{let n=e.byteOffset===0&&e.byteLength===e.buffer.byteLength?e.buffer:e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength);return{...j,type:Ue,typedArrayType:g(e),...ye(n,t)}},Ke=(e,t)=>new(ee(e.typedArrayType))(be(e)),qe=new WeakMap,Je=new WeakSet,M=(e,t)=>{if(Je.has(e))return t(),()=>{};let n=qe.get(e);return n||qe.set(e,n=new Set),n.add(t),()=>n.delete(t)},N=e=>Je.has(e),Ye=e=>{if(Je.has(e))return;Je.add(e);let t=qe.get(e);if(t){qe.delete(e);for(let e of t)try{e()}catch{}}},Xe=t({box:()=>at,forceTransfer:()=>rt,isInTransfer:()=>nt,isType:()=>it,objectsOnly:()=>!0,outsideTransfer:()=>I,revive:()=>ot,transfer:()=>tt,type:()=>Ze}),Ze=`transfer`,P=Symbol.for(`osra.transfer`),Qe=e=>typeof e==`object`&&!!e,$e=e=>Qe(e)&&P in e&&e[P]===!0,et=e=>Qe(e)?ArrayBuffer.isView(e)?!0:w(e,[globalThis.ArrayBuffer,globalThis.MessagePort,globalThis.ReadableStream,globalThis.WritableStream,globalThis.TransformStream,globalThis.Request,globalThis.Response,globalThis.ImageBitmap,globalThis.OffscreenCanvas,globalThis.VideoFrame,globalThis.AudioData]):!1,tt=e=>et(e)?{[P]:!0,value:e}:e,F=0,nt=()=>F>0,rt=e=>Qe(e)&&!$e(e)?{[P]:!0,value:e}:e,I=e=>{let t=F;F=0;try{return e()}finally{F=t}},it=e=>$e(e),at=(e,t)=>{F++;try{return{...j,type:Ze,inner:Q(e.value,t),degraded:O(t.transport)}}finally{F--}},ot=(e,t)=>$(e.inner,t),st=e=>w(e,[globalThis.MessagePort,globalThis.ReadableStream,globalThis.WritableStream,globalThis.TransformStream,globalThis.OffscreenCanvas,globalThis.MediaSourceHandle,globalThis.MediaStreamTrack,globalThis.MIDIAccess,globalThis.RTCDataChannel,globalThis.WebTransportReceiveStream,globalThis.WebTransportSendStream]),ct=e=>ve(e)&&e.type===`transfer`,L=e=>{let t=[],n=new WeakSet,r=(e,i)=>{if(!(!e||typeof e!=`object`)&&!n.has(e)&&(n.add(e),!re(e))){if(ct(e)){r(e.inner,i||!e.degraded);return}if(st(e)){t.push(e);return}if(ie(e)){i&&t.push(e);return}if(ArrayBuffer.isView(e)){i&&e instanceof DataView&&!re(e.buffer)&&!n.has(e.buffer)&&(n.add(e.buffer),t.push(e.buffer));return}if(Array.isArray(e)){for(let t of e)r(t,i);return}for(let t of Object.values(e))r(t,i)}};return r(e,!1),t},R=class{_listeners=new Map;addEventListener(e,t,n){if(!t)return;let r=this._listeners.get(e);r||(r=new Map,this._listeners.set(e,r)),r.has(t)||r.set(t,typeof n==`object`&&!!n?.once)}removeEventListener(e,t,n){t&&this._listeners.get(e)?.delete(t)}_peer;_queue=[];_started=!1;_closed=!1;_onClose;_onmessage=null;get onmessage(){return this._onmessage}set onmessage(e){this._onmessage=e,e!==null&&this.start()}onmessageerror=null;dispatchEvent(e){e.type===`message`?this._onmessage?.call(this,e):e.type===`messageerror`&&this.onmessageerror?.call(this,e);let t=this._listeners.get(e.type);if(t)for(let[n,r]of[...t])r&&t.delete(n),typeof n==`function`?n.call(this,e):n.handleEvent(e);return!0}postMessage(e,t){let n=this._peer;!n||n._closed||queueMicrotask(()=>{if(n._closed)return;let t=new MessageEvent(`message`,{data:e});n._started?n.dispatchEvent(t):n._queue.push(t)})}start(){if(!this._started){this._started=!0;for(let e of this._queue.splice(0))this.dispatchEvent(e)}}close(){if(this._closed)return;this._closed=!0,this._queue.length=0,this._onClose?.();let e=this._peer;e&&!e._closed&&queueMicrotask(()=>{e._closed||e.dispatchEvent(new Event(`close`))})}},z=class{port1;port2;constructor(){let e=new R,t=new R;e._peer=t,t._peer=e,this.port1=e,this.port2=t}},lt=new FinalizationRegistry(e=>{try{e()}catch{}}),ut=(e,t)=>{let n={};return lt.register(e,t,n),()=>lt.unregister(n)},dt=t({box:()=>U,createRevivableChannel:()=>K,init:()=>xt,isType:()=>St,markPortsShipped:()=>G,objectsOnly:()=>!0,postPreBoxed:()=>Ot,revive:()=>W,type:()=>ft}),ft=`messagePort`,pt=2048,mt=128,ht=1024,gt=new WeakMap,B=e=>{let t=gt.get(e);if(!t)throw Error(`osra message-port: connection state missing; did init() run?`);return t},_t=(e,t)=>{let n=e.ports.get(t);return n||(n={nextSeq:0,buffer:new Map,outSeq:0},e.ports.set(t,n),e.pendingPorts++),n},V=(e,t)=>{let n=e.ports.get(t);if(n&&!n.handler&&e.pendingPorts--,e.ports.delete(t),e.tombstones.size>=mt){let t=e.tombstones.values().next().value;t!==void 0&&e.tombstones.delete(t)}e.tombstones.add(t)},vt=e=>{if(e.handler)for(let t=e.buffer.get(e.nextSeq);t!==void 0;t=e.buffer.get(e.nextSeq))e.buffer.delete(e.nextSeq),e.nextSeq++,e.handler(t)},yt=(e,t)=>_t(B(e),t).outSeq++,bt=(e,t,n)=>{let r=B(e);if(r.tombstones.has(t)){setTimeout(()=>n({type:`message-port-close`,remoteUuid:e.remoteUuid,portId:t}));return}let i=_t(r,t);i.handler||r.pendingPorts--,i.handler=n,vt(i)},xt=e=>{let t={ports:new Map,tombstones:new Set,pendingPorts:0};gt.set(e,t),e.eventTarget.addEventListener(`message`,({detail:n})=>{if(n.type!==`message`&&n.type!==`message-port-close`||t.tombstones.has(n.portId))return;let r=t.ports.get(n.portId);if(n.seq===void 0){r?.handler?.(n);return}if(!r){if(t.pendingPorts>=ht)return;r=_t(t,n.portId)}if(!(n.seq<r.nextSeq)){if(r.buffer.size>=pt&&!(n.seq===r.nextSeq&&r.handler)){r.buffer.clear(),V(t,n.portId),r.handler?.({type:`message-port-close`,remoteUuid:e.remoteUuid,portId:n.portId});return}r.buffer.set(n.seq,n),vt(r)}}),M(e,()=>{for(let[n,r]of[...t.ports])r.handler?.({type:`message-port-close`,remoteUuid:e.remoteUuid,portId:n});t.ports.clear(),t.tombstones.clear(),t.pendingPorts=0})},St=e=>e instanceof MessagePort||e instanceof R,H=(e,t)=>{try{let n=B(e).ports.get(t);e.sendMessage({type:`message-port-close`,remoteUuid:e.remoteUuid,portId:t,seq:n?n.outSeq++:0})}catch{}},Ct=(e,t,n)=>{if(n){e.postMessage(t);return}let r=L(t);e.postMessage(t,r),G(r)},wt=(e,t,n,r)=>{let i;try{i=$(e,t)}catch(e){r(),globalThis.reportError?.(e);return}n(i)},Tt=(e,t,n)=>()=>{let r=e.deref();r&&H(r,n);let i=t.deref();i&&V(i,n)},Et=new WeakSet,Dt=e=>e!==null&&(typeof e==`object`||typeof e==`function`),Ot=(e,t,n)=>{Dt(t)&&Et.add(t),e.postMessage(t,n??[])},kt=(e,t)=>Dt(e)&&Et.delete(e)?e:I(()=>Q(e,t)),U=(e,t,n)=>{let r=e instanceof R;if(!r&&!O(t.transport))return{...j,type:ft,port:e,...n?.autoBox?{autoBox:!0}:{}};let i=B(t),a=e,o=globalThis.crypto.randomUUID(),s=new WeakRef(a),c=new WeakRef(t),l=new WeakRef(i),u=!1,d=()=>{if(u)return;u=!0;let e=l.deref();e&&V(e,o),m?.();let t=s.deref();t?.removeEventListener(`message`,p),t instanceof R&&(t._onClose=void 0)},f=e=>{if(e.type===`message-port-close`){d(),a.dispatchEvent(new Event(`close`)),a.close();return}wt(e.data,t,e=>Ct(a,e,!1),()=>{})};function p({data:e}){t.sendMessage({type:`message`,remoteUuid:t.remoteUuid,data:kt(e,t),portId:o,seq:yt(t,o)})}let m=ut(a,Tt(c,l,o));return a.addEventListener(`message`,p),a.start(),a instanceof R&&(a._onClose=()=>{u||(H(t,o),d())}),bt(t,o,f),{...j,type:ft,portId:o,synthetic:r}},W=(e,t)=>`port`in e?(G([e.port]),e.autoBox?jt(e.port,t):e.port):Mt(e.portId,t,e.synthetic),At=new WeakMap,G=e=>{for(let t of e){let e=At.get(t);if(e){At.delete(t),e.shipped=!0;for(let t of e.pending.splice(0))t()}}},jt=(e,t,n)=>{let r=new EventTarget,i=({data:e})=>{wt(e,t,e=>r.dispatchEvent(new MessageEvent(`message`,{data:e})),()=>r.dispatchEvent(new Event(`messageerror`)))},a=()=>{r.dispatchEvent(new Event(`messageerror`))},o=()=>{r.dispatchEvent(new Event(`close`))};e.addEventListener(`message`,i),e.addEventListener(`messageerror`,a),e.addEventListener(`close`,o),r.postMessage=(r,i)=>{let a=I(()=>Q(r,t)),o=L(a),s=Array.isArray(i)?i:[],c=s.length?[...o,...s]:o,l=()=>{e.postMessage(a,c),G(c)};if(n&&!n.shipped){n.pending.push(l);return}l()},r.start=()=>e.start();let s=()=>{e.removeEventListener(`message`,i),e.removeEventListener(`messageerror`,a),e.removeEventListener(`close`,o),e.close()};return r.close=()=>{if(n&&!n.shipped){n.pending.push(s);return}s()},r},K=e=>{if(O(e.transport)){let{port1:t,port2:n}=new z;return{localPort:t,boxedRemote:U(n,e)}}let{port1:t,port2:n}=new MessageChannel,r={shipped:!1,pending:[]};return At.set(n,r),{localPort:jt(t,e,r),boxedRemote:U(n,e,{autoBox:!0})}},Mt=(e,t,n)=>{let r=B(t),{port1:i,port2:a}=n?new z:new MessageChannel,o=new WeakRef(i),s=new WeakRef(a),c=!1,l=!1;i instanceof R||i.addEventListener(`close`,e=>{l&&e.stopImmediatePropagation()});let u=()=>{if(c)return;c=!0,V(r,e);let t=s.deref();t?.removeEventListener(`message`,f),t?.close(),p?.()},d=e=>{if(e.type===`message-port-close`){u();let e=o.deref();e?.dispatchEvent(new Event(`close`)),l=!0,e?.close();return}if(!o.deref()){u();return}let r=s.deref();r&&wt(e.data,t,e=>Ct(r,e,n),()=>o.deref()?.dispatchEvent(new Event(`messageerror`)))},f=({data:n})=>{t.sendMessage({type:`message`,remoteUuid:t.remoteUuid,data:kt(n,t),portId:e,seq:yt(t,e)})},p=ut(i,()=>{H(t,e),u()});return i instanceof R&&(i._onClose=()=>{c||(H(t,e),u())}),a.addEventListener(`message`,f),a.start(),bt(t,e,d),i},Nt=t({box:()=>Rt,isType:()=>Lt,objectsOnly:()=>!0,revive:()=>zt,type:()=>Pt}),Pt=`promise`,Ft=e=>e instanceof Promise,It=new Set,Lt=e=>e instanceof Promise,Rt=(e,t)=>{if(!Ft(e))throw TypeError(`Expected Promise`);let{localPort:n,boxedRemote:r}=K(t),i=e=>{n.postMessage(e),n.close()};return e.then(e=>i({type:`resolve`,data:e})).catch(e=>i({type:`reject`,error:e})),{...j,type:Pt,port:r}},zt=(e,t)=>{let n=W(e.port,t);It.add(n);let r=`portId`in e.port;return new Promise((e,i)=>{let a,o=()=>{n.close(),It.delete(n),a?.()};if(r&&N(t)){i(Error(`osra: connection closed`)),o();return}a=r?M(t,()=>{i(Error(`osra: connection closed`)),o()}):void 0,n.addEventListener(`message`,({data:t})=>{t.type===`resolve`?e(t.data):i(t.error),o()},{once:!0}),n.start()})},Bt=t({box:()=>q,isType:()=>Wt,objectsOnly:()=>!0,revive:()=>J,type:()=>Vt}),Vt=`function`,Ht=new Set,Ut=e=>{e instanceof ReadableStream?e.locked||e.cancel(Error(`osra: connection closed`)).catch(()=>{}):typeof WritableStream<`u`&&e instanceof WritableStream&&(e.locked||e.abort(Error(`osra: connection closed`)).catch(()=>{}))},Wt=e=>typeof e==`function`,q=(e,t)=>{let{port1:n,port2:r}=new z;return n.addEventListener(`message`,({data:n})=>{let[r,i]=n;(async()=>{let n;try{n={type:`return`,value:await e(...i)}}catch(e){n={type:`throw`,error:e}}if(N(t)){n.type===`return`&&Ut(n.value);try{r.close()}catch{}return}let a=(()=>{try{return Q(n,t)}catch(e){return Q({type:`throw`,error:e},t)}})();Ot(r,a),queueMicrotask(()=>{try{r.close()}catch{}})})()}),n.start(),{...j,type:Vt,port:U(r,t)}},J=(e,t)=>{let n=W(e.port,t);return((...e)=>new Promise((r,i)=>{if(N(t)){i(Error(`osra: connection closed`));return}let{port1:a,port2:o}=new z;Ht.add(a);let s,c=()=>{a.close(),Ht.delete(a),s?.()};s=M(t,()=>{i(Error(`osra: connection closed`)),c()}),a.addEventListener(`message`,({data:e})=>{let t=e;t.type===`return`?r(t.value):i(t.error),c()},{once:!0}),a.start();let l=I(()=>Q([o,e],t));Ot(n,l)}))},Gt=t({MAX_CREDIT_WINDOW:()=>64,box:()=>Zt,isType:()=>qt,objectsOnly:()=>!0,revive:()=>tn,type:()=>Kt}),Kt=`readableStream`,qt=e=>e instanceof ReadableStream,Jt=2,Yt=8,Xt=4*1024*1024,Zt=(e,t)=>{let{localPort:n,boxedRemote:r}=K(t),i=e.getReader(),a=nt(),o=0,s=!1,c=!1,l=e=>{c=!0;try{n.postMessage(e)}catch{}n.close()},u=async()=>{if(!(s||c)){for(s=!0;o>0;){let e;try{e=await i.read()}catch(e){c||l({type:`error`,error:e});return}if(c)return;if(e.done){l({type:`end`});return}o--;let t=a?rt(e.value):e.value;try{n.postMessage({type:`chunk`,value:t})}catch(e){l({type:`error`,error:e}),i.cancel(e).catch(()=>{});return}}s=!1}};return n.addEventListener(`message`,({data:e})=>{e instanceof Promise||!(`type`in e)||(e.type===`pull`?n.postMessage(i.read()):e.type===`credit`?(o+=e.n,u()):e.type===`cancel`&&(c=!0,i.cancel(e.reason).catch(()=>{}),n.close()))}),n.addEventListener(`close`,()=>{c||(c=!0,i.cancel(Error(`osra: connection closed`)).catch(()=>{}))},{once:!0}),n.start(),{...j,type:Kt,credit:!0,port:r}},Qt=e=>ArrayBuffer.isView(e)||e instanceof ArrayBuffer?e.byteLength:typeof e==`string`?e.length*2:typeof Blob<`u`&&e instanceof Blob?e.size:void 0,$t=e=>{let t=!1,n=0,r,i=[],a=!1,o=!1,s,c,l=()=>r===void 0?Yt:Math.max(Jt,Math.min(64,Math.floor(Xt/r))),u=()=>{let t=l(),r=n+i.length;if(r>t/2)return;let a=t-r;n+=a,e.postMessage({type:`credit`,n:a})},d=()=>{t=!0,queueMicrotask(()=>e.close())},f=e=>{if(o=!0,s=e,!c||i.length)return;let t=c;c=void 0,d(),t.reject(e)};return new ReadableStream({start:()=>{e.addEventListener(`message`,({data:o})=>{if(!(o instanceof Promise||!(`type`in o))){if(o.type===`chunk`){if(t)return;if(n<=0){i.length=0,f(Error(`osra: stream exceeded its credit window`)),queueMicrotask(()=>e.close());return}n--;let a=Qt(o.value);if(a!==void 0&&(r=r===void 0?a:r*.875+a*.125),c){let e=c;c=void 0,e.controller.enqueue(o.value),e.resolve()}else i.push(o.value)}else if(o.type===`end`){if(t||(a=!0,!c||i.length))return;let e=c;c=void 0,d(),e.controller.close(),e.resolve()}else if(o.type===`error`){if(t)return;f(o.error)}}}),e.addEventListener(`messageerror`,()=>{t||f(Error(`osra: a chunk failed to deserialize on this platform`))}),e.addEventListener(`close`,()=>{t||a||o||f(Error(`osra: connection closed`))},{once:!0})},pull:e=>{if(!t){if(i.length){e.enqueue(i.shift()),!a&&!o&&u();return}if(o)return d(),Promise.reject(s);if(a){d(),e.close();return}return u(),new Promise((t,n)=>{c={controller:e,resolve:t,reject:n}})}},cancel:n=>{t=!0,i.length=0;let r=c;c=void 0,r?.resolve(),e.postMessage({type:`cancel`,reason:n}),queueMicrotask(()=>e.close())}})},en=e=>{let t=!1;return new ReadableStream({start:n=>{e.addEventListener(`messageerror`,()=>{if(!t){t=!0;try{n.error(Error(`osra: a chunk failed to deserialize on this platform`))}catch{}queueMicrotask(()=>e.close())}}),e.addEventListener(`close`,()=>{if(!t){t=!0;try{n.error(Error(`osra: connection closed`))}catch{}}},{once:!0})},pull:n=>new Promise((r,i)=>{e.addEventListener(`message`,({data:a})=>{a instanceof Promise&&a.then(i=>{i.done?(t=!0,n.close(),e.postMessage({type:`cancel`}),queueMicrotask(()=>e.close())):n.enqueue(i.value),r()}).catch(e=>{t=!0,i(e)})},{once:!0}),e.postMessage({type:`pull`})}),cancel:n=>{t=!0,e.postMessage({type:`cancel`,reason:n}),queueMicrotask(()=>e.close())}})},tn=(e,t)=>{let n=W(e.port,t);return n.start(),e.credit?$t(n):en(n)},nn=t({box:()=>on,isType:()=>an,objectsOnly:()=>!0,revive:()=>sn,type:()=>rn}),rn=`writableStream`,an=e=>e instanceof WritableStream,on=(e,t)=>{let{localPort:n,boxedRemote:r}=K(t),i=e.getWriter(),a=!1,o=(e,t)=>e.then(()=>n.postMessage({type:`ack`})).catch(e=>n.postMessage({type:`err`,error:e?.message??String(e)})).then(()=>{t&&(a=!0,queueMicrotask(()=>n.close()))});return n.addEventListener(`message`,({data:e})=>{!e||typeof e!=`object`||!(`type`in e)||(e.type===`write`?o(i.write(e.chunk),!1):e.type===`close`?o(i.close(),!0):e.type===`abort`&&o(i.abort(e.reason),!0))}),n.addEventListener(`messageerror`,()=>{n.postMessage({type:`err`,error:`osra: a chunk failed to deserialize on this platform`})}),n.addEventListener(`close`,()=>{a||(a=!0,i.abort(Error(`osra: connection closed`)).catch(()=>{}))},{once:!0}),n.start(),{...j,type:rn,port:r,...nt()?{transferChunks:!0}:{}}},sn=(e,t)=>{let n=W(e.port,t);n.start();let r=new Set,i=!1;n.addEventListener(`close`,()=>{i=!0;let e=Error(`osra: connection closed`);for(let t of[...r])t(e);r.clear()},{once:!0});let a=Promise.resolve(),o=e=>{let t=a.then(()=>new Promise((t,a)=>{if(i){a(Error(`osra: connection closed`));return}let o=e=>{r.delete(a),e()};r.add(a),n.addEventListener(`message`,({data:e})=>{!e||typeof e!=`object`||!(`type`in e)||(e.type===`ack`?o(t):e.type===`err`&&o(()=>a(Error(e.error))))},{once:!0}),n.postMessage(e)}));return a=t.catch(()=>{}),t},s=e.transferChunks===!0;return new WritableStream({write:e=>o({type:`write`,chunk:s?rt(e):e}),close:()=>o({type:`close`}),abort:e=>o({type:`abort`,reason:e})})},cn=t({box:()=>fn,isType:()=>un,objectsOnly:()=>!0,revive:()=>pn,type:()=>ln}),ln=`abortSignal`,un=e=>e instanceof AbortSignal,dn=new WeakMap,fn=(e,t)=>{if(e.aborted)return{...j,type:ln,aborted:!0,reason:Q(e.reason,t)};let{localPort:n,boxedRemote:r}=K(t),i=()=>{n.postMessage({type:`abort`,reason:e.reason}),n.close(),a()},a=M(t,()=>{e.removeEventListener(`abort`,i),n.close()});return e.addEventListener(`abort`,i,{once:!0}),{...j,type:ln,aborted:!1,reason:void 0,port:r}},pn=(e,t)=>{let n=new AbortController;if(e.aborted||e.port===void 0)return n.abort($(e.reason,t)),n.signal;let r=W(e.port,t);return dn.set(n.signal,r),r.start(),r.addEventListener(`message`,({data:e})=>{e.type===`abort`&&(n.abort($(e.reason,t)),dn.delete(n.signal),r.close())}),n.signal},mn=t({box:()=>_n,isType:()=>gn,objectsOnly:()=>!0,revive:()=>vn,type:()=>hn}),hn=`response`,gn=e=>e instanceof Response,_n=(e,t)=>({...j,type:hn,status:e.status,statusText:e.statusText,headers:Pe(e.headers,t),body:e.body?Zt(e.body,t):null,url:e.url,redirected:e.redirected}),vn=(e,t)=>{if(e.status===0)return Response.error();let n=Fe(e.headers,t),r=e.body?tn(e.body,t):null,i=e.status===101||e.status===204||e.status===205||e.status===304;r&&i&&r.cancel().catch(()=>{});let a=new Response(i?null:r,{status:e.status,statusText:e.statusText,headers:n});return e.url&&Object.defineProperty(a,"url",{value:e.url,configurable:!0}),e.redirected&&Object.defineProperty(a,"redirected",{value:!0,configurable:!0}),a},yn=t({box:()=>Sn,isType:()=>xn,objectsOnly:()=>!0,revive:()=>Cn,type:()=>bn}),bn=`request`,xn=e=>e instanceof Request,Sn=(e,t)=>({...j,type:bn,method:e.method,url:e.url,headers:Pe(e.headers,t),body:e.body?Zt(e.body,t):null,credentials:e.credentials,cache:e.cache,mode:e.mode,redirect:e.redirect,referrer:e.referrer,referrerPolicy:e.referrerPolicy,integrity:e.integrity,keepalive:e.keepalive,signal:fn(e.signal,t)}),Cn=(e,t)=>{let n=Fe(e.headers,t),r={method:e.method,headers:n,credentials:e.credentials,cache:e.cache,redirect:e.redirect,referrer:e.referrer,referrerPolicy:e.referrerPolicy,integrity:e.integrity,keepalive:e.keepalive,signal:pn(e.signal,t)};return e.mode!==`navigate`&&(r.mode=e.mode),e.body&&(r.body=tn(e.body,t),r.duplex=`half`),new Request(e.url,r)},wn=t({box:()=>Pn,boxByReference:()=>Fn,identity:()=>On,isType:()=>jn,objectsOnly:()=>!0,revive:()=>In,type:()=>Y}),Y=`identity`,Tn=e=>e!==null&&(typeof e==`object`||typeof e==`function`),En=e=>{if(e===null)return!1;let t=typeof e;return t===`object`||t===`function`?!0:t===`symbol`?Symbol.keyFor(e)===void 0:!1},X=new WeakMap,Dn=e=>{let t=X.get(e);if(t!==void 0)return t;let n=globalThis.crypto.randomUUID();return X.set(e,n),n},On=e=>(Tn(e)&&Dn(e),e),kn=new WeakMap,An=e=>{let t=kn.get(e);if(t)return t;let n=new Map,r={idToLocal:n,pins:new Map,aliasIds:new WeakMap,disposeRegistry:new FinalizationRegistry(t=>{if(n.delete(t),!N(e))try{e.sendMessage({type:`identity-dispose`,remoteUuid:e.remoteUuid,id:t})}catch{}})};return kn.set(e,r),e.eventTarget.addEventListener(`message`,({detail:e})=>{e?.type===`identity-dispose`&&(r.pins.delete(e.id),r.idToLocal.delete(e.id))}),M(e,()=>{r.pins.clear(),r.idToLocal.clear()}),r},jn=e=>Tn(e)&&X.has(e),Mn=(e,t)=>{let n=t.aliasIds.get(e);if(n!==void 0)return n;let r=Dn(e),i=t.idToLocal.get(r);if(i===void 0||i.deref()===e)return r;let a=globalThis.crypto.randomUUID();return t.aliasIds.set(e,a),a},Nn=(e,t,n)=>{let r=Mn(e,n);if(n.idToLocal.has(r))return{...j,type:Y,id:r};let i=t();return n.idToLocal.set(r,new WeakRef(e)),n.disposeRegistry.register(e,r,e),Pr(()=>{},()=>{n.idToLocal.delete(r),n.disposeRegistry.unregister(e)}),{...j,type:Y,id:r,inner:i}},Pn=(e,t)=>{let n=An(t),r=()=>Br(e,t,Y);return En(e)?Nn(e,r,n):{...j,type:Y,id:globalThis.crypto.randomUUID(),inner:r()}},Fn=(e,t,n)=>Nn(e,()=>t,An(n)),In=(e,t)=>{let n=An(t);if(n.pins.has(e.id))return n.pins.get(e.id);let r=n.idToLocal.get(e.id)?.deref();if(r!==void 0)return r;if(!(`inner`in e)||e.inner===void 0){try{t.sendMessage({type:`identity-dispose`,remoteUuid:t.remoteUuid,id:e.id})}catch{}throw Error(`osra identity: received id=${e.id} with no inner payload and nothing local to resolve it to`)}let i=$(e.inner,t);return n.pins.set(e.id,i),En(i)&&(X.has(i)||X.set(i,e.id),n.idToLocal.set(e.id,new WeakRef(i))),i},Ln=t({box:()=>zn,isType:()=>Rn,objectsOnly:()=>!0,revive:()=>Bn,type:()=>`map`}),Rn=e=>e instanceof Map,zn=(e,t)=>({...j,type:`map`,entries:Array.from(e,([e,n])=>[Q(e,t),Q(n,t)])}),Bn=(e,t)=>new Map(e.entries.map(([e,n])=>[$(e,t),$(n,t)])),Vn=t({box:()=>Un,isType:()=>Hn,objectsOnly:()=>!0,revive:()=>Wn,type:()=>`set`}),Hn=e=>e instanceof Set,Un=(e,t)=>({...j,type:`set`,values:Array.from(e,e=>Q(e,t))}),Wn=(e,t)=>new Set(e.values.map(e=>$(e,t))),Gn=t({box:()=>Jn,isType:()=>qn,revive:()=>Yn,type:()=>Kn}),Kn=`bigint`,qn=e=>typeof e==`bigint`,Jn=(e,t)=>({...j,type:Kn,value:e.toString()}),Yn=(e,t)=>BigInt(e.value),Xn=t({box:()=>$n,isType:()=>Qn,objectsOnly:()=>!0,revive:()=>er,type:()=>Zn}),Zn=`event`,Qn=e=>e instanceof Event,$n=(e,t)=>({...j,type:Zn,eventType:e.type,bubbles:e.bubbles,cancelable:e.cancelable,composed:e.composed,...e instanceof CustomEvent?{detail:Q(e.detail,t)}:{}}),er=(e,t)=>{let n={bubbles:e.bubbles,cancelable:e.cancelable,composed:e.composed};return`detail`in e?new CustomEvent(e.eventType,{...n,detail:$(e.detail,t)}):new Event(e.eventType,n)},tr=t({box:()=>ir,isType:()=>rr,objectsOnly:()=>!0,revive:()=>cr,type:()=>nr}),nr=`eventTarget`,rr=e=>e instanceof EventTarget,ir=(e,t)=>{let n=[],r=e=>typeof e==`boolean`?e:!!e?.capture;return{...j,type:nr,addListener:q((t,i,a)=>{n.push({eventType:t,listener:i,capture:r(a)}),e.addEventListener(t,i,a)},t),removeListener:q((t,i,a)=>{let o=r(a),s=n.findIndex(e=>e.eventType===t&&e.listener===i&&e.capture===o);s!==-1&&n.splice(s,1),e.removeEventListener(t,i,a)},t),removeAllListeners:q(()=>{for(let{eventType:t,listener:r,capture:i}of n.splice(0))e.removeEventListener(t,r,{capture:i})},t)}},ar=new WeakMap,or=e=>{if(typeof e==`function`)return e;let t=ar.get(e);return t||ar.set(e,t=t=>e.handleEvent(t)),t},sr=(e,t,n,r)=>e.find(e=>e.eventType===t&&e.listener===n&&e.capture===r),cr=(e,t)=>{let n=J(e.addListener,t),r=J(e.removeListener,t),i=J(e.removeAllListeners,t),a=new EventTarget,o=[],s=e=>{let t=o.indexOf(e);t!==-1&&o.splice(t,1)};return Object.defineProperty(a,"addEventListener",{value:(e,t,r)=>{if(t===null)return;let i=or(t),a=typeof r==`boolean`?r:!!r?.capture;if(sr(o,e,i,a))return;let c=typeof r==`object`&&r?.once?e=>(s(l),i(e)):i,l={eventType:e,listener:i,capture:a,wire:c};o.push(l),(typeof r==`object`?r?.signal:void 0)?.addEventListener(`abort`,()=>s(l),{once:!0}),n(e,On(c),r).catch(()=>{})}}),Object.defineProperty(a,"removeEventListener",{value:(e,t,n)=>{if(t===null)return;let i=or(t),a=typeof n==`boolean`?n:!!n?.capture,c=sr(o,e,i,a);c&&(s(c),r(e,On(c.wire),{capture:a}).catch(()=>{}))}}),ut(a,()=>{i().catch(()=>{})}),a},lr=t({box:()=>fr,isType:()=>dr,revive:()=>pr,type:()=>ur}),ur=`symbol`,dr=e=>typeof e==`symbol`,fr=(e,t)=>{let n=Symbol.keyFor(e);return n===void 0?Fn(e,{...j,type:ur,description:e.description},t):{...j,type:ur,registryKey:n}},pr=(e,t)=>`registryKey`in e?Symbol.for(e.registryKey):Symbol(e.description),mr=t({box:()=>_r,isType:()=>gr,objectsOnly:()=>!0,revive:()=>vr,type:()=>hr}),hr=`asyncIterator`,gr=e=>!e||typeof e!=`object`||typeof ReadableStream<`u`&&e instanceof ReadableStream?!1:typeof e[Symbol.asyncIterator]==`function`,_r=(e,t)=>{let n=e[Symbol.asyncIterator]();return{...j,type:hr,next:q((e=>n.next(e)),t),return:q((e=>n.return?.(e)??Promise.resolve({done:!0,value:e})),t),throw:q((e=>n.throw?.(e)??Promise.reject(e)),t)}},vr=(e,t)=>{let n=J(e.next,t),r=J(e.return,t),i=J(e.throw,t),a={next:(...e)=>n(...e),return:e=>r(e),throw:e=>i(e),[Symbol.asyncIterator]:()=>a};return a},yr=[globalThis.File,globalThis.FileList,globalThis.RegExp,globalThis.DataView,globalThis.ImageData,globalThis.FormData,globalThis.DOMException,globalThis.DOMMatrix,globalThis.DOMMatrixReadOnly,globalThis.DOMPoint,globalThis.DOMPointReadOnly,globalThis.DOMQuad,globalThis.DOMRect,globalThis.DOMRectReadOnly,globalThis.CryptoKey,globalThis.FileSystemHandle,globalThis.FileSystemFileHandle,globalThis.FileSystemDirectoryHandle,globalThis.RTCCertificate],br=[globalThis.CropTarget,globalThis.EncodedAudioChunk,globalThis.EncodedVideoChunk,globalThis.FencedFrameConfig,globalThis.GPUCompilationInfo,globalThis.GPUCompilationMessage,globalThis.GPUPipelineError,globalThis.RTCEncodedAudioFrame,globalThis.RTCEncodedVideoFrame,globalThis.WebTransportError],xr={type:`clonable`,capableOnly:!0,objectsOnly:!0,isType:e=>w(e,yr)||w(e,br),box:(e,t)=>e,revive:(e,t)=>e},Sr=[globalThis.ImageBitmap,globalThis.OffscreenCanvas,globalThis.WritableStream,globalThis.TransformStream,globalThis.MediaStreamTrack,globalThis.RTCDataChannel],Cr=[globalThis.AudioData,globalThis.VideoFrame,globalThis.MediaSourceHandle,globalThis.MIDIAccess,globalThis.WebTransportReceiveStream,globalThis.WebTransportSendStream],wr={type:`transferable`,capableOnly:!0,objectsOnly:!0,isType:e=>w(e,Sr)||w(e,Cr),box:(e,t)=>e,revive:(e,t)=>e},Tr={type:`blob`,capableOnly:!0,objectsOnly:!0,isType:e=>typeof Blob<`u`&&e instanceof Blob,box:(e,t)=>{if(O(t.transport))throw TypeError(`osra: Blob is only supported on structured-clone transports, send an ArrayBuffer or Uint8Array instead`);return e},revive:(e,t)=>e},Er=e=>{if(typeof e!=`object`||!e)return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null},Dr=[Xe,wn,xe,Ee,je,Ie,He,Nt,Bt,dt,Gt,nn,cn,mn,yn,Ln,Vn,Gn,lr,Xn,mr,{type:`nonFiniteNumber`,isType:e=>typeof e==`number`&&!Number.isFinite(e),box:(e,t)=>O(t.transport)?{...j,type:`nonFiniteNumber`,value:String(e)}:e,revive:(e,t)=>Number(e.value)},{type:`undefined`,isType:e=>e===void 0,box:(e,t)=>O(t.transport)?{...j,type:`undefined`}:e,revive:(e,t)=>void 0},xr,wr,Tr,tr,{type:`unclonable`,objectsOnly:!0,isType:e=>{if(typeof e!=`object`||!e||Array.isArray(e)||Er(e))return!1;try{return structuredClone(e),!1}catch{return!0}},box:(e,t)=>({...j,type:`unclonable`}),revive:(e,t)=>({})}],Or=(e,t)=>t.find(t=>t.type===e.type),kr=e=>!!e&&typeof e==`object`&&Object.getPrototypeOf(e)===Object.prototype,Ar=(e,t)=>Array.isArray(e)?e.map(e=>t(e)):kr(e)?Object.fromEntries(Object.entries(e).map(([e,n])=>[e,t(n)])):e,jr=new WeakSet,Mr=new WeakSet,Z=0,Nr=[],Pr=(e,t)=>{if(Z===0){e();return}Nr.push({commit:e,rollback:t})},Fr=e=>{let t=Nr;Nr=[];for(let n of t)try{e?n.rollback():n.commit()}catch{}},Ir=e=>e!==null&&(typeof e==`object`||typeof e==`function`),Lr=new WeakMap,Rr=e=>{let t=Lr.get(e);if(t)return t;let n=e.filter(e=>!e.objectsOnly);return Lr.set(e,n),n},zr=(e,t,n)=>{let r=(e===null||typeof e!=`object`&&typeof e!=`function`?Rr(t.revivableModules):t.revivableModules).find(t=>t.type!==n&&t.isType(e));return r?r.box(e,t):Ar(e,e=>Q(e,t))},Q=(e,t)=>{if(ve(e))return e;let n=Ir(e);if(n){if(jr.has(e))throw TypeError(`osra: cannot serialize a circular structure - break the cycle or send the container by reference`);jr.add(e)}Z++;let r=!0;try{let n=zr(e,t);return r=!1,n}finally{n&&jr.delete(e),Z--,Z===0&&Fr(r)}},Br=(e,t,n)=>zr(e,t,n),$=(e,t)=>{let n=Ir(e);if(n){if(Mr.has(e))throw TypeError(`osra: cannot revive a circular structure`);Mr.add(e)}try{if(ve(e)){let n=Or(e,t.revivableModules);if(n)return n.revive(e,t)}return Ar(e,e=>$(e,t))}finally{n&&Mr.delete(e)}},Vr=t({init:()=>Wr,startBidirectionalConnection:()=>Ur,type:()=>Hr}),Hr=`bidirectional`,Ur=({transport:e,value:t,remoteUuid:n,eventTarget:r,send:i,revivableModules:a})=>{let o={transport:e,remoteUuid:n,sendMessage:i,eventTarget:r,revivableModules:a};for(let e of a)e.init?.(o);let{promise:s,resolve:c}=Promise.withResolvers();return r.addEventListener(`message`,function e({detail:t}){t.type===`init`&&(c(t.data),r.removeEventListener(`message`,e))}),i({type:`init`,remoteUuid:n,data:Q(t,o)}),{revivableContext:o,remoteValue:s.then(e=>$(e,o))}},Wr=e=>{if(!(k(e.transport)&&A(e.transport)))return;if(e.protocolEventTarget.addEventListener(`message`,({detail:{message:t,peer:n}})=>{if(t.type===`announce`){if(!t.remoteUuid){e.sendMessage({type:`announce`,remoteUuid:t.uuid});return}if(t.remoteUuid!==e.getUuid()||e.connectionContexts.has(t.uuid))return;e.sendMessage({type:`announce`,remoteUuid:t.uuid});let r=e.createConnectionEventTarget(),i={...n(),abort:()=>e.abortConnection(t.uuid)},a;try{let n=e.valueFor(i);if(e.claimPendingAbort(t.uuid)){e.sendMessage({type:`close`,remoteUuid:t.uuid});return}a=Ur({transport:e.transport,value:n,remoteUuid:t.uuid,eventTarget:r,send:t=>e.sendMessage(t),revivableModules:e.revivableModules})}catch(n){e.sendMessage({type:`close`,remoteUuid:t.uuid}),e.rejectRemoteValue(n);return}let o={type:`bidirectional`,eventTarget:r,connection:a};e.connectionContexts.set(t.uuid,o),o.connection.remoteValue.then(t=>e.addConnection(i,t),t=>e.rejectRemoteValue(t));return}if(t.type===`close`){if(t.remoteUuid!==e.getUuid())return;let n=e.connectionContexts.get(t.uuid);if(!n)return;e.connectionContexts.delete(t.uuid),Ye(n.connection.revivableContext),e.rejectRemoteValue(Error(`osra: peer closed the connection`));return}if(t.remoteUuid!==e.getUuid())return;let r=e.connectionContexts.get(t.uuid);r&&r.eventTarget.dispatchEvent(new CustomEvent(`message`,{detail:t}))}),e.presetRemoteUuid!==void 0){let t=e.presetRemoteUuid,n=e.createConnectionEventTarget(),r,i;try{i={abort:()=>e.abortConnection(t)};let a=e.valueFor(i);if(e.claimPendingAbort(t)){e.sendMessage({type:`close`,remoteUuid:t});return}r=Ur({transport:e.transport,value:a,remoteUuid:e.presetRemoteUuid,eventTarget:n,send:t=>e.sendMessage(t),revivableModules:e.revivableModules})}catch(n){e.sendMessage({type:`close`,remoteUuid:t}),e.rejectRemoteValue(n);return}let a={type:`bidirectional`,eventTarget:n,connection:r};e.connectionContexts.set(e.presetRemoteUuid,a),a.connection.remoteValue.then(t=>e.addConnection(i,t),t=>e.rejectRemoteValue(t));return}let t=50,n,r=()=>{if(!(e.unregisterSignal?.aborted||e.connectionContexts.size>0)){try{e.sendMessage({type:`announce`},`*`)}catch{}n=setTimeout(r,t),t=Math.min(t*2,1e3)}};e.unregisterSignal?.addEventListener(`abort`,()=>clearTimeout(n),{once:!0}),r()},Gr=()=>new EventTarget,Kr=e=>{let t=pe(e),n=t?e.emit:e,r=t?e.receive:e;return{isJson:t&&`isJson`in e&&e.isJson!==void 0?e.isJson:n!==void 0&&O(n)||r!==void 0&&O(r),...n===void 0?{}:{emit:n},...r===void 0?{}:{receive:r}}},qr=e=>e?e(Dr):Dr,Jr=32,Yr=()=>{let e=[],t=new Set,n=!1,r=()=>({value:void 0,done:!0});return{push:r=>{if(!n){if(t.size===0){e.push(r),e.length>Jr&&e.shift();return}for(let e of t){let t=e.wake;if(t){e.wake=void 0,t({value:r,done:!1});continue}e.buffered.push(r)}}},close:()=>{n=!0;for(let e of t){let t=e.wake;e.wake=void 0,t?.(r())}},iterate:()=>{let i={buffered:[...e]};t.add(i);let a=!1;return{[Symbol.asyncIterator](){return this},next:()=>{if(a)return Promise.resolve(r());let e=i.buffered.shift();return e?Promise.resolve({value:e,done:!1}):n?Promise.resolve(r()):new Promise(e=>{i.wake=e})},return:()=>{a=!0,t.delete(i);let e=i.wake;return i.wake=void 0,e?.(r()),Promise.resolve(r())}}}}},Xr=(e,t,n)=>{let r=e.then(n);r.catch(()=>{});let i=()=>{let e=t.iterate();return{[Symbol.asyncIterator](){return this},next:()=>e.next().then(e=>e.done?{value:void 0,done:!0}:{value:n(e.value),done:!1}),return:()=>e.return?.()??Promise.resolve({value:void 0,done:!0})}};return Object.assign(r,{[Symbol.asyncIterator]:i})},Zr=Symbol.for(`osra.context`),Qr=e=>typeof e==`object`&&!!e&&Zr in e,$r=(e,t,{key:n=r,origin:i=`*`,originA:a=i,originB:o=i,nameA:s,nameB:c,unregisterSignal:u}={})=>{let d=Kr(e),p=Kr(t),m=(e,t,r,i,a)=>{!A(e)||!k(t)||l({transport:e,key:n,remoteName:a,origin:r,unregisterSignal:u,listener:e=>{f(t,e,i,L(e))}})};m(d,p,a,o,s),m(p,d,o,a,c)},ei=[Vr],ti=(e,{transport:t,name:i,remoteName:a,key:o=r,origin:s=`*`,unregisterSignal:c,revivableModules:u,uuid:d,remoteUuid:p,connection:m=({value:e})=>e})=>{let h=m,g=Kr(t);if(!(k(g)&&A(g))){let e=Yr();e.close();let t=Promise.reject(Error(`osra: transport must be able to both emit and receive to establish a connection; pass a bidirectional platform transport or a custom { emit, receive } pair`));return t.catch(()=>{}),Xr(t,e,h)}let ee=qr(u),_=new Map,v=new Set,y=Yr(),{promise:b,resolve:te,reject:x}=Promise.withResolvers();b.catch(()=>{});let S=d??globalThis.crypto.randomUUID(),C=(e,t=s)=>{let r={[n]:o,name:i,uuid:S,...e},a=L(r);f(g,r,t,a),G(a)},ne=(e,t)=>{c?.aborted||C(e,t)},w=Gr(),re={transport:g,valueFor:t=>Qr(e)?e[Zr](t):e,revivableModules:ee,connectionContexts:_,getUuid:()=>S,presetRemoteUuid:p,sendMessage:ne,protocolEventTarget:w,rejectRemoteValue:x,abortConnection:e=>{let t=_.get(e);if(!t){v.add(e);return}_.delete(e),C({type:`close`,remoteUuid:e}),Ye(t.connection.revivableContext),x(Error(`osra: connection aborted`))},claimPendingAbort:e=>v.delete(e),addConnection:(e,t)=>{let n={value:t,context:e};te(n),y.push(n)},createConnectionEventTarget:Gr,unregisterSignal:c};if(l({listener:(e,t)=>{e.uuid!==S&&w.dispatchEvent(new CustomEvent(`message`,{detail:{message:e,peer:()=>({...t.origin?{origin:t.origin}:{},...t.source?{source:t.source}:{},...t.port?{port:t.port}:{},...t.sender?{sender:t.sender}:{}})}}))},transport:g,remoteName:a,key:o,origin:s,unregisterSignal:c}),c?.aborted)return x(c.reason),y.close(),Xr(b,y,h);c?.addEventListener(`abort`,()=>{for(let[e,t]of _)C({type:`close`,remoteUuid:e}),Ye(t.connection.revivableContext);_.clear(),y.close(),x(c.reason)},{once:!0});for(let e of ei)e.init(re);return Xr(b,y,h)},ni=(e,t)=>ti(e,t);export{ni as a,Q as i,Gr as n,$r as o,j as r,$ as t};
|