@webqit/port-plus 0.1.0 → 0.1.6
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/README.md +4 -2
- package/dist/index.html +28 -5
- package/dist/main.js +1 -1
- package/dist/main.js.map +4 -4
- package/package.json +5 -2
- package/src/MessageChannelPlus.js +2 -7
- package/src/MessageEventPlus.js +4 -3
- package/src/MessagePortPlus.js +99 -38
- package/src/RelayPort.js +22 -12
- package/src/index.browser.js +3 -1
- package/src/index.js +2 -1
- package/test/basic.test.js +22 -5
package/README.md
CHANGED
|
@@ -119,7 +119,9 @@ Meaning: Port+ interfaces emit `MessageEventPlus`, which recursively exposes `e.
|
|
|
119
119
|
| `readyStateChange()` | ✓ | ✗ | ✗ |
|
|
120
120
|
| `postRequest()` | ✓ | ✗ | ✗ |
|
|
121
121
|
| `handleRequests()` | ✓ | ✗ | ✗ |
|
|
122
|
-
| `
|
|
122
|
+
| `relay()` | ✓ | ✗ | ✗ |
|
|
123
|
+
| `channel()` | ✓ | ✗ | ✗ |
|
|
124
|
+
| `projectMutations()` | ✓ | ✗ | ✗ |
|
|
123
125
|
| `Live Objects`** | ✓ | ✗ | ✗ |
|
|
124
126
|
|
|
125
127
|
*In this table:*
|
|
@@ -143,7 +145,7 @@ Meaning: Port+ interfaces emit `MessageEventPlus`, which recursively exposes `e.
|
|
|
143
145
|
| `respondWith()` | ✓ | ✗ | ✗ |
|
|
144
146
|
| `eventID` | ✓ | ✗ | ✗ |
|
|
145
147
|
| `live` | ✓ | ✗ | ✗ |
|
|
146
|
-
| `
|
|
148
|
+
| `relayedFrom` | ✓ | ✗ | ✗ |
|
|
147
149
|
|
|
148
150
|
*In this table:*
|
|
149
151
|
|
package/dist/index.html
CHANGED
|
@@ -9,9 +9,11 @@
|
|
|
9
9
|
<body>
|
|
10
10
|
<script type="module">
|
|
11
11
|
|
|
12
|
+
const { MessagePortPlus, MessageChannelPlus, BroadcastChannelPlus, MessageEventPlus, Observer } = webqit;
|
|
13
|
+
|
|
12
14
|
const t = new MessagePortPlus;
|
|
13
15
|
|
|
14
|
-
let m, q =
|
|
16
|
+
let m, q = 4;
|
|
15
17
|
|
|
16
18
|
if (q === 1) {
|
|
17
19
|
m = new MessageChannel;
|
|
@@ -29,6 +31,7 @@
|
|
|
29
31
|
console.log('____________________________________');
|
|
30
32
|
}
|
|
31
33
|
|
|
34
|
+
|
|
32
35
|
m.port0?.addEventListener('open', () => console.log('open0'));
|
|
33
36
|
m.port0?.addEventListener('close', () => console.log('close0'));
|
|
34
37
|
|
|
@@ -38,12 +41,32 @@
|
|
|
38
41
|
m.port2.addEventListener('open', () => console.log('open2'));
|
|
39
42
|
m.port2.addEventListener('close', () => console.log('close2'));
|
|
40
43
|
|
|
41
|
-
m.port1.addEventListener('message', (e) =>
|
|
42
|
-
|
|
44
|
+
m.port1.addEventListener('message', (e) => {
|
|
45
|
+
console.log('message', e.data);
|
|
46
|
+
console.log('numPorts', e.ports.length, e.ports[0]?.options);
|
|
47
|
+
//e.ports[0]?.start();
|
|
48
|
+
e.ports[0]?.addEventListener('message', (e) => {
|
|
49
|
+
console.log('Port message', e.data, 'isLive', e.live,);
|
|
50
|
+
Observer.observe(e.data, (mm) => {
|
|
51
|
+
console.log('-------mutations', e.data);
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
e.ports[0]?.addEventListener('close', (e) => console.log('Port close'));
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
const p = new MessageChannelPlus;
|
|
58
|
+
m.port2.postMessage('hello', [p.port1]);
|
|
59
|
+
|
|
60
|
+
const pMessage = { greeting: 'Hi' };
|
|
61
|
+
p.port2.postMessage(pMessage, { live: true });
|
|
62
|
+
Observer.set(pMessage, '_K', '_V');
|
|
43
63
|
|
|
44
64
|
await new Promise((r) => setTimeout(r, 3000));
|
|
45
|
-
|
|
46
|
-
|
|
65
|
+
p.port2.close();
|
|
66
|
+
|
|
67
|
+
await new Promise((r) => setTimeout(r, 3000));
|
|
68
|
+
m.port2.close();
|
|
69
|
+
|
|
47
70
|
|
|
48
71
|
</script>
|
|
49
72
|
</body>
|
package/dist/main.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(()=>{var Je=Object.defineProperty;var de=(r,e)=>{for(var t in e)Je(r,t,{get:e[t],enumerable:!0})};var Le={};de(Le,{BroadcastChannelPlus:()=>ce,MessageChannelPlus:()=>le,MessageEventPlus:()=>M,MessagePortPlus:()=>E,RelayPort:()=>pe,StarPort:()=>Q,WebSocketPort:()=>me});function v(r){return!Array.isArray(r)&&typeof r=="object"&&r}function U(r){return typeof r}function T(r){return Array.isArray(r)}function H(r){return typeof r=="function"}function he(r){return r===null||r===""}function k(r){return arguments.length&&(r===void 0||typeof r>"u")}function b(r){return Array.isArray(r)||typeof r=="object"&&r||H(r)}function ge(r){return he(r)||k(r)||r===!1||r===0||b(r)&&!Object.keys(r).length}function q(r){return H(r)||r&&{}.toString.call(r)==="[object function]"}function oe(r){return r instanceof String||typeof r=="string"&&r!==null}function ye(r){return!oe(r)&&!k(r.length)}function $(r,...e){if(!r||!["object","function"].includes(typeof r))throw new Error("Argument #1 must be of type object");let t=r[Symbol.for("wq")];if(t||(t=new se,Object.defineProperty(r,Symbol.for("wq"),{value:t,enumerable:!1,configurable:!1,writable:!1})),!e.length)return t;let n,o;for(;n=e.shift();)(o=t)&&!(t=t.get(n))&&(t=new se,o.set(n,t));return t}var se=class extends Map{};var M=class extends Event{#e;get originalTarget(){return this.#e}#n;get eventID(){return this.#n}#r;get data(){return this.#r}#o;get live(){return this.#o}#a;get bubbles(){return this.#a}#f;get forwarded(){return this.#f}#s;get honourDoneMutationFlags(){return this.#s}#t=[];get ports(){return this.#t}constructor(e,{originalTarget:t=null,type:n="message",eventID:o,live:s=!1,honourDoneMutationFlags:c=!1,bubbles:f=!1,forwarded:a=!1,ports:i=[]}={}){if(n&&typeof n!="string")throw new TypeError("Where specified, wqEventOptions.type must be a string");if(super(n),this.#r=e,this.#e=t,this.#n=o,this.#o=s,this.#a=f,this.#f=a,this.#s=c,this.#t=i,this.#t.forEach(u=>E.upgradeInPlace(u)),b(this.#r)&&this.#o){if(typeof o!="string")throw new TypeError("eventID must be a non-empty string");Fe.call(t,this.#r,this.#n,{honourDoneMutationFlags:this.#s})}}#u=!1;get immediatePropagationStopped(){return this.#u}stopImmediatePropagation(){this.#u=!0,this.#i=!0,super.stopImmediatePropagation()}#i=!1;get propagationStopped(){return this.#i}stopPropagation(){this.#i=!0,super.stopPropagation()}#c=!1;get defaultPrevented(){return this.#c}preventDefault(){this.#c=!0,super.preventDefault()}respondWith(e,t=[]){for(let n of this.#t)n.postMessage(e,t);return!!this.#t.length}};var qe={};de(qe,{any:()=>ht,apply:()=>Se,batch:()=>je,construct:()=>Me,defineProperties:()=>xt,defineProperty:()=>ee,deleteProperties:()=>bt,deleteProperty:()=>te,get:()=>N,getOwnPropertyDescriptor:()=>ae,getOwnPropertyDescriptors:()=>yt,getPrototypeOf:()=>Pe,has:()=>fe,intercept:()=>gt,isExtensible:()=>Oe,map:()=>_t,observe:()=>De,ownKeys:()=>Ee,path:()=>mt,preventExtensions:()=>Te,reduce:()=>Ie,set:()=>W,setPrototypeOf:()=>Ae,subtree:()=>dt});function F(r,e=!0){return T(r)?r:!e&&v(r)?[r]:r!==!1&&r!==0&&ge(r)?[]:ye(r)?Array.prototype.slice.call(r):v(r)?Object.values(r):[r]}var w=(r,...e)=>$(r,"observerAPI",...e),G=(r,e)=>r instanceof Promise?r.then(e):e(r),ie={};var z=class{constructor(e,t){this.registry=e,Object.assign(this,{...t,target:e.target}),this.params.signal&&this.params.signal.addEventListener("abort",()=>this.remove())}remove(){return this.removed=!0,this.registry.removeRegistration(this)}};var X=class extends z{constructor(){super(...arguments),this.emit.currentRegistration=this,Object.defineProperty(this,"abortController",{value:new AbortController}),Object.defineProperty(this,"signal",{value:this.abortController.signal}),ie.setMaxListeners?.(0,this.signal)}remove(){this.abortController.abort(),super.remove()}fire(e){if(this.emit.recursionTarget&&!["inject","force-async","force-sync"].includes(this.params.recursions))return;let t=e,n=this.filter;if(n!==1/0&&(n=F(n,!1))&&(t=e.filter(s=>n.includes(s.key))),this.params.diff&&(t=t.filter(s=>s.type!=="set"||s.value!==s.oldValue)),!t.length)return;if(["inject","defer"].includes(this.params.recursions)){if(this.emit.recursionTarget){this.emit.recursionTarget.push(...t);return}this.emit.recursionTarget=this.params.recursions==="inject"?t:[]}let o=this.filter===1/0||Array.isArray(this.filter)?this.emit(t,this):this.emit(t[0],this);return G(o,s=>{let c=this.emit.recursionTarget;return delete this.emit.recursionTarget,this.params.recursions==="defer"&&c?.length?this.emit.currentRegistration.fire(c):s})}};var B=class{constructor(e){this.target=e,this.entries=[]}addRegistration(e){return this.entries.push(e),e}removeRegistration(e){this.entries=this.entries.filter(t=>t!==e)}static _getInstance(e,t,n=!0,o=this.__namespace){if(!b(t))throw new Error(`Subject must be of type object; "${U(t)}" given!`);let s=this;return o&&w(globalThis,"observerAPI","namespaces").has(e+"-"+o)&&(s=w(globalThis,"observerAPI","namespaces").get(e+"-"+o),e+="-"+o),!w(t,"registry").has(e)&&n&&w(t,"registry").set(e,new s(t)),w(t,"registry").get(e)}static _namespace(e,t,n=null){if(e+="-"+t,arguments.length===2)return w(globalThis,"observerAPI","namespaces").get(e);if(!(n.prototype instanceof this))throw new Error(`The implementation of the namespace ${this.name}.${t} must be a subclass of ${this.name}.`);w(globalThis,"observerAPI","namespaces").set(e,n),n.__namespace=t}};var O=class{constructor(e,t){if(this.target=e,!t.operation)throw new Error("Descriptor operation must be given in definition!");Object.assign(this,t)}};var C=class extends B{static getInstance(e,t=!0,n=null){return super._getInstance("listeners",...arguments)}static namespace(e,t=null){return super._namespace("listeners",...arguments)}constructor(e){super(e),this.batches=[]}addRegistration(e,t,n){return super.addRegistration(new X(this,{filter:e,emit:t,params:n}))}emit(e,{eventsArePropertyDescriptors:t=!1,eventIsArrayMethodDescriptor:n=!1}={}){if(this.batches.length){let o=this.batches[0].params.arrayMethodName;this.batches[0].snapshots.push({events:[...e],arrayMethodName:o,eventsArePropertyDescriptors:t,eventIsArrayMethodDescriptor:n});return}this.$emit(this.entries,[{events:e,eventsArePropertyDescriptors:t,eventIsArrayMethodDescriptor:n}])}$emit(e,t){let n=0,o=0,s=0;for(let u of e)n+=1,u.params.withPropertyDescriptors&&(o+=1),u.params.withArrayMethodDescriptors&&(s+=1);let c=[],f=[],a=[],i=[];for(let u of t){let l=u.arrayMethodName,p=u.eventsArePropertyDescriptors,g=u.eventIsArrayMethodDescriptor;for(let m of u.events)if(l&&(m.operation=l),o&&(s&&c.push(m),g||s!==n&&f.push(m)),o!==n){let h=m;if(p){let{target:_,type:x,...y}=m;h=new O(_,{type:"set",...y}),Object.defineProperty(h,"value","get"in y.value?{get:()=>y.value.get()}:{value:y.value.value}),y.oldValue&&Object.defineProperty(h,"oldValue","get"in y.oldValue?{get:()=>y.oldValue.get()}:{value:y.oldValue.value})}s&&a.push(h),g||s!==n&&i.push(h)}}for(let u of e)u.params.withPropertyDescriptors?u.params.withArrayMethodDescriptors?c.length&&u.fire(c):f.length&&u.fire(f):u.params.withArrayMethodDescriptors?a.length&&u.fire(a):i.length&&u.fire(i)}batch(e,t={}){this.batches.unshift({entries:[...this.entries],snapshots:[],params:t});let n=e();return G(n,o=>{let s=this.batches.shift();return s.snapshots.length&&this.$emit(s.entries,s.snapshots),o})}};var Y=class extends z{exec(e,t,n){return this.running||!this.traps[e.operation]?t(...Array.prototype.slice.call(arguments,2)):(this.running=!0,this.traps[e.operation](e,n,(...o)=>(this.running=!1,t(...o))))}};var L=class extends B{static getInstance(e,t=!0,n=null){return super._getInstance("traps",...arguments)}static namespace(e,t=null){return super._namespace("traps",...arguments)}addRegistration(e){return super.addRegistration(new Y(this,e))}emit(e,t=null){let n=this;return function o(s,...c){let f=n.entries[s];return f?f.exec(e,(...a)=>o(s+1,...a),...c):t?t(e,...c):c[0]}(0)}};var ve={};de(ve,{accessorize:()=>lt,proxy:()=>be,unaccessorize:()=>pt,unproxy:()=>Z});var Be=Symbol("wqOriginal");function lt(r,e,t={}){r=we(r);let n=w(r,"accessorizedProps");function o(a){let i,u=r;do i=Object.getOwnPropertyDescriptor(u,a);while(!i&&(u=Object.getPrototypeOf(u)));return i?{proto:u,descriptor:i}:{descriptor:{value:void 0,configurable:!0,enumerable:!0,writable:!0}}}function s(a){if(n.has(a+""))return!0;let i=o(a);i.getValue=function(p=!1){return p?this.descriptor:this.descriptor.get?this.descriptor.get():this.descriptor.value},i.setValue=function(p,g=!1){if(this.dirty=!0,g){this.descriptor=p;return}return this.descriptor.set?this.descriptor.set(p)!==!1:(this.descriptor.value=p,!0)},i.intact=function(){let p=Object.getOwnPropertyDescriptor(r,a);return p?.get===l.get&&p?.set===l.set&&n.get(a+"")===this},i.restore=function(){return this.intact()?(this.proto&&this.proto!==r||!this.proto&&!this.dirty?delete r[a]:Object.defineProperty(r,a,this.descriptor),n.delete(a+""),!0):!1},n.set(isNaN(a)?a:parseInt(a),i);let{enumerable:u=!0}=i.descriptor,l={enumerable:u,configurable:!0};("value"in i.descriptor||i.descriptor.set)&&(l.set=function(p){return W(this,a,p,t)}),("value"in i.descriptor||i.descriptor.get)&&(l.get=function(){return N(this,a,t)});try{return Object.defineProperty(r,a,l),!0}catch{return n.delete(a+""),!1}}let f=(Array.isArray(e)?e:e===void 0?Object.keys(r):[e]).map(s);return e===void 0||Array.isArray(e)?f:f[0]}function pt(r,e,t={}){r=we(r);let n=w(r,"accessorizedProps");function o(f){return n.has(f+"")?n.get(f+"").restore():!0}let c=(Array.isArray(e)?e:e===void 0?Object.keys(r):[e]).map(o);return e===void 0||Array.isArray(e)?c:c[0]}function be(r,e={},t=void 0){let n=we(r);if(typeof e.membrane=="boolean")throw new Error("The params.membrane parameter cannot be of type boolean.");if(e.membrane&&w(n,"membraneRef").has(e.membrane))return w(n,"membraneRef").get(e.membrane);let o={apply:(f,a,i)=>Se(f,a,i,void 0,e),construct:(f,a,i=null)=>Me(f,a,i,e),defineProperty:(f,a,i)=>ee(f,a,i,e),deleteProperty:(f,a)=>te(f,a,e),get:(f,a,i=null)=>{if(a===Be)return n;let u={...e,receiver:i},l=N(f,a,u);return Array.isArray(f)&&typeof l=="function"&&!/^class\s?/.test(Function.prototype.toString.call(l))?be(l,{...e,arrayMethodName:a,membrane:i},t):e.chainable&&b(l)&&a!=="prototype"&&!(typeof l=="function"&&/^class\s?|\{\s\[native\scode\]\s\}$/.test(Function.prototype.toString.call(l)))?be(l,e,t):l},getOwnPropertyDescriptor:(f,a)=>ae(f,a,e),getPrototypeOf:f=>Pe(f,e),has:(f,a)=>fe(f,a,e),isExtensible:f=>Oe(f,e),ownKeys:f=>Ee(f,e),preventExtensions:f=>Te(f,e),set:(f,a,i,u=null)=>W(f,a,i,{...e,receiver:u}),setPrototypeOf:(f,a)=>Ae(f,a,e)},s=t?.(o)||o,c=new Proxy(n,s);return e.membrane&&w(n,"membraneRef").set(e.membrane,c),c}function Z(r){return r&&r[Be]||r}function we(r){if(!r||!b(r))throw new Error("Target must be of type object!");return Z(r)}var re=class extends Array{};function mt(...r){return new re(...r)}var V=class extends Array{};function dt(){return new V}function ht(){return 1/0}function Ie(r,e,t,n=s=>s,o={}){let s=e instanceof V;if(!(!s&&!e?.length))return function c(f,a,i,u){let l=u||a[i.level]instanceof V,p=l?1/0:a[i.level],g=l?!1:i.level===a.length-1;return f instanceof O&&f.operation!=="get"?i={...i,probe:"always"}:i.probe!=="always"&&(i={...i,probe:!g}),t(f,p,(m,...h)=>{let _=d=>{d instanceof O&&(d.path="key"in d?[d.key]:[],f instanceof O&&(d.path="key"in d?f.path.concat(d.key):f.path.slice(0),Object.defineProperty(d,"context",{get:()=>f,configurable:!0})))},x=h[0]||{},y=d=>{if(d instanceof O&&"argumentsList"in d)return;let A=j(d,!1);return G(A,S=>(d instanceof O?d.value=S:d=S,c(d,a,{...i,...x,keyInParent:d.key,level:i.level+1},l)))};if(ne(p)&&Array.isArray(m)){if(m.forEach(_),g)return n(m,...h);l&&m[0]instanceof O&&(m[0].operation!=="get"||o.asGet)&&n(m,...h);for(let d of m)y(d);return}return _(m),g?n(m,...h):y(m)},i)}(r,e.slice(0),{...o,level:0},s)}function De(r,e,t,n={}){let o=j(r,!n.level);if(q(arguments[1])&&([,t,n={}]=arguments,e=1/0),!q(t))throw new Error(`Handler must be a function; "${U(t)}" given!`);if(e instanceof re||e instanceof V)return Ie(o,e,De,t,n);if(n={...n,descripted:!0},delete n.live,!b(o))return n.probe&&N(o,e,t,n)||void 0;let s=We(o,e,t,n);return n.probe?N(o,e,s,n):s()}function gt(r,e,t={}){let n=j(r);return v(e)||([,,,t={}]=arguments,e={[arguments[1]]:arguments[2]}),L.getInstance(n,!0,t.namespace).addRegistration({traps:e,params:t})}function ae(r,e,t=o=>o,n={}){return I(r,"getOwnPropertyDescriptor",{key:e},t,n)}function yt(r,e,t=o=>o,n={}){return I(r,"getOwnPropertyDescriptors",{key:e},t,n)}function Pe(r,e=n=>n,t={}){return I(r,"getPrototypeOf",{},e,t)}function Oe(r,e=n=>n,t={}){return I(r,"isExtensible",{},e,t)}function Ee(r,e=n=>n,t={}){return I(r,"ownKeys",{},e,t)}function fe(r,e,t=o=>o,n={}){return I(r,"has",{key:e},t,n)}function N(r,e,t=o=>o,n={}){let o,s=j(r,!n.level);return v(t)?[n,t]=[t,c=>c]:n.live&&(o=!0),e instanceof re||e instanceof V?Ie(s,e,N,t,{...n,asGet:!0}):wt(s,e,c=>{let f=[...c];return function a(i,u,l){if(!u.length)return l(i);let p=u.shift();if(!["string","number","symbol"].includes(typeof p))throw new Error(`Property name/key ${p} invalid.`);function g(_,x=void 0){let y=S=>(_.value=S,a([...i,n.live||n.descripted?_:S],u,l));if(arguments.length>1)return y(x);if(!b(s))return y(s?.[_.key]);let d=w(s,"accessorizedProps",!1),A=d&&d.get(_.key);if(A&&A.intact())return y(A.getValue(n.withPropertyDescriptors));if(n.withPropertyDescriptors){let S=Object.getOwnPropertyDescriptor(s,_.key);return y(S)}return y(Reflect.get(s,_.key))}let m=new O(s,{type:"get",key:p,value:void 0,operation:"get",related:f});if(!b(s))return g(m);let h=L.getInstance(s,!1,n.namespace);return h?h.emit(m,g):g(m)}([],c.slice(0),a=>{let i=ne(e)?a:a[0];return o&&b(s)?We(s,e,t,n,r.key)(i):t(i)})},n)}function je(r,e,t={}){let n=j(r);return C.getInstance(n,!0,t.namespace).batch(e,t)}function _t(r,e,t={}){e=j(e),r=j(r);let n=(t.only||[]).slice(0),o=(t.except||[]).slice(0),s=Object.keys(t.spread?[...r]:r).map(i=>isNaN(i)?i:parseInt(i)),c=n.length?n.filter(i=>s.includes(i)):s.filter(i=>!o.includes(i)),f=i=>!Array.isArray(e)||isNaN(i)?i:i-o.filter(u=>u<i).length,a=i=>{let u=ae(r,i,t);"value"in u&&u.writable&&u.enumerable&&u.configurable?W(e,f(i),u.value,t):(u.enumerable||t.onlyEnumerable===!1)&&ee(e,i,{...u,configurable:!0},t)};return je(e,()=>{c.forEach(a)}),De(r,i=>{i.filter(u=>n.length?n.includes(u.key):!o.includes(u.key)).forEach(u=>{if(u.type==="delete")return te(e,f(u.key),t);if(u.type==="def"){(u.value.enumerable||t.onlyEnumerable===!1)&&ee(e,f(u.key),{...u.value,configurable:!0},t);return}a(u.key)})},{...t,withPropertyDescriptors:!0})}function W(r,e,t,n=c=>c,o={},s=!1){let c=j(r),f=[[e,t]];v(e)&&([,,n=i=>i,o={},s=!1]=arguments,f=Object.entries(e)),v(n)&&([s,o,n]=[typeof o=="boolean"?o:s,n,i=>i]);let a=f.map(([i])=>i);return function i(u,l,p){if(!l.length)return p(u);let[g,m]=l.shift();function h(x,y=void 0){let d=Ke=>(x.status=Ke,i(u.concat(x),l,p));if(arguments.length>1)return d(x,y);let A=w(c,"accessorizedProps",!1),S=A&&A.get(x.key);return x.type==="def"?(S&&!S.restore()&&d(!1),Object.defineProperty(c,x.key,x.value),d(!0)):S&&S.intact()?d(S.setValue(x.value)):d(Reflect.set(c,x.key,x.value))}function _(x,y){if(o.diff&&m===y)return i(u,l,p);let d=new O(c,{type:s?"def":"set",key:g,value:m,isUpdate:x,oldValue:y,related:[...a],operation:s?"defineProperty":"set",detail:o.detail}),A=L.getInstance(c,!1,o.namespace);return A?A.emit(d,h):h(d)}return fe(c,g,x=>{if(!x)return _(x);if(g==="length"&&Array.isArray(c)&&w(c).has("$length"))return _(!0,w(c).get("$length"));let y={...o,withPropertyDescriptors:s};return N(c,g,d=>_(x,d),y)},o)}([],f.slice(0),i=>{let u=C.getInstance(c,!1,o.namespace);return u&&u.emit(i,{eventsArePropertyDescriptors:!!s}),n(ne(e)?i.map(l=>l.status):i[0]?.status)})}function ee(r,e,t,n=s=>s,o={}){return W(r,e,t,n,o,!0)}function xt(r,e,t=o=>o,n={}){return W(r,e,t,n,!0)}function te(r,e,t=o=>o,n={}){let o=j(r);v(t)&&([n,t]=[t,f=>f]);let s=F(e,!1),c=[...s];return function f(a,i,u){if(!i.length)return u(a);let l=i.shift();function p(m,h=void 0){let _=d=>(m.status=d,f(a.concat(m),i,u));if(arguments.length>1)return _(m,h);let x=w(o,"accessorizedProps",!1),y=x&&x.get(m.key);return y&&!y.restore()&&_(!1),_(Reflect.deleteProperty(o,m.key))}function g(m){let h=new O(o,{type:"delete",key:l,oldValue:m,related:[...c],operation:"deleteProperty",detail:n.detail}),_=L.getInstance(o,!1,n.namespace);return _?_.emit(h,p):p(h)}return N(o,l,g,n)}([],s.slice(0),f=>{let a=C.getInstance(o,!1,n.namespace);return a&&a.emit(f),t(ne(e)?f.map(i=>i.status):f[0].status)})}function bt(r,e,t=o=>o,n={}){return te(...arguments)}function Me(r,e,t=null,n=s=>s,o={}){return I(r,"construct",arguments.length>2?{argumentsList:e,newTarget:t}:{argumentsList:e},n,o)}function Se(r,e,t,n=s=>s,o={}){let s=Z(e),c;if(Array.isArray(e)){if(o.arrayMethodName){let f=new O(s,{operation:o.arrayMethodName,argumentsList:t});C.getInstance(s,!1,o.namespace)?.emit([f],{eventIsArrayMethodDescriptor:!0})}w(s).set("$length",s.length),c=je(s,()=>I(r,"apply",{thisArgument:e,argumentsList:t},n,o),o),w(s).delete("$length")}else c=I(r,"apply",{thisArgument:s,argumentsList:t},n,o);return c}function Ae(r,e,t=o=>o,n={}){return I(r,"setPrototypeOf",{proto:e},t,n)}function Te(r,e=n=>n,t={}){return I(r,"preventExtensions",{},e,t)}function We(r,e,t,n={}){let o=new AbortController;ie.setMaxListeners?.(0,o.signal),n.signal&&n.signal.addEventListener("abort",()=>o.abort());let s={...n,signal:o.signal},c=C.getInstance(r,!0,s.namespace),f=new Map;return function a(i=[],u=null){let l,p,g;if(ne(e)){if(u){g=!0,p=u;for(let m of i)f.get(m.key)?.remove(),f.delete(m.key)}else p=c.addRegistration(e,a,s);l={signal:p.signal,childRegistrations:f}}else u?.remove(),p=c.addRegistration(e,a,s),l={signal:p.signal};if(s.childRegistrations&&s.keyInParent&&s.childRegistrations.set(s.keyInParent,p),arguments.length){let m=t(i,l);if(arguments.length>1)return m}return o}}function I(r,e,t={},n=s=>s,o={}){r=j(r),v(n)&&([o,n]=[n,a=>a]);function s(a,i){return arguments.length>1?n(i):n((Reflect[e]||Object[e])(r,...Object.values(t)))}let c=new O(r,{operation:e,...t}),f=L.getInstance(r,!1,o.namespace);return f?f.emit(c,s):s(c)}function ne(r){return r===1/0||Array.isArray(r)}function j(r,e=!0,t=!0){if((!r||!b(r))&&e)throw new Error(`Object must be of type object or array! "${U(r)}" given.`);return r instanceof O&&(r.type==="def"&&t?r=typeof r.value.get=="function"?r.value.get():r.value.value:r=r.value),r&&Z(r)}function wt(r,e,t,n={}){return e===1/0?n.level&&!b(r)?t([]):t(Object.entries(Object.getOwnPropertyDescriptors(r)).filter(([,o])=>o.writable!==!1&&!o.get&&!o.set).map(([o])=>o)):t(F(e,!1))}var vt={...qe,...ve},D=vt;var Pt=(r,...e)=>$(r,"port+",...e),R=r=>$(r,"port+","meta").get("options")||{},P=r=>$(r,"port+","meta"),Ve=["addEventListener","addRequestListener","postMessage","postRequest","dispatchEvent","forwardPort","start","readyStateChange","removeEventListener","close"],Ue=["options","readyState","onmessage","onmessageerror"],E=class extends He(EventTarget){constructor(e={}){super(),Pt(this,"meta").set("options",e)}static[Symbol.hasInstance](e){return Function.prototype[Symbol.hasInstance].call(this,e)?!0:Ve.every(t=>typeof e[t]=="function")||Ue.every(t=>t in e)}};function He(r){return class extends r{static upgradeInPlace(e){if(e instanceof E)return e;let t=this.prototype;for(let n of Ve){let o=e[n],s=t[n];o&&Object.defineProperty(e,`_${n}`,{value:o.bind(e),configurable:!0}),Object.defineProperty(e,n,{value:s.bind(e),configurable:!0})}for(let n of Ue){let o=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(e),n),s=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(t),n);o&&Object.defineProperty(e,`_${n}`,{...o,configurable:!0}),Object.defineProperty(e,n,{...s,configurable:!0})}this.upgradeEvents(e)}static upgradeEvents(e,t=null){t||(t=e);let n=P(e);if(n.get("events+"))return;let o=P(t),s=R(t),c=J.call(t),f=K.call(t);e instanceof BroadcastChannel&&(s.clientServerMode==="server"?o.set("clients",new Set):s.clientServerMode==="client"&&o.set("client_id",`client-${(0|Math.random()*9e6).toString(36)}`));let a=l=>{if(l instanceof M)return;if(e===t&&l.stopImmediatePropagation?.(),l=this._hydrateMessage?.(t,l)||l,l.data.ping==="connect"&&typeof l.data?.[".wq"]?.eventID=="string"&&(!(e instanceof WebSocket)||!s.naturalOpen)){let h=!0;e instanceof BroadcastChannel&&(s.clientServerMode==="server"&&typeof l.data.id=="string"?(o.get("clients").add(l.data.id),h="server"):l.data.id==="server"&&o.has("client_id")&&(h=o.get("client_id"))),l.ports?.forEach(_=>_.postMessage(h)),o.set("remote.start.called",!0),t.start();return}if(l.data.ping==="disconnect"&&typeof l.data?.[".wq"]?.eventID=="string"){let h=()=>{o.set("remote.close.called",!0),t.close()};e instanceof BroadcastChannel?s.clientServerMode==="server"&&typeof l.data.id=="string"?(o.get("clients").delete(l.data.id),!o.get("clients").size&&s.autoClose&&!f.close.state&&h()):s.clientServerMode==="client"&&l.data.id==="server"&&h():e instanceof MessagePort&&h();return}let p=l.data,g={};typeof l.data?.[".wq"]?.eventID=="string"&&({message:p,".wq":g}=l.data);let m=new M(p,{originalTarget:e,...g,ports:l.ports});t.dispatchEvent(m)},i=l=>{e instanceof WebSocket&&s.naturalOpen&&!(l instanceof M)&&(o.set("remote.start.called",!0),t.start())},u=l=>{(e instanceof WebSocket||e instanceof MessagePort)&&!(l instanceof M)&&(o.set("remote.close.called",!0),t.close())};n.set("internal_call",!0),e.addEventListener("message",a),e.addEventListener("error",a),e.addEventListener("open",i),e.addEventListener("close",u),n.delete("internal_call"),n.set("events+",!0),c.add(()=>{e.removeEventListener("message",a),e.removeEventListener("error",a),e.removeEventListener("open",i),e.removeEventListener("close",u),n.set("events+",!1)})}get options(){return{...R(this)}}get onmessageerror(){return typeof super.onmessageerror<"u"?super.onmessageerror:typeof this._onmessageerror<"u"?this._onmessageerror:null}set onmessageerror(e){if(typeof super.onmessageerror<"u"){super.onmessageerror=e;return}if(e!==null&&typeof e!="function")throw new TypeError("onmessageerror must be a function");if(Object.getOwnPropertyDescriptor(this,"_onmessageerror")?.set){this._onmessageerror=e;return}this._onmessageerror&&this.removeEventListener("messageerror",this._onmessageerror),this.addEventListener("messageerror",e),this._onmessageerror=e}get onmessage(){return typeof super.onmessage<"u"?super.onmessage:typeof this._onmessage<"u"?this._onmessage:null}set onmessage(e){let t=P(this),n=R(this);if(!t.get("internal_call")&&n.autoStart&&this.start(),typeof super.onmessage<"u"){super.onmessage=e;return}if(e!==null&&typeof e!="function")throw new TypeError("onmessage must be a function");if(Object.getOwnPropertyDescriptor(this,"_onmessage")?.set){this._onmessage=e;return}this._onmessage&&this.removeEventListener("message",this._onmessage),this.addEventListener("message",e),this._onmessage=e}addEventListener(...e){let t=P(this),n=R(this);return!t.get("internal_call")&&n.autoStart&&this.start(),J.call(this).add(()=>{this._removeEventListener?this._removeEventListener(...e):super.removeEventListener(...e)}),this._addEventListener?this._addEventListener(...e):super.addEventListener(...e)}dispatchEvent(e){let t=this._dispatchEvent?this._dispatchEvent(e):super.dispatchEvent(e);return e instanceof M&&Ot.call(this,e),t}postMessage(e,t={}){let n=P(this),o=R(this);!n.get("internal_call")&&o.autoStart&&this.start();let s=K.call(this);s.messaging.state=!0,s.messaging.resolve();let c;if(!v(e?.[".wq"])){let{portOptions:a,wqOptions:{relayedFrom:i,...u}}=Ce.call(this,e,t);e={message:e,".wq":u},t=a,c=i}let f=()=>{this._postMessage?this._postMessage(e,t,c):super.postMessage(e,t)};o.postAwaitsOpen?s.open.promise.then(f):f()}addRequestListener(e,t,n={}){let o=async s=>{let c=await t(s);for(let f of s.ports)f.postMessage(c)};this.addEventListener(e,o,n)}postRequest(e,t,n={}){let o;v(t)&&(n={once:!0,...t},o=new Promise(u=>{t=u}));let s=new MessageChannel;this.constructor.upgradeEvents(s.port1),s.port1.start();let{signal:c=null,once:f=!1,transfer:a=[],...i}=n;return s.port1.addEventListener("message",u=>t(u),{signal:c,once:f}),c?.addEventListener("abort",()=>{s.port1.close(),s.port2.close()}),this.postMessage(e,{...i,transfer:[s.port2].concat(a)}),o}forwardPort(e,t,{resolveData:n=null,bidirectional:o=!1,namespace1:s=null,namespace2:c=null}={}){if(!(this instanceof E)||!(t instanceof E))throw new Error("Both ports must be instance of MessagePortPlus.");if(typeof e!="function"&&!(e=[].concat(e)).length)throw new Error("Event types must be specified.");let f=Ge.call(this),a={targetPort:t,eventTypes:e,options:{resolveData:n,namespace1:s,namespace2:c}};f.add(a);let i;return o&&(i=this.forwardPort.call(t,typeof e=="function"?e:e.filter(u=>u!=="close"),this,{resolveData:n,bidirectional:!1,namespace1:c,namespace2:s})),()=>{f.delete(a),i?.()}}get readyState(){let e=K.call(this);return e.close.state?"closed":e.open.state?"open":"connecting"}readyStateChange(e){if(!["open","messaging","error","close"].includes(e))throw new Error(`Invalid readyState query "${e}"`);return K.call(this)[e].promise}start(){let e=K.call(this);if(e.open.state)return;let t,n=()=>{if(e.open.state)return;e.open.state=!0,e.open.resolve();let i=new M(null,{type:"open"});this._dispatchEvent?this._dispatchEvent(i):super.dispatchEvent(i),t?.port1.close(),t?.port2.close()},o=P(this),s=R(this);if(o.get("remote.start.called")){n();return}if(o.get("start.called"))return;o.set("start.called",!0),this._start?this._start():super.start?.(),t=new MessageChannel,t.port1.onmessage=i=>{this instanceof BroadcastChannel&&s.clientServerMode==="server"&&typeof i.data=="string"&&o.get("clients").add(i.data),n()};let{wqOptions:c}=Ce.call(this),f=s.clientServerMode==="server"?"server":s.clientServerMode==="client"?o.get("client_id"):null,a={".wq":c,ping:"connect",id:f};this._postMessage?this._postMessage(a,{transfer:[t.port2]}):super.postMessage(a,{transfer:[t.port2]})}close(...e){let t=K.call(this);if(t.close.state)return;t.close.state=!0;let n=P(this),o=R(this);if(!n.get("remote.close.called")&&(this instanceof BroadcastChannel||this instanceof MessagePort)){let{wqOptions:c}=Ce.call(this),f=o.clientServerMode==="server"?"server":o.clientServerMode==="client"?n.get("client_id"):null,a={".wq":c,ping:"disconnect",id:f};this._postMessage?this._postMessage(a):super.postMessage(a)}this._close?this._close(...e):super.close(...e),t.close.resolve();let s=new M(null,{type:"close"});this._dispatchEvent?this._dispatchEvent(s):super.dispatchEvent(s),Et.call(this)}}}function ue(r){return class extends He(r){static _hydrateMessage(e,t){if(typeof t.data?.[".wq"]?.numPorts!="number"||typeof t.data[".wq"].eventID!="string")return t;let n=J.call(e),o=t.data[".wq"].numPorts;Object.defineProperty(t,"ports",{value:[],configurable:!0});for(let s=0;s<o;s++){let c=new MessageChannel;c.port1.start(),E.upgradeInPlace(c.port1),n.add(e.forwardPort("*",c.port1,{bidirectional:!0,namespace1:`${t.data[".wq"].eventID}:${s}`})),t.ports.push(c.port2),e.readyStateChange("close").then(()=>{c.port1.close(),c.port2.close()})}return t}_postMessage(e,t={}){let{transfer:n=[],...o}=t;if(typeof e?.[".wq"]?.eventID=="string"){let s=J.call(this),c=n.filter(a=>a instanceof MessagePort),f=c.length;for(let a=0;a<f;a++)E.upgradeInPlace(c[a]),s.add(this.forwardPort("*",c[a],{bidirectional:!0,namespace1:`${e[".wq"].eventID}:${a}`}));e[".wq"].numPorts=f}return this.__postMessage(e,o)}}}function Ot(r){if(r.propagationStopped)return;let e=P(this);e.get("parentNode")instanceof EventTarget&&(r.bubbles||e.get("parentNode")?.findPort?.(n=>n===this)&&r instanceof M)&&e.get("parentNode").dispatchEvent(r);let t=Ge.call(this);if(t.size&&r instanceof M){let{type:n,eventID:o,data:s,live:c,bubbles:f,ports:a}=r,i=new WeakSet;for(let{targetPort:u,eventTypes:l,options:p}of t){if(i.has(u))continue;let g=n;p.namespace1&&([,g]=new RegExp(`^${p.namespace1.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}:([^:]+)$`).exec(n)||[],!g)||!(typeof l=="function"?l(g,this,u,p):[].concat(l).find(h=>h===g||h==="*"))||(i.add(u),u.postMessage(p.resolveData?p.resolveData(s,this,u,p):s,{transfer:a,type:p.namespace2?`${p.namespace2}:${g}`:g,eventID:o,bubbles:f,live:c,forwarded:!0,relayedFrom:this}))}}}function J(){let r=P(this);return r.has("garbage_collection")||r.set("garbage_collection",new Set),r.get("garbage_collection")}function Ge(){let r=P(this);return r.has("downstream_registry")||r.set("downstream_registry",new Set),r.get("downstream_registry")}function K(){let r=P(this);if(!r.has("readystate_registry")){let e=t=>(t.promise=new Promise(n=>t.resolve=n),t);r.set("readystate_registry",{open:e({}),messaging:e({}),error:e({}),close:e({})})}return r.get("readystate_registry")}function Et(){let r=P(this);for(let e of r.get("garbage_collection")||[])e instanceof AbortController?e.abort():typeof e=="function"&&e();r.get("garbage_collection")?.clear(),r.get("downstream_registry")?.clear()}function Ce(r=void 0,e={}){if(Array.isArray(e))e={transfer:e};else if(!e||typeof e!="object")throw new TypeError("transferOrOptions must be an array or an object");let{type:t="message",eventID:n=null,live:o=!1,observing:s=!1,bubbles:c=!1,forwarded:f=!1,relayedFrom:a=null,signal:i=null,withArrayMethodDescriptors:u=!1,honourDoneMutationFlags:l=!1,...p}=e;return n||(n=`${t}-${(0|Math.random()*9e6).toString(36)}`),!s&&!f&&b(r)&&o&&!t?.endsWith(".mutate")&&(Mt.call(this,r,n,{signal:i,withArrayMethodDescriptors:u,honourDoneMutationFlags:l}),s=!0),{portOptions:p,wqOptions:{type:t,eventID:n,live:o,observing:s,honourDoneMutationFlags:l,bubbles:c,forwarded:f,relayedFrom:a}}}function Mt(r,e,{signal:t,withArrayMethodDescriptors:n=!0,honourDoneMutationFlags:o=!1}={}){if(!b(r))throw new TypeError("data must be a plain object and not a stream");if(typeof e!="string")throw new TypeError("eventID must be a non-empty string");let s=a=>{let i;n&&Array.isArray(a[0].target)&&!a[0].argumentsList&&!["set","defineProperty","deleteProperty"].includes(a[0].operation)||(this.postMessage(a.map(u=>(i=!i&&o&&u.detail?.done,{...u,target:void 0})),{type:`${e}.mutate`}),i&&c.abort())},c=D.observe(r,D.subtree(),s,{signal:t,withArrayMethodDescriptors:n});return J.call(this).add(c),c}function Fe(r,e,{signal:t,honourDoneMutationFlags:n=!1}={}){if(!b(r))throw new TypeError("data must be a plain object and not a stream");if(typeof e!="string")throw new TypeError("eventID must be a non-empty string");let o=f=>{if(!f.data?.length)return;let a;D.batch(r,()=>{for(let i of f.data){if(a=!a&&n&&i.detail?.done,i.argumentsList){let u=i.path.length?D.get(r,D.path(...i.path)):r;D.proxy(u)[i.operation](...i.argumentsList);continue}if(i.key!=="length"||["set","defineProperty","deleteProperty"].includes(i.operation)){let u=i.path.length===1?r:D.get(r,D.path(...i.path.slice(0,-1)));i.type==="delete"?D.deleteProperty(u,i.key):D.set(u,i.key,i.value)}}}),a&&s()};this.addEventListener(`${e}.mutate`,o,{signal:t});let s=()=>this.removeEventListener(`${e}.mutate`,o);return J.call(this).add(s),s}var ce=class extends ue(BroadcastChannel){constructor(e,{autoStart:t=!0,postAwaitsOpen:n=!1,clientServerMode:o=null,autoClose:s=!0}={}){super(e);let c=P(this);if(o&&!["server","client"].includes(o))throw new Error('clientServerMode must be "server" or "client"');c.set("options",{autoStart:t,postAwaitsOpen:n,clientServerMode:o,autoClose:s}),this.constructor.upgradeEvents(this)}__postMessage(e,t){BroadcastChannel.prototype.postMessage.call(this,e)}};var le=class extends MessageChannel{constructor({autoStart:e=!0,postAwaitsOpen:t=!1}={}){super(),[this.port1,this.port2].forEach((n,o)=>{P(n).set("options",{autoStart:e,postAwaitsOpen:t}),E.upgradeInPlace(n)})}};var Q=class extends E{#e=new Set;get length(){return this.#e.size}[Symbol.iterator](){return this.#e[Symbol.iterator]()}constructor({autoClose:e=!0}={}){super({autoStart:!1,postAwaitsOpen:!0,autoClose:e})}addPort(e,{enableBubbling:t=!0}={}){if(!(e instanceof E))throw new TypeError("Port must be a WQMessagePort instance.");if(this.#e.has(e))return;this.#e.add(e);let n=P(e);if(t){if(n.get("parentNode"))throw new TypeError("Incoming port already has a parent node.");n.set("parentNode",this)}e.readyStateChange("open").then(()=>this.start()),e.readyStateChange("close").then(o);let o=()=>{this.#e.has(e)&&(this.#e.delete(e),t&&n.get("parentNode")===this&&n.set("parentNode",null),this.#e.size===0&&R(this).autoClose&&this.close())};return o}findPort(e){for(let t of this.#e)if(e(t))return t}_postMessage(e,t,n){for(let o of this.#e)o!==n&&o.postMessage(e,t)}close(...e){for(let t of this.#e)t.close?.(...e)}};var pe=class extends Q{#e;get namespace(){return this.#e}constructor(e=null){super(),this.#e=e}addPort(e,{resolveData:t=null}={}){let n=(i,...u)=>t?t(i,...u):i,o=super.addPort(e,{enableBubbling:!1}),s=e.forwardPort("*",this,{bidirectional:!1,resolveData:n,namespace1:this.namespace,namespace2:this.namespace}),c=this.namespace&&`${this.namespace}:message`||"message";this.postMessage(n({event:"joins"},e,this),{type:c,relayedFrom:e});let f=()=>{this.postMessage(n({event:"leaves"},e,this),{type:c,relayedFrom:e})},a=()=>{f(),s(),o()};return e.readyStateChange("close").then(a),a}};var me=class extends ue(EventTarget){#e;constructor(e,{autoStart:t=!0,naturalOpen:n=!0,postAwaitsOpen:o=!1}={}){if(super(),this.#e=typeof e=="string"?new WebSocket(e):e,P(this).set("options",{autoStart:t,naturalOpen:n,postAwaitsOpen:o}),this.constructor.upgradeEvents(this.#e,this),n&&t&&this.#e.readyState===WebSocket.OPEN&&this.start(),this.#e.readyState===WebSocket.CLOSED)try{this.close()}catch{}}static _hydrateMessage(e,t){try{let n;if(typeof t.data=="string"&&v(n=JSON.parse(t.data))&&n[".wq"])return Object.defineProperty(t,"data",{value:n,configurable:!0}),super._hydrateMessage(e,t)}catch{}return t}__postMessage(e,t){this.#e.send(JSON.stringify(e),t)}};Object.assign(globalThis,Le);})();
|
|
1
|
+
(()=>{var Xe=Object.defineProperty;var he=(r,e)=>{for(var t in e)Xe(r,t,{get:e[t],enumerable:!0})};var Ne={};he(Ne,{BroadcastChannelPlus:()=>pe,MessageChannelPlus:()=>me,MessageEventPlus:()=>M,MessagePortPlus:()=>E,Observer:()=>A,RelayPort:()=>de,StarPort:()=>X,WebSocketPort:()=>J});function w(r){return!Array.isArray(r)&&typeof r=="object"&&r}function H(r){return typeof r}function T(r){return Array.isArray(r)}function G(r){return typeof r=="function"}function ge(r){return r===null||r===""}function k(r){return arguments.length&&(r===void 0||typeof r>"u")}function b(r){return Array.isArray(r)||typeof r=="object"&&r||G(r)}function ye(r){return ge(r)||k(r)||r===!1||r===0||b(r)&&!Object.keys(r).length}function C(r){return G(r)||r&&{}.toString.call(r)==="[object function]"}function se(r){return r instanceof String||typeof r=="string"&&r!==null}function _e(r){return!se(r)&&!k(r.length)}function $(r,...e){if(!r||!["object","function"].includes(typeof r))throw new Error("Argument #1 must be of type object");let t=r[Symbol.for("wq")];if(t||(t=new ie,Object.defineProperty(r,Symbol.for("wq"),{value:t,enumerable:!1,configurable:!1,writable:!1})),!e.length)return t;let n,o;for(;n=e.shift();)(o=t)&&!(t=t.get(n))&&(t=new ie,o.set(n,t));return t}var ie=class extends Map{};var M=class extends MessageEvent{#e;get originalTarget(){return this.#e}#n;get eventID(){return this.#n}#r;get data(){return this.#r}#o;get live(){return this.#o}#a;get bubbles(){return this.#a}#f;get forwarded(){return this.#f}#s;get honourDoneMutationFlags(){return this.#s}#t=[];get ports(){return this.#t}constructor(e,{originalTarget:t=null,type:n="message",eventID:o,live:s=!1,honourDoneMutationFlags:l=!1,bubbles:f=!1,forwarded:a=!1,ports:i=[]}={}){if(n&&typeof n!="string")throw new TypeError("Where specified, wqEventOptions.type must be a string");super(n),this.#r=e,this.#e=t,this.#n=o,this.#o=s,this.#a=f,this.#f=a,this.#s=l,this.#t=i;let u=this.#e&&j(this.#e)||{};if(this.#t.forEach(c=>E.upgradeInPlace(c,{autoStart:u.autoStart,postAwaitsOpen:u.postAwaitsOpen})),b(this.#r)&&this.#o){if(typeof o!="string")throw new TypeError("eventID must be a non-empty string");xe.call(t,this.#r,this.#n,{honourDoneMutationFlags:this.#s})}}#u=!1;get immediatePropagationStopped(){return this.#u}stopImmediatePropagation(){this.#u=!0,this.#i=!0,super.stopImmediatePropagation()}#i=!1;get propagationStopped(){return this.#i}stopPropagation(){this.#i=!0,super.stopPropagation()}#l=!1;get defaultPrevented(){return this.#l}preventDefault(){this.#l=!0,super.preventDefault()}respondWith(e,t=[]){for(let n of this.#t)n.postMessage(e,t);return!!this.#t.length}};var Le={};he(Le,{any:()=>yt,apply:()=>Ie,batch:()=>Ce,construct:()=>Ae,defineProperties:()=>wt,defineProperty:()=>te,deleteProperties:()=>vt,deleteProperty:()=>re,get:()=>R,getOwnPropertyDescriptor:()=>fe,getOwnPropertyDescriptors:()=>bt,getPrototypeOf:()=>Ee,has:()=>ue,intercept:()=>_t,isExtensible:()=>Me,map:()=>xt,observe:()=>qe,ownKeys:()=>Se,path:()=>ht,preventExtensions:()=>je,reduce:()=>De,set:()=>W,setPrototypeOf:()=>Te,subtree:()=>gt});function F(r,e=!0){return T(r)?r:!e&&w(r)?[r]:r!==!1&&r!==0&&ye(r)?[]:_e(r)?Array.prototype.slice.call(r):w(r)?Object.values(r):[r]}var v=(r,...e)=>$(r,"observerAPI",...e),K=(r,e)=>r instanceof Promise?r.then(e):e(r),ae={};var z=class{constructor(e,t){this.registry=e,Object.assign(this,{...t,target:e.target}),this.params.signal&&this.params.signal.addEventListener("abort",()=>this.remove())}remove(){return this.removed=!0,this.registry.removeRegistration(this)}};var Y=class extends z{constructor(){super(...arguments),this.emit.currentRegistration=this,Object.defineProperty(this,"abortController",{value:new AbortController}),Object.defineProperty(this,"signal",{value:this.abortController.signal}),ae.setMaxListeners?.(0,this.signal)}remove(){this.abortController.abort(),super.remove()}fire(e){if(this.emit.recursionTarget&&!["inject","force-async","force-sync"].includes(this.params.recursions))return;let t=e,n=this.filter;if(n!==1/0&&(n=F(n,!1))&&(t=e.filter(s=>n.includes(s.key))),this.params.diff&&(t=t.filter(s=>s.type!=="set"||s.value!==s.oldValue)),!t.length)return;if(["inject","defer"].includes(this.params.recursions)){if(this.emit.recursionTarget){this.emit.recursionTarget.push(...t);return}this.emit.recursionTarget=this.params.recursions==="inject"?t:[]}let o=this.filter===1/0||Array.isArray(this.filter)?this.emit(t,this):this.emit(t[0],this);return K(o,s=>{let l=this.emit.recursionTarget;return delete this.emit.recursionTarget,this.params.recursions==="defer"&&l?.length?this.emit.currentRegistration.fire(l):s})}};var B=class{constructor(e){this.target=e,this.entries=[]}addRegistration(e){return this.entries.push(e),e}removeRegistration(e){this.entries=this.entries.filter(t=>t!==e)}static _getInstance(e,t,n=!0,o=this.__namespace){if(!b(t))throw new Error(`Subject must be of type object; "${H(t)}" given!`);let s=this;return o&&v(globalThis,"observerAPI","namespaces").has(e+"-"+o)&&(s=v(globalThis,"observerAPI","namespaces").get(e+"-"+o),e+="-"+o),!v(t,"registry").has(e)&&n&&v(t,"registry").set(e,new s(t)),v(t,"registry").get(e)}static _namespace(e,t,n=null){if(e+="-"+t,arguments.length===2)return v(globalThis,"observerAPI","namespaces").get(e);if(!(n.prototype instanceof this))throw new Error(`The implementation of the namespace ${this.name}.${t} must be a subclass of ${this.name}.`);v(globalThis,"observerAPI","namespaces").set(e,n),n.__namespace=t}};var P=class{constructor(e,t){if(this.target=e,!t.operation)throw new Error("Descriptor operation must be given in definition!");Object.assign(this,t)}};var L=class extends B{static getInstance(e,t=!0,n=null){return super._getInstance("listeners",...arguments)}static namespace(e,t=null){return super._namespace("listeners",...arguments)}constructor(e){super(e),this.batches=[]}addRegistration(e,t,n){return super.addRegistration(new Y(this,{filter:e,emit:t,params:n}))}emit(e,{eventsArePropertyDescriptors:t=!1,eventIsArrayMethodDescriptor:n=!1}={}){if(this.batches.length){let o=this.batches[0].params.arrayMethodName;this.batches[0].snapshots.push({events:[...e],arrayMethodName:o,eventsArePropertyDescriptors:t,eventIsArrayMethodDescriptor:n});return}this.$emit(this.entries,[{events:e,eventsArePropertyDescriptors:t,eventIsArrayMethodDescriptor:n}])}$emit(e,t){let n=0,o=0,s=0;for(let u of e)n+=1,u.params.withPropertyDescriptors&&(o+=1),u.params.withArrayMethodDescriptors&&(s+=1);let l=[],f=[],a=[],i=[];for(let u of t){let c=u.arrayMethodName,p=u.eventsArePropertyDescriptors,g=u.eventIsArrayMethodDescriptor;for(let m of u.events)if(c&&(m.operation=c),o&&(s&&l.push(m),g||s!==n&&f.push(m)),o!==n){let h=m;if(p){let{target:y,type:x,..._}=m;h=new P(y,{type:"set",..._}),Object.defineProperty(h,"value","get"in _.value?{get:()=>_.value.get()}:{value:_.value.value}),_.oldValue&&Object.defineProperty(h,"oldValue","get"in _.oldValue?{get:()=>_.oldValue.get()}:{value:_.oldValue.value})}s&&a.push(h),g||s!==n&&i.push(h)}}for(let u of e)u.params.withPropertyDescriptors?u.params.withArrayMethodDescriptors?l.length&&u.fire(l):f.length&&u.fire(f):u.params.withArrayMethodDescriptors?a.length&&u.fire(a):i.length&&u.fire(i)}batch(e,t={}){this.batches.unshift({entries:[...this.entries],snapshots:[],params:t});let n=e();return K(n,o=>{let s=this.batches.shift();return s.snapshots.length&&this.$emit(s.entries,s.snapshots),o})}};var Z=class extends z{exec(e,t,n){return this.running||!this.traps[e.operation]?t(...Array.prototype.slice.call(arguments,2)):(this.running=!0,this.traps[e.operation](e,n,(...o)=>(this.running=!1,t(...o))))}};var N=class extends B{static getInstance(e,t=!0,n=null){return super._getInstance("traps",...arguments)}static namespace(e,t=null){return super._namespace("traps",...arguments)}addRegistration(e){return super.addRegistration(new Z(this,e))}emit(e,t=null){let n=this;return function o(s,...l){let f=n.entries[s];return f?f.exec(e,(...a)=>o(s+1,...a),...l):t?t(e,...l):l[0]}(0)}};var Oe={};he(Oe,{accessorize:()=>mt,proxy:()=>ve,unaccessorize:()=>dt,unproxy:()=>ee});var Be=Symbol("wqOriginal");function mt(r,e,t={}){r=Pe(r);let n=v(r,"accessorizedProps");function o(a){let i,u=r;do i=Object.getOwnPropertyDescriptor(u,a);while(!i&&(u=Object.getPrototypeOf(u)));return i?{proto:u,descriptor:i}:{descriptor:{value:void 0,configurable:!0,enumerable:!0,writable:!0}}}function s(a){if(n.has(a+""))return!0;let i=o(a);i.getValue=function(p=!1){return p?this.descriptor:this.descriptor.get?this.descriptor.get():this.descriptor.value},i.setValue=function(p,g=!1){if(this.dirty=!0,g){this.descriptor=p;return}return this.descriptor.set?this.descriptor.set(p)!==!1:(this.descriptor.value=p,!0)},i.intact=function(){let p=Object.getOwnPropertyDescriptor(r,a);return p?.get===c.get&&p?.set===c.set&&n.get(a+"")===this},i.restore=function(){return this.intact()?(this.proto&&this.proto!==r||!this.proto&&!this.dirty?delete r[a]:Object.defineProperty(r,a,this.descriptor),n.delete(a+""),!0):!1},n.set(isNaN(a)?a:parseInt(a),i);let{enumerable:u=!0}=i.descriptor,c={enumerable:u,configurable:!0};("value"in i.descriptor||i.descriptor.set)&&(c.set=function(p){return W(this,a,p,t)}),("value"in i.descriptor||i.descriptor.get)&&(c.get=function(){return R(this,a,t)});try{return Object.defineProperty(r,a,c),!0}catch{return n.delete(a+""),!1}}let f=(Array.isArray(e)?e:e===void 0?Object.keys(r):[e]).map(s);return e===void 0||Array.isArray(e)?f:f[0]}function dt(r,e,t={}){r=Pe(r);let n=v(r,"accessorizedProps");function o(f){return n.has(f+"")?n.get(f+"").restore():!0}let l=(Array.isArray(e)?e:e===void 0?Object.keys(r):[e]).map(o);return e===void 0||Array.isArray(e)?l:l[0]}function ve(r,e={},t=void 0){let n=Pe(r);if(typeof e.membrane=="boolean")throw new Error("The params.membrane parameter cannot be of type boolean.");if(e.membrane&&v(n,"membraneRef").has(e.membrane))return v(n,"membraneRef").get(e.membrane);let o={apply:(f,a,i)=>Ie(f,a,i,void 0,e),construct:(f,a,i=null)=>Ae(f,a,i,e),defineProperty:(f,a,i)=>te(f,a,i,e),deleteProperty:(f,a)=>re(f,a,e),get:(f,a,i=null)=>{if(a===Be)return n;let u={...e,receiver:i},c=R(f,a,u);return Array.isArray(f)&&typeof c=="function"&&!/^class\s?/.test(Function.prototype.toString.call(c))?ve(c,{...e,arrayMethodName:a,membrane:i},t):e.chainable&&b(c)&&a!=="prototype"&&!(typeof c=="function"&&/^class\s?|\{\s\[native\scode\]\s\}$/.test(Function.prototype.toString.call(c)))?ve(c,e,t):c},getOwnPropertyDescriptor:(f,a)=>fe(f,a,e),getPrototypeOf:f=>Ee(f,e),has:(f,a)=>ue(f,a,e),isExtensible:f=>Me(f,e),ownKeys:f=>Se(f,e),preventExtensions:f=>je(f,e),set:(f,a,i,u=null)=>W(f,a,i,{...e,receiver:u}),setPrototypeOf:(f,a)=>Te(f,a,e)},s=t?.(o)||o,l=new Proxy(n,s);return e.membrane&&v(n,"membraneRef").set(e.membrane,l),l}function ee(r){return r&&r[Be]||r}function Pe(r){if(!r||!b(r))throw new Error("Target must be of type object!");return ee(r)}var ne=class extends Array{};function ht(...r){return new ne(...r)}var V=class extends Array{};function gt(){return new V}function yt(){return 1/0}function De(r,e,t,n=s=>s,o={}){let s=e instanceof V;if(!(!s&&!e?.length))return function l(f,a,i,u){let c=u||a[i.level]instanceof V,p=c?1/0:a[i.level],g=c?!1:i.level===a.length-1;return f instanceof P&&f.operation!=="get"?i={...i,probe:"always"}:i.probe!=="always"&&(i={...i,probe:!g}),t(f,p,(m,...h)=>{let y=d=>{d instanceof P&&(d.path="key"in d?[d.key]:[],f instanceof P&&(d.path="key"in d?f.path.concat(d.key):f.path.slice(0),Object.defineProperty(d,"context",{get:()=>f,configurable:!0})))},x=h[0]||{},_=d=>{if(d instanceof P&&"argumentsList"in d)return;let I=q(d,!1);return K(I,S=>(d instanceof P?d.value=S:d=S,l(d,a,{...i,...x,keyInParent:d.key,level:i.level+1},c)))};if(oe(p)&&Array.isArray(m)){if(m.forEach(y),g)return n(m,...h);c&&m[0]instanceof P&&(m[0].operation!=="get"||o.asGet)&&n(m,...h);for(let d of m)_(d);return}return y(m),g?n(m,...h):_(m)},i)}(r,e.slice(0),{...o,level:0},s)}function qe(r,e,t,n={}){let o=q(r,!n.level);if(C(arguments[1])&&([,t,n={}]=arguments,e=1/0),!C(t))throw new Error(`Handler must be a function; "${H(t)}" given!`);if(e instanceof ne||e instanceof V)return De(o,e,qe,t,n);if(n={...n,descripted:!0},delete n.live,!b(o))return n.probe&&R(o,e,t,n)||void 0;let s=We(o,e,t,n);return n.probe?R(o,e,s,n):s()}function _t(r,e,t={}){let n=q(r);return w(e)||([,,,t={}]=arguments,e={[arguments[1]]:arguments[2]}),N.getInstance(n,!0,t.namespace).addRegistration({traps:e,params:t})}function fe(r,e,t=o=>o,n={}){return D(r,"getOwnPropertyDescriptor",{key:e},t,n)}function bt(r,e,t=o=>o,n={}){return D(r,"getOwnPropertyDescriptors",{key:e},t,n)}function Ee(r,e=n=>n,t={}){return D(r,"getPrototypeOf",{},e,t)}function Me(r,e=n=>n,t={}){return D(r,"isExtensible",{},e,t)}function Se(r,e=n=>n,t={}){return D(r,"ownKeys",{},e,t)}function ue(r,e,t=o=>o,n={}){return D(r,"has",{key:e},t,n)}function R(r,e,t=o=>o,n={}){let o,s=q(r,!n.level);return w(t)?[n,t]=[t,l=>l]:n.live&&(o=!0),e instanceof ne||e instanceof V?De(s,e,R,t,{...n,asGet:!0}):Pt(s,e,l=>{let f=[...l];return function a(i,u,c){if(!u.length)return c(i);let p=u.shift();if(!["string","number","symbol"].includes(typeof p))throw new Error(`Property name/key ${p} invalid.`);function g(y,x=void 0){let _=S=>(y.value=S,a([...i,n.live||n.descripted?y:S],u,c));if(arguments.length>1)return _(x);if(!b(s))return _(s?.[y.key]);let d=v(s,"accessorizedProps",!1),I=d&&d.get(y.key);if(I&&I.intact())return _(I.getValue(n.withPropertyDescriptors));if(n.withPropertyDescriptors){let S=Object.getOwnPropertyDescriptor(s,y.key);return _(S)}return _(Reflect.get(s,y.key))}let m=new P(s,{type:"get",key:p,value:void 0,operation:"get",related:f});if(!b(s))return g(m);let h=N.getInstance(s,!1,n.namespace);return h?h.emit(m,g):g(m)}([],l.slice(0),a=>{let i=oe(e)?a:a[0];return o&&b(s)?We(s,e,t,n,r.key)(i):t(i)})},n)}function Ce(r,e,t={}){let n=q(r);return L.getInstance(n,!0,t.namespace).batch(e,t)}function xt(r,e,t={}){e=q(e),r=q(r);let n=(t.only||[]).slice(0),o=(t.except||[]).slice(0),s=Object.keys(t.spread?[...r]:r).map(i=>isNaN(i)?i:parseInt(i)),l=n.length?n.filter(i=>s.includes(i)):s.filter(i=>!o.includes(i)),f=i=>!Array.isArray(e)||isNaN(i)?i:i-o.filter(u=>u<i).length,a=i=>{let u=fe(r,i,t);"value"in u&&u.writable&&u.enumerable&&u.configurable?W(e,f(i),u.value,t):(u.enumerable||t.onlyEnumerable===!1)&&te(e,i,{...u,configurable:!0},t)};return Ce(e,()=>{l.forEach(a)}),qe(r,i=>{i.filter(u=>n.length?n.includes(u.key):!o.includes(u.key)).forEach(u=>{if(u.type==="delete")return re(e,f(u.key),t);if(u.type==="def"){(u.value.enumerable||t.onlyEnumerable===!1)&&te(e,f(u.key),{...u.value,configurable:!0},t);return}a(u.key)})},{...t,withPropertyDescriptors:!0})}function W(r,e,t,n=l=>l,o={},s=!1){let l=q(r),f=[[e,t]];w(e)&&([,,n=i=>i,o={},s=!1]=arguments,f=Object.entries(e)),w(n)&&([s,o,n]=[typeof o=="boolean"?o:s,n,i=>i]);let a=f.map(([i])=>i);return function i(u,c,p){if(!c.length)return p(u);let[g,m]=c.shift();function h(x,_=void 0){let d=Qe=>(x.status=Qe,i(u.concat(x),c,p));if(arguments.length>1)return d(x,_);let I=v(l,"accessorizedProps",!1),S=I&&I.get(x.key);return x.type==="def"?(S&&!S.restore()&&d(!1),Object.defineProperty(l,x.key,x.value),d(!0)):S&&S.intact()?d(S.setValue(x.value)):d(Reflect.set(l,x.key,x.value))}function y(x,_){if(o.diff&&m===_)return i(u,c,p);let d=new P(l,{type:s?"def":"set",key:g,value:m,isUpdate:x,oldValue:_,related:[...a],operation:s?"defineProperty":"set",detail:o.detail}),I=N.getInstance(l,!1,o.namespace);return I?I.emit(d,h):h(d)}return ue(l,g,x=>{if(!x)return y(x);if(g==="length"&&Array.isArray(l)&&v(l).has("$length"))return y(!0,v(l).get("$length"));let _={...o,withPropertyDescriptors:s};return R(l,g,d=>y(x,d),_)},o)}([],f.slice(0),i=>{let u=L.getInstance(l,!1,o.namespace);return u&&u.emit(i,{eventsArePropertyDescriptors:!!s}),n(oe(e)?i.map(c=>c.status):i[0]?.status)})}function te(r,e,t,n=s=>s,o={}){return W(r,e,t,n,o,!0)}function wt(r,e,t=o=>o,n={}){return W(r,e,t,n,!0)}function re(r,e,t=o=>o,n={}){let o=q(r);w(t)&&([n,t]=[t,f=>f]);let s=F(e,!1),l=[...s];return function f(a,i,u){if(!i.length)return u(a);let c=i.shift();function p(m,h=void 0){let y=d=>(m.status=d,f(a.concat(m),i,u));if(arguments.length>1)return y(m,h);let x=v(o,"accessorizedProps",!1),_=x&&x.get(m.key);return _&&!_.restore()&&y(!1),y(Reflect.deleteProperty(o,m.key))}function g(m){let h=new P(o,{type:"delete",key:c,oldValue:m,related:[...l],operation:"deleteProperty",detail:n.detail}),y=N.getInstance(o,!1,n.namespace);return y?y.emit(h,p):p(h)}return R(o,c,g,n)}([],s.slice(0),f=>{let a=L.getInstance(o,!1,n.namespace);return a&&a.emit(f),t(oe(e)?f.map(i=>i.status):f[0].status)})}function vt(r,e,t=o=>o,n={}){return re(...arguments)}function Ae(r,e,t=null,n=s=>s,o={}){return D(r,"construct",arguments.length>2?{argumentsList:e,newTarget:t}:{argumentsList:e},n,o)}function Ie(r,e,t,n=s=>s,o={}){let s=ee(e),l;if(Array.isArray(e)){if(o.arrayMethodName){let f=new P(s,{operation:o.arrayMethodName,argumentsList:t});L.getInstance(s,!1,o.namespace)?.emit([f],{eventIsArrayMethodDescriptor:!0})}v(s).set("$length",s.length),l=Ce(s,()=>D(r,"apply",{thisArgument:e,argumentsList:t},n,o),o),v(s).delete("$length")}else l=D(r,"apply",{thisArgument:s,argumentsList:t},n,o);return l}function Te(r,e,t=o=>o,n={}){return D(r,"setPrototypeOf",{proto:e},t,n)}function je(r,e=n=>n,t={}){return D(r,"preventExtensions",{},e,t)}function We(r,e,t,n={}){let o=new AbortController;ae.setMaxListeners?.(0,o.signal),n.signal&&n.signal.addEventListener("abort",()=>o.abort());let s={...n,signal:o.signal},l=L.getInstance(r,!0,s.namespace),f=new Map;return function a(i=[],u=null){let c,p,g;if(oe(e)){if(u){g=!0,p=u;for(let m of i)f.get(m.key)?.remove(),f.delete(m.key)}else p=l.addRegistration(e,a,s);c={signal:p.signal,childRegistrations:f}}else u?.remove(),p=l.addRegistration(e,a,s),c={signal:p.signal};if(s.childRegistrations&&s.keyInParent&&s.childRegistrations.set(s.keyInParent,p),arguments.length){let m=t(i,c);if(arguments.length>1)return m}return o}}function D(r,e,t={},n=s=>s,o={}){r=q(r),w(n)&&([o,n]=[n,a=>a]);function s(a,i){return arguments.length>1?n(i):n((Reflect[e]||Object[e])(r,...Object.values(t)))}let l=new P(r,{operation:e,...t}),f=N.getInstance(r,!1,o.namespace);return f?f.emit(l,s):s(l)}function oe(r){return r===1/0||Array.isArray(r)}function q(r,e=!0,t=!0){if((!r||!b(r))&&e)throw new Error(`Object must be of type object or array! "${H(r)}" given.`);return r instanceof P&&(r.type==="def"&&t?r=typeof r.value.get=="function"?r.value.get():r.value.value:r=r.value),r&&ee(r)}function Pt(r,e,t,n={}){return e===1/0?n.level&&!b(r)?t([]):t(Object.entries(Object.getOwnPropertyDescriptors(r)).filter(([,o])=>o.writable!==!1&&!o.get&&!o.set).map(([o])=>o)):t(F(e,!1))}var Ot={...Le,...Oe},A=Ot;var J=class extends le(EventTarget){#e;constructor(e,{autoStart:t=!0,naturalOpen:n=!0,postAwaitsOpen:o=!1}={}){if(super(),this.#e=typeof e=="string"?new WebSocket(e):e,O(this).set("options",{autoStart:t,naturalOpen:n,postAwaitsOpen:o}),this.constructor.upgradeEvents(this.#e,this),n&&t&&this.#e.readyState===WebSocket.OPEN&&this.start(),this.#e.readyState===WebSocket.CLOSED)try{this.close()}catch{}}static _hydrateMessage(e,t){try{let n;if(typeof t.data=="string"&&w(n=JSON.parse(t.data))&&n[".wq"])return Object.defineProperty(t,"data",{value:n,configurable:!0}),super._hydrateMessage(e,t)}catch{}return t}__postMessage(e,t){this.#e.send(JSON.stringify(e),t)}};var Ve=(r,...e)=>$(r,"port+",...e),j=r=>$(r,"port+","meta").get("options")||{},O=r=>$(r,"port+","meta"),Ue=["addEventListener","addRequestListener","postMessage","postRequest","dispatchEvent","relay","start","readyStateChange","removeEventListener","close"],He=["options","readyState","onmessage","onmessageerror"],E=class extends Ge(EventTarget){constructor(e={}){super(),Ve(this,"meta").set("options",e)}static[Symbol.hasInstance](e){return Function.prototype[Symbol.hasInstance].call(this,e)?!0:Ue.every(t=>typeof e[t]=="function")||He.every(t=>t in e)}};function Ge(r){return class extends r{static upgradeInPlace(e,t={}){if(e instanceof E)return e;let n=this.prototype;for(let s of Ue){let l=e[s],f=n[s];l&&Object.defineProperty(e,`_${s}`,{value:l.bind(e),configurable:!0}),Object.defineProperty(e,s,{value:f.bind(e),configurable:!0})}for(let s of He){let l=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(e),s),f=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(n),s);l&&Object.defineProperty(e,`_${s}`,{...l,configurable:!0}),Object.defineProperty(e,s,{...f,configurable:!0})}Ve(e,"meta").set("options",t),this.upgradeEvents(e)}static upgradeEvents(e,t=null){t||(t=e);let n=O(e);if(n.get("events+"))return;let o=O(t),s=j(t),l=U.call(t),f=Q.call(t);e instanceof BroadcastChannel&&(s.clientServerMode==="server"?o.set("clients",new Set):s.clientServerMode==="client"&&o.set("client_id",`client-${(0|Math.random()*9e6).toString(36)}`));let a=c=>{if(c instanceof M)return;if(e===t&&c.stopImmediatePropagation?.(),c=this._hydrateMessage?.(t,c)||c,c.data.ping==="connect"&&typeof c.data?.[".wq"]?.eventID=="string"&&(!(e instanceof WebSocket)||!s.naturalOpen)){let h=!0;e instanceof BroadcastChannel&&(s.clientServerMode==="server"&&typeof c.data.id=="string"?(o.get("clients").add(c.data.id),h="server"):c.data.id==="server"&&o.has("client_id")&&(h=o.get("client_id"))),c.ports?.forEach(y=>y.postMessage(h)),o.set("remote.start.called",!0),t.start();return}if(c.data.ping==="disconnect"&&typeof c.data?.[".wq"]?.eventID=="string"){let h=()=>{o.set("remote.close.called",!0),t.close()};e instanceof BroadcastChannel?s.clientServerMode==="server"&&typeof c.data.id=="string"?(o.get("clients").delete(c.data.id),!o.get("clients").size&&s.autoClose&&!f.close.state&&h()):s.clientServerMode==="client"&&c.data.id==="server"&&h():e instanceof MessagePort&&h();return}let p=c.data,g={};typeof c.data?.[".wq"]?.eventID=="string"&&({message:p,".wq":g}=c.data);let m=new M(p,{originalTarget:e,...g,ports:c.ports});t.dispatchEvent(m)},i=c=>{e instanceof WebSocket&&s.naturalOpen&&!(c instanceof M)&&(o.set("remote.start.called",!0),t.start())},u=c=>{(e instanceof WebSocket||e instanceof MessagePort)&&!(c instanceof M)&&(o.set("remote.close.called",!0),t.close())};n.set("internal_call",!0),e.addEventListener("message",a),e.addEventListener("error",a),e.addEventListener("open",i),e.addEventListener("close",u),n.delete("internal_call"),n.set("events+",!0),l.add(()=>{e.removeEventListener("message",a),e.removeEventListener("error",a),e.removeEventListener("open",i),e.removeEventListener("close",u),n.set("events+",!1)})}get options(){return{...j(this)}}get onmessageerror(){return typeof super.onmessageerror<"u"?super.onmessageerror:typeof this._onmessageerror<"u"?this._onmessageerror:null}set onmessageerror(e){if(typeof super.onmessageerror<"u"){super.onmessageerror=e;return}if(e!==null&&typeof e!="function")throw new TypeError("onmessageerror must be a function");if(Object.getOwnPropertyDescriptor(this,"_onmessageerror")?.set){this._onmessageerror=e;return}this._onmessageerror&&this.removeEventListener("messageerror",this._onmessageerror),this.addEventListener("messageerror",e),this._onmessageerror=e}get onmessage(){return typeof super.onmessage<"u"?super.onmessage:typeof this._onmessage<"u"?this._onmessage:null}set onmessage(e){let t=O(this),n=j(this);if(!t.get("internal_call")&&n.autoStart&&this.start(),typeof super.onmessage<"u"){super.onmessage=e;return}if(e!==null&&typeof e!="function")throw new TypeError("onmessage must be a function");if(Object.getOwnPropertyDescriptor(this,"_onmessage")?.set){this._onmessage=e;return}this._onmessage&&this.removeEventListener("message",this._onmessage),this.addEventListener("message",e),this._onmessage=e}addEventListener(...e){let t=O(this),n=j(this);return!t.get("internal_call")&&n.autoStart&&this.start(),U.call(this).add(()=>{this._removeEventListener?this._removeEventListener(...e):super.removeEventListener(...e)}),this._addEventListener?this._addEventListener(...e):super.addEventListener(...e)}dispatchEvent(e){let t=this._dispatchEvent?this._dispatchEvent(e):super.dispatchEvent(e);return e instanceof M&&Et.call(this,e),t}postMessage(e,t={}){let n=O(this),o=j(this);!n.get("internal_call")&&o.autoStart&&this.start();let s=Q.call(this);s.messaging.state=!0,s.messaging.resolve();let l,{portOptions:f,wqOptions:{relayedFrom:a,...i}}=ce.call(this,e,t);(i.type!=="message"||i.live||i.bubbles||f.transfer?.length&&(this instanceof BroadcastChannel||this instanceof J))&&(e={message:e,".wq":i}),t=f,l=a;let u=()=>{this._postMessage?this._postMessage(e,t,l):super.postMessage(e,t)};o.postAwaitsOpen?s.open.promise.then(u):u()}addRequestListener(e,t,n={}){let o=async s=>{let l=await t(s);for(let f of s.ports)f.postMessage(l)};this.addEventListener(e,o,n)}postRequest(e,t,n={}){let o;w(t)&&(n={once:!0,...t},o=new Promise(u=>{t=u}));let s=new MessageChannel;this.constructor.upgradeEvents(s.port1),s.port1.start();let{signal:l=null,once:f=!1,transfer:a=[],...i}=n;return s.port1.addEventListener("message",u=>t(u),{signal:l,once:f}),l?.addEventListener("abort",()=>{s.port1.close(),s.port2.close()}),this.postMessage(e,{...i,transfer:[s.port2].concat(a)}),o}relay({to:e,from:t,types:n="*",channel:o=null,resolveMessage:s=null,bidirectional:l=!1}={}){if(e&&t)throw new Error('Only one of "to" and "from" may be specified');if(t?e=this:t=this,e===t)throw new Error("Source and target ports cannot be the same");if(!(t instanceof E)||!(e instanceof E))throw new Error("Both source and target ports must be instance of MessagePortPlus.");if(typeof n!="function"&&!(n=[].concat(n)).length)throw new Error("Event types must be specified.");if(typeof o=="string")o={from:o};else if(w(o)){if(Object.keys(o).filter(u=>!["from","to"].includes(u)).length)throw new Error('Channel must be a string or an object of "from"/"to" members')}else if(o)throw new Error("Invalid channel parameter");let f=Ke.call(t),a={targetPort:e,types:n,channel:o,resolveMessage:s};f.add(a);let i;return l&&(i=e.relay({to:t,types:n,channel:o&&{to:o.from,from:o.to},resolveMessage:s,bidirectional:!1})),()=>{f.delete(a),i?.()}}channel(e,t=null){let n=new MessageChannel;return E.upgradeInPlace(n.port1,{autoStart:this.options.autoStart,postAwaitsOpen:this.options.postAwaitsOpen}),E.upgradeInPlace(n.port2,{autoStart:this.options.autoStart,postAwaitsOpen:this.options.postAwaitsOpen}),U.call(this).add(this.relay({channel:e,to:n.port1,bidirectional:!0,resolveMessage:t})),n.port1.start(),this.readyStateChange("close").then(()=>{n.port1.close()}),n.port2}projectMutations({from:e,to:t,...n}){if(!e||!t||typeof e=="string"&&typeof t=="string"||b(e)&&b(t))throw new Error('Invalid "from"/"to" parameters');if(typeof e=="string"){if(!b(t))throw new Error('Invalid "to" parameter. Object/array expected');return xe.call(this,t,e,n)}if(typeof t=="string"){if(!b(e))throw new Error('Invalid "from" parameter. Object/array expected');return Je.call(this,e,t,n)}throw new Error('Invalid "from"/"to" parameters')}get readyState(){let e=Q.call(this);return e.close.state?"closed":e.open.state?"open":"connecting"}readyStateChange(e){if(!["open","messaging","error","close"].includes(e))throw new Error(`Invalid readyState query "${e}"`);return Q.call(this)[e].promise}start(){let e=Q.call(this);if(e.open.state)return;let t,n=()=>{if(e.open.state)return;e.open.state=!0,e.open.resolve();let i=new M(null,{type:"open"});this._dispatchEvent?this._dispatchEvent(i):super.dispatchEvent(i),t?.port1.close(),t?.port2.close()},o=O(this),s=j(this);if(o.get("remote.start.called")){n();return}if(o.get("start.called"))return;o.set("start.called",!0),this._start?this._start():super.start?.(),t=new MessageChannel,t.port1.onmessage=i=>{this instanceof BroadcastChannel&&s.clientServerMode==="server"&&typeof i.data=="string"&&o.get("clients").add(i.data),n()};let{wqOptions:l}=ce.call(this),f=s.clientServerMode==="server"?"server":s.clientServerMode==="client"?o.get("client_id"):null,a={".wq":l,ping:"connect",id:f};this._postMessage?this._postMessage(a,{transfer:[t.port2]}):super.postMessage(a,{transfer:[t.port2]})}close(...e){let t=Q.call(this);if(t.close.state)return;t.close.state=!0;let n=O(this),o=j(this);if(!n.get("remote.close.called")&&(this instanceof BroadcastChannel||this instanceof MessagePort)){let{wqOptions:l}=ce.call(this),f=o.clientServerMode==="server"?"server":o.clientServerMode==="client"?n.get("client_id"):null,a={".wq":l,ping:"disconnect",id:f};this._postMessage?this._postMessage(a):super.postMessage(a)}this._close?this._close(...e):super.close(...e),t.close.resolve();let s=new M(null,{type:"close"});this._dispatchEvent?this._dispatchEvent(s):super.dispatchEvent(s),Mt.call(this)}}}function le(r){return class extends Ge(r){static _hydrateMessage(e,t){if(typeof t.data?.[".wq"]?.numPorts!="number"||typeof t.data[".wq"].eventID!="string")return t;let n=U.call(e),o=t.data[".wq"].numPorts;Object.defineProperty(t,"ports",{value:[],configurable:!0});for(let s=0;s<o;s++){let l=e.channel(`${t.data[".wq"].eventID}:${s}`);t.ports.push(l)}return t}_postMessage(e,t={}){let{transfer:n=[],...o}=t;if(typeof e?.[".wq"]?.eventID=="string"){let s=U.call(this),l=n.filter(a=>a instanceof MessagePort),f=l.length;for(let a=0;a<f;a++)E.upgradeInPlace(l[a]),s.add(this.relay({channel:`${e[".wq"].eventID}:${a}`,to:l[a],bidirectional:!0})),l[a].start(),l[a].readyStateChange("close").then(()=>{let{wqOptions:i}=ce.call(this),u={".wq":i,ping:"disconnect"};this.postMessage(u,{type:`${e[".wq"].eventID}:${a}:message`})});e[".wq"].numPorts=f}return this.__postMessage(e,o)}}}function Et(r){if(r.propagationStopped)return;let e=O(this);e.get("parentNode")instanceof EventTarget&&(r.bubbles||e.get("parentNode")?.findPort?.(n=>n===this)&&r instanceof M)&&e.get("parentNode").dispatchEvent(r);let t=Ke.call(this);if(t.size&&r instanceof M){let{type:n,eventID:o,data:s,live:l,bubbles:f,ports:a}=r,i=new WeakSet;for(let{targetPort:u,types:c,channel:p,resolveMessage:g}of t){if(i.has(u))continue;let m=n;p.from&&([,m]=new RegExp(`^${p.from.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}:([^:]+)$`).exec(n)||[],!m)||!(typeof c=="function"?c(m,this,u,p):[].concat(c).find(y=>y===m||y==="*"))||(i.add(u),u.postMessage(g?g(s,this,u,p):s,{transfer:a,type:p.to?`${p.to}:${m}`:m,eventID:o,bubbles:f,live:l,forwarded:!0,relayedFrom:this}))}}}function U(){let r=O(this);return r.has("garbage_collection")||r.set("garbage_collection",new Set),r.get("garbage_collection")}function Ke(){let r=O(this);return r.has("downstream_registry")||r.set("downstream_registry",new Set),r.get("downstream_registry")}function Q(){let r=O(this);if(!r.has("readystate_registry")){let e=t=>(t.promise=new Promise((n,o)=>(t.resolve=n,t.reject=o)),t);r.set("readystate_registry",{open:e({}),messaging:e({}),error:e({}),close:e({})})}return r.get("readystate_registry")}function Mt(){let r=O(this);for(let e of r.get("garbage_collection")||[])e instanceof AbortController?e.abort():typeof e=="function"&&e();r.get("garbage_collection")?.clear(),r.get("downstream_registry")?.clear()}function ce(r=void 0,e={}){if(Array.isArray(e))e={transfer:e};else if(!e||typeof e!="object")throw new TypeError("transferOrOptions must be an array or an object");let{type:t="message",eventID:n=null,live:o=!1,observing:s=!1,bubbles:l=!1,forwarded:f=!1,relayedFrom:a=null,signal:i=null,withArrayMethodDescriptors:u=!1,honourDoneMutationFlags:c=!1,...p}=e;return n||(n=`${t}-${(0|Math.random()*9e6).toString(36)}`),!s&&!f&&b(r)&&o&&!t?.endsWith(".mutate")&&(Je.call(this,r,n,{signal:i,withArrayMethodDescriptors:u,honourDoneMutationFlags:c}),s=!0),{portOptions:p,wqOptions:{type:t,eventID:n,live:o,observing:s,honourDoneMutationFlags:c,bubbles:l,forwarded:f,relayedFrom:a}}}function Je(r,e,{signal:t,withArrayMethodDescriptors:n=!0,honourDoneMutationFlags:o=!1}={}){if(!b(r))throw new TypeError("data must be a plain object and not a stream");if(typeof e!="string")throw new TypeError("eventID must be a non-empty string");let s=a=>{let i;n&&Array.isArray(a[0].target)&&!a[0].argumentsList&&!["set","defineProperty","deleteProperty"].includes(a[0].operation)||(this.postMessage(a.map(u=>(i=!i&&o&&u.detail?.done,{...u,target:void 0})),{type:`${e}.mutate`}),i&&l.abort())},l=A.observe(r,A.subtree(),s,{signal:t,withArrayMethodDescriptors:n});return U.call(this).add(l),l}function xe(r,e,{signal:t,honourDoneMutationFlags:n=!1}={}){if(!b(r))throw new TypeError("data must be a plain object and not a stream");if(typeof e!="string")throw new TypeError("eventID must be a non-empty string");let o=f=>{if(!f.data?.length)return;let a;A.batch(r,()=>{for(let i of f.data){if(a=!a&&n&&i.detail?.done,i.argumentsList){let u=i.path.length?A.get(r,A.path(...i.path)):r;A.proxy(u)[i.operation](...i.argumentsList);continue}if(i.key!=="length"||["set","defineProperty","deleteProperty"].includes(i.operation)){let u=i.path.length===1?r:A.get(r,A.path(...i.path.slice(0,-1)));i.type==="delete"?A.deleteProperty(u,i.key):A.set(u,i.key,i.value)}}}),a&&s()};this.addEventListener(`${e}.mutate`,o,{signal:t});let s=()=>this.removeEventListener(`${e}.mutate`,o);return U.call(this).add(s),s}var pe=class extends le(BroadcastChannel){constructor(e,{autoStart:t=!0,postAwaitsOpen:n=!1,clientServerMode:o=null,autoClose:s=!0}={}){super(e);let l=O(this);if(o&&!["server","client"].includes(o))throw new Error('clientServerMode must be "server" or "client"');l.set("options",{autoStart:t,postAwaitsOpen:n,clientServerMode:o,autoClose:s}),this.constructor.upgradeEvents(this)}__postMessage(e,t){BroadcastChannel.prototype.postMessage.call(this,e)}};var me=class extends MessageChannel{constructor({autoStart:e=!0,postAwaitsOpen:t=!1}={}){super(),[this.port1,this.port2].forEach((n,o)=>{E.upgradeInPlace(n,{autoStart:e,postAwaitsOpen:t})})}};var X=class extends E{#e=new Set;get length(){return this.#e.size}[Symbol.iterator](){return this.#e[Symbol.iterator]()}constructor({autoClose:e=!0}={}){super({autoStart:!1,postAwaitsOpen:!0,autoClose:e})}addPort(e,{enableBubbling:t=!0}={}){if(!(e instanceof E))throw new TypeError("Port must be a WQMessagePort instance.");if(this.#e.has(e))return;this.#e.add(e);let n=O(e);if(t){if(n.get("parentNode"))throw new TypeError("Incoming port already has a parent node.");n.set("parentNode",this)}e.readyStateChange("open").then(()=>this.start()),e.readyStateChange("close").then(o);let o=()=>{this.#e.has(e)&&(this.#e.delete(e),t&&n.get("parentNode")===this&&n.set("parentNode",null),this.#e.size===0&&j(this).autoClose&&this.close())};return o}findPort(e){for(let t of this.#e)if(e(t))return t}_postMessage(e,t,n){for(let o of this.#e)o!==n&&o.postMessage(e,t)}close(...e){for(let t of this.#e)t.close?.(...e)}};var de=class extends X{#e;get channelSpec(){return this.#e}constructor(e=null){if(super(),typeof e=="string")e={from:e,to:e};else if(w(e)){if(Object.keys(e).filter(t=>!["from","to"].includes(t)).length)throw new Error('Channel must be a string or an object of "from"/"to" members')}else if(e)throw new Error("Invalid channel parameter");this.#e=e}addPort(e,{resolveMessage:t=null}={}){let n=(i,...u)=>t?t(i,...u):i,o=super.addPort(e,{enableBubbling:!1}),s=e.relay({channel:this.#e,to:this,bidirectional:!1,resolveMessage:n}),l=this.#e.from&&`${this.#e.from}:message`||"message";this.postMessage(n({event:"joins"},e,this),{type:l,relayedFrom:e});let f=()=>{this.postMessage(n({event:"leaves"},e,this),{type:l,relayedFrom:e})},a=()=>{f(),s(),o()};return e.readyStateChange("close").then(a),a}};globalThis.webqit||(globalThis.webqit={});Object.assign(globalThis.webqit,Ne);})();
|
|
2
2
|
//# sourceMappingURL=main.js.map
|