@webqit/fetch-plus 0.1.19 → 0.1.21
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/dist/main.js +1 -1
- package/dist/main.js.map +3 -3
- package/package.json +3 -3
- package/src/ResponsePlus.js +1 -2
package/dist/main.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../node_modules/urlpattern-polyfill/dist/urlpattern.js", "../node_modules/urlpattern-polyfill/index.js", "../src/index.js", "../node_modules/@webqit/util/js/isObject.js", "../node_modules/@webqit/util/js/getType.js", "../node_modules/@webqit/util/js/isArray.js", "../node_modules/@webqit/util/js/isBoolean.js", "../node_modules/@webqit/util/js/isTypeFunction.js", "../node_modules/@webqit/util/js/isNull.js", "../node_modules/@webqit/util/js/isUndefined.js", "../node_modules/@webqit/util/js/isTypeObject.js", "../node_modules/@webqit/util/js/isEmpty.js", "../node_modules/@webqit/util/js/isFunction.js", "../node_modules/@webqit/util/js/isNumber.js", "../node_modules/@webqit/util/js/isNumeric.js", "../node_modules/@webqit/util/js/isPlainArray.js", "../node_modules/@webqit/util/js/isPlainObject.js", "../node_modules/@webqit/util/js/isString.js", "../node_modules/@webqit/util/js/isTypeArray.js", "../node_modules/@webqit/util/js/wq.js", "../node_modules/@webqit/util/str/after.js", "../node_modules/@webqit/util/str/before.js", "../node_modules/@webqit/url-plus/src/URLPatternPlus.js", "../node_modules/@webqit/observer/src/main.js", "../node_modules/@webqit/util/arr/from.js", "../node_modules/@webqit/observer/src/util.js", "../node_modules/@webqit/observer/src/core/Registration.js", "../node_modules/@webqit/observer/src/core/ListenerRegistration.js", "../node_modules/@webqit/observer/src/core/Registry.js", "../node_modules/@webqit/observer/src/core/Descriptor.js", "../node_modules/@webqit/observer/src/core/ListenerRegistry.js", "../node_modules/@webqit/observer/src/core/TrapsRegistration.js", "../node_modules/@webqit/observer/src/core/TrapsRegistry.js", "../node_modules/@webqit/observer/src/actors.js", "../node_modules/@webqit/observer/src/index.js", "../node_modules/@webqit/url-plus/src/URLSearchParamsPlus.js", "../src/FormDataPlus.js", "../src/messageParserMixin.js", "../src/HeadersPlus.js", "../src/ResponsePlus.js", "../src/fetchPlus.js", "../src/RequestPlus.js", "../node_modules/@webqit/port-plus/src/MessageEventPlus.js", "../node_modules/@webqit/port-plus/src/WebSocketPort.js", "../node_modules/@webqit/port-plus/src/MessagePortPlus.js", "../node_modules/@webqit/port-plus/src/BroadcastChannelPlus.js", "../src/LiveResponse.js", "../src/index.browser.js"],
|
|
4
|
-
"sourcesContent": ["var Pe=Object.defineProperty;var a=(e,t)=>Pe(e,\"name\",{value:t,configurable:!0});var P=class{type=3;name=\"\";prefix=\"\";value=\"\";suffix=\"\";modifier=3;constructor(t,r,n,c,l,f){this.type=t,this.name=r,this.prefix=n,this.value=c,this.suffix=l,this.modifier=f}hasCustomName(){return this.name!==\"\"&&typeof this.name!=\"number\"}};a(P,\"Part\");var Re=/[$_\\p{ID_Start}]/u,Ee=/[$_\\u200C\\u200D\\p{ID_Continue}]/u,v=\".*\";function Oe(e,t){return(t?/^[\\x00-\\xFF]*$/:/^[\\x00-\\x7F]*$/).test(e)}a(Oe,\"isASCII\");function D(e,t=!1){let r=[],n=0;for(;n<e.length;){let c=e[n],l=a(function(f){if(!t)throw new TypeError(f);r.push({type:\"INVALID_CHAR\",index:n,value:e[n++]})},\"ErrorOrInvalid\");if(c===\"*\"){r.push({type:\"ASTERISK\",index:n,value:e[n++]});continue}if(c===\"+\"||c===\"?\"){r.push({type:\"OTHER_MODIFIER\",index:n,value:e[n++]});continue}if(c===\"\\\\\"){r.push({type:\"ESCAPED_CHAR\",index:n++,value:e[n++]});continue}if(c===\"{\"){r.push({type:\"OPEN\",index:n,value:e[n++]});continue}if(c===\"}\"){r.push({type:\"CLOSE\",index:n,value:e[n++]});continue}if(c===\":\"){let f=\"\",s=n+1;for(;s<e.length;){let i=e.substr(s,1);if(s===n+1&&Re.test(i)||s!==n+1&&Ee.test(i)){f+=e[s++];continue}break}if(!f){l(`Missing parameter name at ${n}`);continue}r.push({type:\"NAME\",index:n,value:f}),n=s;continue}if(c===\"(\"){let f=1,s=\"\",i=n+1,o=!1;if(e[i]===\"?\"){l(`Pattern cannot start with \"?\" at ${i}`);continue}for(;i<e.length;){if(!Oe(e[i],!1)){l(`Invalid character '${e[i]}' at ${i}.`),o=!0;break}if(e[i]===\"\\\\\"){s+=e[i++]+e[i++];continue}if(e[i]===\")\"){if(f--,f===0){i++;break}}else if(e[i]===\"(\"&&(f++,e[i+1]!==\"?\")){l(`Capturing groups are not allowed at ${i}`),o=!0;break}s+=e[i++]}if(o)continue;if(f){l(`Unbalanced pattern at ${n}`);continue}if(!s){l(`Missing pattern at ${n}`);continue}r.push({type:\"REGEX\",index:n,value:s}),n=i;continue}r.push({type:\"CHAR\",index:n,value:e[n++]})}return r.push({type:\"END\",index:n,value:\"\"}),r}a(D,\"lexer\");function F(e,t={}){let r=D(e);t.delimiter??=\"/#?\",t.prefixes??=\"./\";let n=`[^${x(t.delimiter)}]+?`,c=[],l=0,f=0,s=\"\",i=new Set,o=a(u=>{if(f<r.length&&r[f].type===u)return r[f++].value},\"tryConsume\"),h=a(()=>o(\"OTHER_MODIFIER\")??o(\"ASTERISK\"),\"tryConsumeModifier\"),p=a(u=>{let d=o(u);if(d!==void 0)return d;let{type:g,index:y}=r[f];throw new TypeError(`Unexpected ${g} at ${y}, expected ${u}`)},\"mustConsume\"),A=a(()=>{let u=\"\",d;for(;d=o(\"CHAR\")??o(\"ESCAPED_CHAR\");)u+=d;return u},\"consumeText\"),xe=a(u=>u,\"DefaultEncodePart\"),N=t.encodePart||xe,H=\"\",$=a(u=>{H+=u},\"appendToPendingFixedValue\"),M=a(()=>{H.length&&(c.push(new P(3,\"\",\"\",N(H),\"\",3)),H=\"\")},\"maybeAddPartFromPendingFixedValue\"),X=a((u,d,g,y,Z)=>{let m=3;switch(Z){case\"?\":m=1;break;case\"*\":m=0;break;case\"+\":m=2;break}if(!d&&!g&&m===3){$(u);return}if(M(),!d&&!g){if(!u)return;c.push(new P(3,\"\",\"\",N(u),\"\",m));return}let S;g?g===\"*\"?S=v:S=g:S=n;let k=2;S===n?(k=1,S=\"\"):S===v&&(k=0,S=\"\");let E;if(d?E=d:g&&(E=l++),i.has(E))throw new TypeError(`Duplicate name '${E}'.`);i.add(E),c.push(new P(k,E,N(u),S,N(y),m))},\"addPart\");for(;f<r.length;){let u=o(\"CHAR\"),d=o(\"NAME\"),g=o(\"REGEX\");if(!d&&!g&&(g=o(\"ASTERISK\")),d||g){let m=u??\"\";t.prefixes.indexOf(m)===-1&&($(m),m=\"\"),M();let S=h();X(m,d,g,\"\",S);continue}let y=u??o(\"ESCAPED_CHAR\");if(y){$(y);continue}if(o(\"OPEN\")){let m=A(),S=o(\"NAME\"),k=o(\"REGEX\");!S&&!k&&(k=o(\"ASTERISK\"));let E=A();p(\"CLOSE\");let be=h();X(m,S,k,E,be);continue}M(),p(\"END\")}return c}a(F,\"parse\");function x(e){return e.replace(/([.+*?^${}()[\\]|/\\\\])/g,\"\\\\$1\")}a(x,\"escapeString\");function B(e){return e&&e.ignoreCase?\"ui\":\"u\"}a(B,\"flags\");function q(e,t,r){return W(F(e,r),t,r)}a(q,\"stringToRegexp\");function T(e){switch(e){case 0:return\"*\";case 1:return\"?\";case 2:return\"+\";case 3:return\"\"}}a(T,\"modifierToString\");function W(e,t,r={}){r.delimiter??=\"/#?\",r.prefixes??=\"./\",r.sensitive??=!1,r.strict??=!1,r.end??=!0,r.start??=!0,r.endsWith=\"\";let n=r.start?\"^\":\"\";for(let s of e){if(s.type===3){s.modifier===3?n+=x(s.value):n+=`(?:${x(s.value)})${T(s.modifier)}`;continue}t&&t.push(s.name);let i=`[^${x(r.delimiter)}]+?`,o=s.value;if(s.type===1?o=i:s.type===0&&(o=v),!s.prefix.length&&!s.suffix.length){s.modifier===3||s.modifier===1?n+=`(${o})${T(s.modifier)}`:n+=`((?:${o})${T(s.modifier)})`;continue}if(s.modifier===3||s.modifier===1){n+=`(?:${x(s.prefix)}(${o})${x(s.suffix)})`,n+=T(s.modifier);continue}n+=`(?:${x(s.prefix)}`,n+=`((?:${o})(?:`,n+=x(s.suffix),n+=x(s.prefix),n+=`(?:${o}))*)${x(s.suffix)})`,s.modifier===0&&(n+=\"?\")}let c=`[${x(r.endsWith)}]|$`,l=`[${x(r.delimiter)}]`;if(r.end)return r.strict||(n+=`${l}?`),r.endsWith.length?n+=`(?=${c})`:n+=\"$\",new RegExp(n,B(r));r.strict||(n+=`(?:${l}(?=${c}))?`);let f=!1;if(e.length){let s=e[e.length-1];s.type===3&&s.modifier===3&&(f=r.delimiter.indexOf(s)>-1)}return f||(n+=`(?=${l}|${c})`),new RegExp(n,B(r))}a(W,\"partsToRegexp\");var b={delimiter:\"\",prefixes:\"\",sensitive:!0,strict:!0},J={delimiter:\".\",prefixes:\"\",sensitive:!0,strict:!0},Q={delimiter:\"/\",prefixes:\"/\",sensitive:!0,strict:!0};function ee(e,t){return e.length?e[0]===\"/\"?!0:!t||e.length<2?!1:(e[0]==\"\\\\\"||e[0]==\"{\")&&e[1]==\"/\":!1}a(ee,\"isAbsolutePathname\");function te(e,t){return e.startsWith(t)?e.substring(t.length,e.length):e}a(te,\"maybeStripPrefix\");function ke(e,t){return e.endsWith(t)?e.substr(0,e.length-t.length):e}a(ke,\"maybeStripSuffix\");function _(e){return!e||e.length<2?!1:e[0]===\"[\"||(e[0]===\"\\\\\"||e[0]===\"{\")&&e[1]===\"[\"}a(_,\"treatAsIPv6Hostname\");var re=[\"ftp\",\"file\",\"http\",\"https\",\"ws\",\"wss\"];function U(e){if(!e)return!0;for(let t of re)if(e.test(t))return!0;return!1}a(U,\"isSpecialScheme\");function ne(e,t){if(e=te(e,\"#\"),t||e===\"\")return e;let r=new URL(\"https://example.com\");return r.hash=e,r.hash?r.hash.substring(1,r.hash.length):\"\"}a(ne,\"canonicalizeHash\");function se(e,t){if(e=te(e,\"?\"),t||e===\"\")return e;let r=new URL(\"https://example.com\");return r.search=e,r.search?r.search.substring(1,r.search.length):\"\"}a(se,\"canonicalizeSearch\");function ie(e,t){return t||e===\"\"?e:_(e)?K(e):j(e)}a(ie,\"canonicalizeHostname\");function ae(e,t){if(t||e===\"\")return e;let r=new URL(\"https://example.com\");return r.password=e,r.password}a(ae,\"canonicalizePassword\");function oe(e,t){if(t||e===\"\")return e;let r=new URL(\"https://example.com\");return r.username=e,r.username}a(oe,\"canonicalizeUsername\");function ce(e,t,r){if(r||e===\"\")return e;if(t&&!re.includes(t))return new URL(`${t}:${e}`).pathname;let n=e[0]==\"/\";return e=new URL(n?e:\"/-\"+e,\"https://example.com\").pathname,n||(e=e.substring(2,e.length)),e}a(ce,\"canonicalizePathname\");function le(e,t,r){return z(t)===e&&(e=\"\"),r||e===\"\"?e:G(e)}a(le,\"canonicalizePort\");function fe(e,t){return e=ke(e,\":\"),t||e===\"\"?e:w(e)}a(fe,\"canonicalizeProtocol\");function z(e){switch(e){case\"ws\":case\"http\":return\"80\";case\"wws\":case\"https\":return\"443\";case\"ftp\":return\"21\";default:return\"\"}}a(z,\"defaultPortForProtocol\");function w(e){if(e===\"\")return e;if(/^[-+.A-Za-z0-9]*$/.test(e))return e.toLowerCase();throw new TypeError(`Invalid protocol '${e}'.`)}a(w,\"protocolEncodeCallback\");function he(e){if(e===\"\")return e;let t=new URL(\"https://example.com\");return t.username=e,t.username}a(he,\"usernameEncodeCallback\");function ue(e){if(e===\"\")return e;let t=new URL(\"https://example.com\");return t.password=e,t.password}a(ue,\"passwordEncodeCallback\");function j(e){if(e===\"\")return e;if(/[\\t\\n\\r #%/:<>?@[\\]^\\\\|]/g.test(e))throw new TypeError(`Invalid hostname '${e}'`);let t=new URL(\"https://example.com\");return t.hostname=e,t.hostname}a(j,\"hostnameEncodeCallback\");function K(e){if(e===\"\")return e;if(/[^0-9a-fA-F[\\]:]/g.test(e))throw new TypeError(`Invalid IPv6 hostname '${e}'`);return e.toLowerCase()}a(K,\"ipv6HostnameEncodeCallback\");function G(e){if(e===\"\"||/^[0-9]*$/.test(e)&&parseInt(e)<=65535)return e;throw new TypeError(`Invalid port '${e}'.`)}a(G,\"portEncodeCallback\");function de(e){if(e===\"\")return e;let t=new URL(\"https://example.com\");return t.pathname=e[0]!==\"/\"?\"/-\"+e:e,e[0]!==\"/\"?t.pathname.substring(2,t.pathname.length):t.pathname}a(de,\"standardURLPathnameEncodeCallback\");function pe(e){return e===\"\"?e:new URL(`data:${e}`).pathname}a(pe,\"pathURLPathnameEncodeCallback\");function ge(e){if(e===\"\")return e;let t=new URL(\"https://example.com\");return t.search=e,t.search.substring(1,t.search.length)}a(ge,\"searchEncodeCallback\");function me(e){if(e===\"\")return e;let t=new URL(\"https://example.com\");return t.hash=e,t.hash.substring(1,t.hash.length)}a(me,\"hashEncodeCallback\");var C=class{#i;#n=[];#t={};#e=0;#s=1;#l=0;#o=0;#d=0;#p=0;#g=!1;constructor(t){this.#i=t}get result(){return this.#t}parse(){for(this.#n=D(this.#i,!0);this.#e<this.#n.length;this.#e+=this.#s){if(this.#s=1,this.#n[this.#e].type===\"END\"){if(this.#o===0){this.#b(),this.#f()?this.#r(9,1):this.#h()?this.#r(8,1):this.#r(7,0);continue}else if(this.#o===2){this.#u(5);continue}this.#r(10,0);break}if(this.#d>0)if(this.#A())this.#d-=1;else continue;if(this.#T()){this.#d+=1;continue}switch(this.#o){case 0:this.#P()&&this.#u(1);break;case 1:if(this.#P()){this.#C();let t=7,r=1;this.#E()?(t=2,r=3):this.#g&&(t=2),this.#r(t,r)}break;case 2:this.#S()?this.#u(3):(this.#x()||this.#h()||this.#f())&&this.#u(5);break;case 3:this.#O()?this.#r(4,1):this.#S()&&this.#r(5,1);break;case 4:this.#S()&&this.#r(5,1);break;case 5:this.#y()?this.#p+=1:this.#w()&&(this.#p-=1),this.#k()&&!this.#p?this.#r(6,1):this.#x()?this.#r(7,0):this.#h()?this.#r(8,1):this.#f()&&this.#r(9,1);break;case 6:this.#x()?this.#r(7,0):this.#h()?this.#r(8,1):this.#f()&&this.#r(9,1);break;case 7:this.#h()?this.#r(8,1):this.#f()&&this.#r(9,1);break;case 8:this.#f()&&this.#r(9,1);break;case 9:break;case 10:break}}this.#t.hostname!==void 0&&this.#t.port===void 0&&(this.#t.port=\"\")}#r(t,r){switch(this.#o){case 0:break;case 1:this.#t.protocol=this.#c();break;case 2:break;case 3:this.#t.username=this.#c();break;case 4:this.#t.password=this.#c();break;case 5:this.#t.hostname=this.#c();break;case 6:this.#t.port=this.#c();break;case 7:this.#t.pathname=this.#c();break;case 8:this.#t.search=this.#c();break;case 9:this.#t.hash=this.#c();break;case 10:break}this.#o!==0&&t!==10&&([1,2,3,4].includes(this.#o)&&[6,7,8,9].includes(t)&&(this.#t.hostname??=\"\"),[1,2,3,4,5,6].includes(this.#o)&&[8,9].includes(t)&&(this.#t.pathname??=this.#g?\"/\":\"\"),[1,2,3,4,5,6,7].includes(this.#o)&&t===9&&(this.#t.search??=\"\")),this.#R(t,r)}#R(t,r){this.#o=t,this.#l=this.#e+r,this.#e+=r,this.#s=0}#b(){this.#e=this.#l,this.#s=0}#u(t){this.#b(),this.#o=t}#m(t){return t<0&&(t=this.#n.length-t),t<this.#n.length?this.#n[t]:this.#n[this.#n.length-1]}#a(t,r){let n=this.#m(t);return n.value===r&&(n.type===\"CHAR\"||n.type===\"ESCAPED_CHAR\"||n.type===\"INVALID_CHAR\")}#P(){return this.#a(this.#e,\":\")}#E(){return this.#a(this.#e+1,\"/\")&&this.#a(this.#e+2,\"/\")}#S(){return this.#a(this.#e,\"@\")}#O(){return this.#a(this.#e,\":\")}#k(){return this.#a(this.#e,\":\")}#x(){return this.#a(this.#e,\"/\")}#h(){if(this.#a(this.#e,\"?\"))return!0;if(this.#n[this.#e].value!==\"?\")return!1;let t=this.#m(this.#e-1);return t.type!==\"NAME\"&&t.type!==\"REGEX\"&&t.type!==\"CLOSE\"&&t.type!==\"ASTERISK\"}#f(){return this.#a(this.#e,\"#\")}#T(){return this.#n[this.#e].type==\"OPEN\"}#A(){return this.#n[this.#e].type==\"CLOSE\"}#y(){return this.#a(this.#e,\"[\")}#w(){return this.#a(this.#e,\"]\")}#c(){let t=this.#n[this.#e],r=this.#m(this.#l).index;return this.#i.substring(r,t.index)}#C(){let t={};Object.assign(t,b),t.encodePart=w;let r=q(this.#c(),void 0,t);this.#g=U(r)}};a(C,\"Parser\");var V=[\"protocol\",\"username\",\"password\",\"hostname\",\"port\",\"pathname\",\"search\",\"hash\"],O=\"*\";function Se(e,t){if(typeof e!=\"string\")throw new TypeError(\"parameter 1 is not of type 'string'.\");let r=new URL(e,t);return{protocol:r.protocol.substring(0,r.protocol.length-1),username:r.username,password:r.password,hostname:r.hostname,port:r.port,pathname:r.pathname,search:r.search!==\"\"?r.search.substring(1,r.search.length):void 0,hash:r.hash!==\"\"?r.hash.substring(1,r.hash.length):void 0}}a(Se,\"extractValues\");function R(e,t){return t?I(e):e}a(R,\"processBaseURLString\");function L(e,t,r){let n;if(typeof t.baseURL==\"string\")try{n=new URL(t.baseURL),t.protocol===void 0&&(e.protocol=R(n.protocol.substring(0,n.protocol.length-1),r)),!r&&t.protocol===void 0&&t.hostname===void 0&&t.port===void 0&&t.username===void 0&&(e.username=R(n.username,r)),!r&&t.protocol===void 0&&t.hostname===void 0&&t.port===void 0&&t.username===void 0&&t.password===void 0&&(e.password=R(n.password,r)),t.protocol===void 0&&t.hostname===void 0&&(e.hostname=R(n.hostname,r)),t.protocol===void 0&&t.hostname===void 0&&t.port===void 0&&(e.port=R(n.port,r)),t.protocol===void 0&&t.hostname===void 0&&t.port===void 0&&t.pathname===void 0&&(e.pathname=R(n.pathname,r)),t.protocol===void 0&&t.hostname===void 0&&t.port===void 0&&t.pathname===void 0&&t.search===void 0&&(e.search=R(n.search.substring(1,n.search.length),r)),t.protocol===void 0&&t.hostname===void 0&&t.port===void 0&&t.pathname===void 0&&t.search===void 0&&t.hash===void 0&&(e.hash=R(n.hash.substring(1,n.hash.length),r))}catch{throw new TypeError(`invalid baseURL '${t.baseURL}'.`)}if(typeof t.protocol==\"string\"&&(e.protocol=fe(t.protocol,r)),typeof t.username==\"string\"&&(e.username=oe(t.username,r)),typeof t.password==\"string\"&&(e.password=ae(t.password,r)),typeof t.hostname==\"string\"&&(e.hostname=ie(t.hostname,r)),typeof t.port==\"string\"&&(e.port=le(t.port,e.protocol,r)),typeof t.pathname==\"string\"){if(e.pathname=t.pathname,n&&!ee(e.pathname,r)){let c=n.pathname.lastIndexOf(\"/\");c>=0&&(e.pathname=R(n.pathname.substring(0,c+1),r)+e.pathname)}e.pathname=ce(e.pathname,e.protocol,r)}return typeof t.search==\"string\"&&(e.search=se(t.search,r)),typeof t.hash==\"string\"&&(e.hash=ne(t.hash,r)),e}a(L,\"applyInit\");function I(e){return e.replace(/([+*?:{}()\\\\])/g,\"\\\\$1\")}a(I,\"escapePatternString\");function Te(e){return e.replace(/([.+*?^${}()[\\]|/\\\\])/g,\"\\\\$1\")}a(Te,\"escapeRegexpString\");function Ae(e,t){t.delimiter??=\"/#?\",t.prefixes??=\"./\",t.sensitive??=!1,t.strict??=!1,t.end??=!0,t.start??=!0,t.endsWith=\"\";let r=\".*\",n=`[^${Te(t.delimiter)}]+?`,c=/[$_\\u200C\\u200D\\p{ID_Continue}]/u,l=\"\";for(let f=0;f<e.length;++f){let s=e[f];if(s.type===3){if(s.modifier===3){l+=I(s.value);continue}l+=`{${I(s.value)}}${T(s.modifier)}`;continue}let i=s.hasCustomName(),o=!!s.suffix.length||!!s.prefix.length&&(s.prefix.length!==1||!t.prefixes.includes(s.prefix)),h=f>0?e[f-1]:null,p=f<e.length-1?e[f+1]:null;if(!o&&i&&s.type===1&&s.modifier===3&&p&&!p.prefix.length&&!p.suffix.length)if(p.type===3){let A=p.value.length>0?p.value[0]:\"\";o=c.test(A)}else o=!p.hasCustomName();if(!o&&!s.prefix.length&&h&&h.type===3){let A=h.value[h.value.length-1];o=t.prefixes.includes(A)}o&&(l+=\"{\"),l+=I(s.prefix),i&&(l+=`:${s.name}`),s.type===2?l+=`(${s.value})`:s.type===1?i||(l+=`(${n})`):s.type===0&&(!i&&(!h||h.type===3||h.modifier!==3||o||s.prefix!==\"\")?l+=\"*\":l+=`(${r})`),s.type===1&&i&&s.suffix.length&&c.test(s.suffix[0])&&(l+=\"\\\\\"),l+=I(s.suffix),o&&(l+=\"}\"),s.modifier!==3&&(l+=T(s.modifier))}return l}a(Ae,\"partsToPattern\");var Y=class{#i;#n={};#t={};#e={};#s={};#l=!1;constructor(t={},r,n){try{let c;if(typeof r==\"string\"?c=r:n=r,typeof t==\"string\"){let i=new C(t);if(i.parse(),t=i.result,c===void 0&&typeof t.protocol!=\"string\")throw new TypeError(\"A base URL must be provided for a relative constructor string.\");t.baseURL=c}else{if(!t||typeof t!=\"object\")throw new TypeError(\"parameter 1 is not of type 'string' and cannot convert to dictionary.\");if(c)throw new TypeError(\"parameter 1 is not of type 'string'.\")}typeof n>\"u\"&&(n={ignoreCase:!1});let l={ignoreCase:n.ignoreCase===!0},f={pathname:O,protocol:O,username:O,password:O,hostname:O,port:O,search:O,hash:O};this.#i=L(f,t,!0),z(this.#i.protocol)===this.#i.port&&(this.#i.port=\"\");let s;for(s of V){if(!(s in this.#i))continue;let i={},o=this.#i[s];switch(this.#t[s]=[],s){case\"protocol\":Object.assign(i,b),i.encodePart=w;break;case\"username\":Object.assign(i,b),i.encodePart=he;break;case\"password\":Object.assign(i,b),i.encodePart=ue;break;case\"hostname\":Object.assign(i,J),_(o)?i.encodePart=K:i.encodePart=j;break;case\"port\":Object.assign(i,b),i.encodePart=G;break;case\"pathname\":U(this.#n.protocol)?(Object.assign(i,Q,l),i.encodePart=de):(Object.assign(i,b,l),i.encodePart=pe);break;case\"search\":Object.assign(i,b,l),i.encodePart=ge;break;case\"hash\":Object.assign(i,b,l),i.encodePart=me;break}try{this.#s[s]=F(o,i),this.#n[s]=W(this.#s[s],this.#t[s],i),this.#e[s]=Ae(this.#s[s],i),this.#l=this.#l||this.#s[s].some(h=>h.type===2)}catch{throw new TypeError(`invalid ${s} pattern '${this.#i[s]}'.`)}}}catch(c){throw new TypeError(`Failed to construct 'URLPattern': ${c.message}`)}}get[Symbol.toStringTag](){return\"URLPattern\"}test(t={},r){let n={pathname:\"\",protocol:\"\",username:\"\",password:\"\",hostname:\"\",port:\"\",search:\"\",hash:\"\"};if(typeof t!=\"string\"&&r)throw new TypeError(\"parameter 1 is not of type 'string'.\");if(typeof t>\"u\")return!1;try{typeof t==\"object\"?n=L(n,t,!1):n=L(n,Se(t,r),!1)}catch{return!1}let c;for(c of V)if(!this.#n[c].exec(n[c]))return!1;return!0}exec(t={},r){let n={pathname:\"\",protocol:\"\",username:\"\",password:\"\",hostname:\"\",port:\"\",search:\"\",hash:\"\"};if(typeof t!=\"string\"&&r)throw new TypeError(\"parameter 1 is not of type 'string'.\");if(typeof t>\"u\")return;try{typeof t==\"object\"?n=L(n,t,!1):n=L(n,Se(t,r),!1)}catch{return null}let c={};r?c.inputs=[t,r]:c.inputs=[t];let l;for(l of V){let f=this.#n[l].exec(n[l]);if(!f)return null;let s={};for(let[i,o]of this.#t[l].entries())if(typeof o==\"string\"||typeof o==\"number\"){let h=f[i+1];s[o]=h}c[l]={input:n[l]??\"\",groups:s}}return c}static compareComponent(t,r,n){let c=a((i,o)=>{for(let h of[\"type\",\"modifier\",\"prefix\",\"value\",\"suffix\"]){if(i[h]<o[h])return-1;if(i[h]===o[h])continue;return 1}return 0},\"comparePart\"),l=new P(3,\"\",\"\",\"\",\"\",3),f=new P(0,\"\",\"\",\"\",\"\",3),s=a((i,o)=>{let h=0;for(;h<Math.min(i.length,o.length);++h){let p=c(i[h],o[h]);if(p)return p}return i.length===o.length?0:c(i[h]??l,o[h]??l)},\"comparePartList\");return!r.#e[t]&&!n.#e[t]?0:r.#e[t]&&!n.#e[t]?s(r.#s[t],[f]):!r.#e[t]&&n.#e[t]?s([f],n.#s[t]):s(r.#s[t],n.#s[t])}get protocol(){return this.#e.protocol}get username(){return this.#e.username}get password(){return this.#e.password}get hostname(){return this.#e.hostname}get port(){return this.#e.port}get pathname(){return this.#e.pathname}get search(){return this.#e.search}get hash(){return this.#e.hash}get hasRegExpGroups(){return this.#l}};a(Y,\"URLPattern\");export{Y as URLPattern};\n", "import { URLPattern } from \"./dist/urlpattern.js\";\n\nexport { URLPattern };\n\nif (!globalThis.URLPattern) {\n globalThis.URLPattern = URLPattern;\n}\n", "export { fetchPlus } from './fetchPlus.js';\nexport { RequestPlus } from './RequestPlus.js';\nexport { ResponsePlus } from './ResponsePlus.js';\nexport { HeadersPlus } from './HeadersPlus.js';\nexport { FormDataPlus } from './FormDataPlus.js';\nexport { LiveResponse } from './LiveResponse.js';\nexport { default as Observer } from '@webqit/observer';", "\n/**\n * Tells if val is pure object.\n *\n * @param object\t \tval\n *\n * @return bool\n */\nexport default function(val) {\n\treturn !Array.isArray(val) && typeof val === 'object' && val;\n};\n", "\n/**\n * Returns the val's type.\n *\n * @param string \tval\n *\n * @return string\n */\nexport default function(val) {\n\treturn typeof val;\n};\n", "\n/**\n * Tells if val is of type \"array\".\n *\n * @param object\t \tval\n *\n * @return bool\n */\nexport default function(val) {\n\treturn Array.isArray(val);\n};\n", "\n/**\n * Tells if val is undefined or is of type \"boolean\".\n *\n * @param string \tval\n *\n * @return bool\n */\nexport default function(val) {\n\treturn val === true || val === false;\n};\n", "\n/**\n * Tells if val is of type \"function\".\n * This holds true for both regular functions and classes.\n *\n * @param object\t \tval\n *\n * @return bool\n */\nexport default function(val) {\n\treturn typeof val === 'function';\n};\n", "\n/**\n * Tells if val is undefined or is null.\n *\n * @param string \tval\n *\n * @return bool\n */\nexport default function(val) {\n\treturn val === null || val === '';\n};\n", "\n/**\n * Tells if val is undefined or is of type \"undefined\".\n *\n * @param string \tval\n *\n * @return bool\n */\nexport default function(val) {\n\treturn arguments.length && (val === undefined || typeof val === 'undefined');\n};\n", "\n/**\n * @imports\n */\nimport _isTypeFunction from './isTypeFunction.js';\n\n/**\n * Tells if val is of type \"object\".\n * This holds true for anything object, including built-ins.\n *\n * @param object\t \tval\n *\n * @return bool\n */\nexport default function(val) {\n\treturn Array.isArray(val) || (typeof val === 'object' && val) || _isTypeFunction(val);\n};\n", "\n/**\n * @imports\n */\nimport _isNull from './isNull.js';\nimport _isUndefined from './isUndefined.js';\nimport _isTypeObject from './isTypeObject.js';\n\n/**\n * Tells if val is empty in its own type.\n * This holds true for NULLs, UNDEFINED, FALSE, 0,\n * objects without keys, empty arrays.\n *\n * @param string \tval\n *\n * @return bool\n */\nexport default function(val) {\n\treturn _isNull(val) || _isUndefined(val) || val === false || val === 0 \n\t\t|| (_isTypeObject(val) && !Object.keys(val).length);\n};\n", "\n/**\n * @imports\n */\nimport _isTypeFunction from './isTypeFunction.js';\n\n/**\n * Tells if val is of type \"function\".\n *\n * @param object \t\tval\n *\n * @return bool\n */\nexport default function(val) {\n\treturn _isTypeFunction(val) || (val && {}.toString.call(val) === '[object function]');\n};\n", "\n/**\n * Tells if val is of type \"number\".\n *\n * @param string \tval\n *\n * @return bool\n */\nexport default function(val) {\n\treturn val instanceof Number || (typeof val === 'number');\n};\n", "\n/**\n * @imports\n */\nimport _isNumber from './isNumber.js';\n/**\n * Tells if val is of type \"string\" or a numeric string.\n * This holds true for both numbers and numeric strings.\n *\n * @param string \tval\n *\n * @return bool\n */\nexport default function(val) {\n\treturn _isNumber(val) || (val !== true && val !== false && val !== null && val !== '' && !isNaN(val * 1));\n};\n", "\n/**\n * @imports\n */\nimport _isArray from './isArray.js';\n\n/**\n * Tells if an object is direct instance of Array.prototype.\n * Quite useful in differentiating array-extension instances from plain arrays ([]).\n *\n * @param object \tobj\n *\n * @return bool\n */\nexport default function(obj) {\n\treturn _isArray(obj) && Object.getPrototypeOf(obj) === Array.prototype;\n};\n", "\n/**\n * @imports\n */\nimport _isObject from './isObject.js';\n\n/**\n * Tells if an object is direct instance of Object.prototype.\n * Quite useful in differentiating native objects and class instances from plain objects ({}).\n *\n * @param object \tobj\n *\n * @return bool\n */\nexport default function(obj) {\n\treturn _isObject(obj) && Object.getPrototypeOf(obj) === Object.prototype;\n};\n", "\n/**\n * Tells if val is of type \"string\".\n *\n * @param string \tval\n *\n * @return bool\n */\nexport default function(val) {\n\treturn val instanceof String || (typeof val === 'string' && val !== null);\n};\n", "\n/**\n * @imports\n */\nimport _isString from './isString.js';\nimport _isUndefined from './isUndefined.js';\n\n/**\n * Tells if val is \"array-like\".\n * This holds true for anything that has a length property.\n *\n * @param object\t \tval\n *\n * @return bool\n */\nexport default function(val) {\n\treturn !_isString(val) && !_isUndefined(val.length);\n};\n", "export default function wq(obj, ...namespaces) {\n if (!obj || !['object', 'function'].includes(typeof obj)) {\n throw new Error(`Argument #1 must be of type object`);\n }\n let wq = obj[Symbol.for('wq')];\n if (!wq) {\n wq = new WQInternals;\n Object.defineProperty(obj, Symbol.for('wq'), {\n value: wq,\n // Defaults, but to be explicit...\n enumerable: false,\n configurable: false,\n writable: false\n });\n }\n if (!namespaces.length) {\n return wq;\n }\n let _ns, _wq;\n while ((_ns = namespaces.shift())) {\n if ((_wq = wq) && !(wq = wq.get(_ns))) {\n wq = new WQInternals;\n _wq.set(_ns, wq);\n }\n }\n return wq;\n}\n\nclass WQInternals extends Map {}", "\n/**\n * Return the remainder of a string after a given value.\n *\n * @param string subject\n * @param string search\n * @param bool\t afterLast\n *\n * @return string\n */\nexport default function(subject, search, afterLast = false) {\n\tif (search == '') {\n\t\treturn subject;\n\t}\n\tvar pos = afterLast ? subject.lastIndexOf(search) : subject.indexOf(search);\n\tif (pos === -1) {\n\t\treturn '';\n\t}\n\treturn subject.substr(pos + search.length);\n};\n", "\n/**\n * Return the part of a string before a given value.\n *\n * @param string subject\n * @param string search\n * @param bool\t beforeLast\n *\n * @return string\n */\nexport default function(subject, search, beforeLast = false) {\n\tif (search == '') {\n\t\treturn subject;\n\t}\n\tvar pos = beforeLast ? subject.lastIndexOf(search) : subject.indexOf(search);\n\tif (pos === -1) {\n\t\treturn subject;\n\t}\n\treturn subject.substr(0, pos);\n};\n", "(async () => {\n if (typeof URLPattern === 'undefined') {\n await import('urlpattern-polyfill');\n }\n})();\n\nexport class URLPatternPlus extends URLPattern {\n\n #inputUrl;\n\n constructor(init, baseURL = null) {\n if (typeof init === 'object' && init?.baseURL) {\n ({ baseURL, ...init } = init);\n }\n super(init, baseURL);\n\n this.#inputUrl = new URL(init, baseURL);\n }\n\n isPattern() {\n const hasUnescapedMeta = (str, metaChars) => {\n if (!str) return false;\n let esc = false;\n for (const ch of str) {\n if (esc) { esc = false; continue; }\n if (ch === '\\\\') { esc = true; continue; }\n if (metaChars.has(ch)) return true;\n }\n return false;\n };\n const META = {\n protocol: new Set(['*']),\n username: new Set(['*']),\n password: new Set(['*']),\n hostname: new Set(['*', '{']),\n port: new Set(['*', '{']),\n pathname: new Set(['*', ':', '{', '(']),\n search: new Set(['*', '{']),\n hash: new Set(['*', '{']),\n };\n const url = this.#inputUrl;\n return (\n hasUnescapedMeta(url.protocol, META.protocol) ||\n hasUnescapedMeta(url.username, META.username) ||\n hasUnescapedMeta(url.password, META.password) ||\n hasUnescapedMeta(url.hostname, META.hostname) ||\n hasUnescapedMeta(url.port, META.port) ||\n hasUnescapedMeta(url.pathname, META.pathname) ||\n hasUnescapedMeta(url.search, META.search) ||\n hasUnescapedMeta(url.hash, META.hash)\n );\n }\n\n exec(...args) {\n const result = super.exec(...args);\n if (!result) return;\n\n const named = {};\n\n for (const component of Object.values(result)) {\n if (component?.groups) {\n Object.assign(named, component.groups);\n }\n }\n\n const vars = { named };\n\n const render = (str) => {\n return str.replace(/\\$(\\$|[A-Z0-9_]+)/gi, (_, token) => {\n if (token === '$') return '$';\n return vars.named[token] ?? '';\n });\n };\n\n return {\n ...result,\n vars,\n render\n };\n }\n}", "import { _isObject, _isTypeObject, _isFunction, _getType } from '@webqit/util/js/index.js';\nimport { _from as _arrFrom } from '@webqit/util/arr/index.js';\nimport { _wq, _await, env } from './util.js';\nimport ListenerRegistry from './core/ListenerRegistry.js';\nimport TrapsRegistry from './core/TrapsRegistry.js';\nimport Descriptor from './core/Descriptor.js';\nimport { unproxy } from './actors.js';\n\n/* ---------------SPECIAL APIs--------------- */\n\n/**\n * Creates a Path array instance from arguments.\n * \n * @param Array\t ...segments\n *\n * @return Path\n */\nclass Path extends Array {\n get [Symbol.toStringTag]() {\n return 'Path';\n }\n static [Symbol.hasInstance](instance) {\n return Array.isArray( instance )\n && instance[ Symbol.toStringTag ] === 'Path';\n }\n}\nexport function path( ...segments ) {\n return new Path( ...segments );\n}\n\n/**\n * Creates a \"Subtree\" directive.\n * \n * @return Subtree\n */\nclass Subtree extends Array {\n get [Symbol.toStringTag]() {\n return 'Subtree';\n }\n static [Symbol.hasInstance](instance) {\n return Array.isArray( instance )\n && instance[ Symbol.toStringTag ] === 'Subtree';\n }\n}\nexport function subtree() {\n return new Subtree;\n}\n\n/**\n * Creates an \"Infinity\" directive.\n * \n * @return Infinity\n */\nexport function any() {\n return Infinity;\n}\n\n/**\n * Reduces a path array against handler.\n * \n * @param Array|Object\t target\n * @param Array\t path\n * @param Function\t receiver\n * @param Function\t final\n * @param Object\t params\n * \n * @example reduce( object, [ segement1, segement2 ], observe, ( value, flags ) => {}, params );\n *\n * @return Any\n */\nexport function reduce( target, path, receiver, final = x => x, params = {} ) {\n const _isSubtree = path instanceof Subtree;\n if ( !_isSubtree && !path?.length ) return;\n return ( function eat( target, path, $params, $isSubtree ) {\n const isSubtree = $isSubtree || path[ $params.level ] instanceof Subtree;\n const segment = isSubtree ? Infinity : path[ $params.level ];\n const isLastSegment = isSubtree ? false : $params.level === path.length - 1;\n if ( target instanceof Descriptor && target.operation !== 'get' ) {\n // Always probe event-generated trees\n $params = { ...$params, probe: 'always' };\n } else if ( $params.probe !== 'always' ) {\n // Probe until (before) last segment\n $params = { ...$params, probe: !isLastSegment };\n }\n // ---------------\n return receiver( target, segment, ( result, ...args ) => {\n // -----------\n const addTrail = ( desc ) => {\n if ( !( desc instanceof Descriptor ) ) return;\n desc.path = 'key' in desc ? [ desc.key ] : [];\n if ( target instanceof Descriptor ) {\n desc.path = 'key' in desc ? target.path.concat( desc.key ) : target.path.slice( 0 );\n Object.defineProperty( desc, 'context', { get: () => target, configurable: true } );\n }\n };\n const flags = args[ 0 ] || {};\n const advance = ( result ) => {\n if ( result instanceof Descriptor && 'argumentsList' in result ) {\n return;\n }\n const $value = resolveObj( result/* a Descriptor who's value could be proxied */, false );\n return _await( $value/* could be a promise */, $value => {\n if ( result instanceof Descriptor ) {\n result.value = $value; // Update to (fulfilled), unproxied, value\n } else {\n result = $value;\n }\n return eat( result, path, { ...$params, ...flags, keyInParent: result.key, level: $params.level + 1, }, isSubtree );\n } );\n };\n // -----------\n if ( isPropsList( segment ) && Array.isArray( result ) ) {\n result.forEach( addTrail );\n if ( isLastSegment ) {\n return final( result, ...args );\n }\n if ( isSubtree && result[ 0 ] instanceof Descriptor && ( result[ 0 ].operation !== 'get' || params.asGet ) ) {\n final( result, ...args );\n }\n for ( const entry of result ) {\n advance( entry );\n }\n return;\n }\n // -----------\n addTrail( result );\n if ( isLastSegment ) {\n return final( result, ...args );\n }\n return advance( result );\n // -----------\n }, $params );\n } )( target, path.slice( 0 ), { ...params, level: 0 }, _isSubtree );\n}\n\n/**\n * Adds an observer to a target's registry.\n *\n * @param Array|Object\t target\n * @param String|Object\t prop\n * @param Function\t receiver\n * @param Object\t\t params\n *\n * @return AbortController\n */\nexport function observe( target, prop, receiver, params = {} ) {\n // ---------------\n const originalTarget = resolveObj( target, !params.level );\n\tif ( _isFunction( arguments[ 1 ] ) ) {\n [ , receiver, params = {} ] = arguments;\n prop = Infinity;\n\t}\n\tif ( !_isFunction( receiver ) ) throw new Error( `Handler must be a function; \"${ _getType( receiver ) }\" given!` );\n if ( prop instanceof Path || prop instanceof Subtree ) return reduce( originalTarget, prop, observe, receiver, params );\n // ---------------\n params = { ...params, descripted: true };\n delete params.live;\n if ( !_isTypeObject( originalTarget ) ) return params.probe && get( originalTarget, prop, receiver, params ) || undefined;\n // ---------------\n const emit = bind( originalTarget, prop, receiver, params );\n if ( params.probe ) {\n return get( originalTarget, prop, emit, params );\n }\n return emit();\n}\n\n/**\n * Adds an interceptor object to a target's registry.\n *\n * @param Array|Object\t target\n * @param Object\t traps\n * @param Object\t\t params\n *\n * @return AbortRegistry\n */\nexport function intercept( target, traps, params = {} ) {\n // ---------------\n const originalTarget = resolveObj( target );\n if ( !_isObject( traps ) ) {\n [ /*target*/, /*operation*/, /*handler*/, params = {} ] = arguments;\n traps = { [ arguments[ 1 ] ]: arguments[ 2 ] };\n }\n // ---------------\n return TrapsRegistry.getInstance( originalTarget, true, params.namespace ).addRegistration( { traps, params } );\n}\n\n/* ---------------QUERY APIs--------------- */\n\n/**\n * Performs a \"getOwnPropertyDescriptor\" operation.\n *\n * @param Array|Object\t target\n * @param String|Number\t prop\n * @param Function\t receiver\n * @param Object\t\t params\n *\n * @return Any\n */\nexport function getOwnPropertyDescriptor( target, prop, receiver = x => x, params = {} ) {\n return exec( target, 'getOwnPropertyDescriptor', { key: prop }, receiver, params );\n}\n\n/**\n * Performs a \"getOwnPropertyDescriptors\" operation.\n * @note this isn't part of the standard Reflect API.\n *\n * @param Array|Object\t target\n * @param String|Number\t prop\n * @param Function\t receiver\n * @param Object\t\t params\n *\n * @return Any\n */\nexport function getOwnPropertyDescriptors( target, prop, receiver = x => x, params = {} ) {\n return exec( target, 'getOwnPropertyDescriptors', { key: prop }, receiver, params );\n}\n\n/**\n * Performs a \"getPrototypeOf\" operation.\n *\n * @param Array|Object\t target\n * @param Function\t receiver\n * @param Object\t\t params\n *\n * @return Any\n */\nexport function getPrototypeOf( target, receiver = x => x, params = {} ) {\n return exec( target, 'getPrototypeOf', {}, receiver, params );\n}\n\n/**\n * Performs a \"isExtensible\" operation.\n *\n * @param Array|Object\t target\n * @param Function\t receiver\n * @param Object\t\t params\n *\n * @return Any\n */\nexport function isExtensible( target, receiver = x => x, params = {} ) {\n return exec( target, 'isExtensible', {}, receiver, params );\n}\n\n/**\n * Performs a \"ownKeys\" operation.\n *\n * @param Array|Object\t target\n * @param Function\t receiver\n * @param Object\t\t params\n *\n * @return Any\n */\nexport function ownKeys( target, receiver = x => x, params = {} ) {\n return exec( target, 'ownKeys', {}, receiver, params );\n}\n\n/**\n * Performs an operation of the given \"type\".\n *\n * @param Array|Object\t target\n * @param String|Number\t prop\n * @param Function\t receiver\n * @param Object\t\t params\n *\n * @return Any\n */\nexport function has( target, prop, receiver = x => x, params = {} ) {\n return exec( target, 'has', { key: prop }, receiver, params );\n}\n\n/**\n * Performs a get operation.\n *\n * @param Array|Object\t target\n * @param String|Number\t prop\n * @param Function\t receiver\n * @param Object\t params\n *\n * @return Any\n */\nexport function get( target, prop, receiver = x => x, params = {} ) {\n // ---------------\n let isLive;\n const originalTarget = resolveObj( target, !params.level );\n if ( _isObject( receiver ) ) {\n [ params, receiver ] = [ receiver, x => x ];\n } else if ( params.live ) { isLive = true; }\n if ( prop instanceof Path || prop instanceof Subtree ) return reduce( originalTarget, prop, get, receiver, { ...params, asGet: true } );\n // ---------------\n return resolveProps( originalTarget, prop, props => {\n const related = [ ...props ];\n return ( function next( results, _props, _done ) {\n if ( !_props.length ) return _done( results );\n const prop = _props.shift();\n if ( ![ 'string', 'number', 'symbol' ].includes( typeof prop ) ) {\n throw new Error( `Property name/key ${ prop } invalid.` );\n }\n // ---------\n function defaultGet( descriptor, value = undefined ) {\n const _next = value => ( descriptor.value = value, next( [ ...results, params.live || params.descripted ? descriptor : value ]/** not using concat() as value may be an array */, _props, _done ) );\n if ( arguments.length > 1 ) return _next( value );\n if ( !_isTypeObject( originalTarget ) ) return _next( originalTarget?.[ descriptor.key ] );\n const accessorizedProps = _wq( originalTarget, 'accessorizedProps', false );\n const accessorization = accessorizedProps && accessorizedProps.get( descriptor.key );\n if ( accessorization && accessorization.intact() ) {\n return _next( accessorization.getValue( params.withPropertyDescriptors ) );\n }\n if ( params.withPropertyDescriptors ) {\n const desc = Object.getOwnPropertyDescriptor( originalTarget, descriptor.key );\n return _next( desc );\n }\n return _next( Reflect.get( originalTarget, descriptor.key/*, ...( params.receiver ? [ params.receiver ] : [] )*//*Throws Illegal invocation error ffor DOM nodes, e.g.*/ ) );\n }\n // ---------\n const descriptor = new Descriptor( originalTarget, {\n type: 'get',\n key: prop,\n value: undefined,\n operation: 'get',\n related,\n } );\n if ( !_isTypeObject( originalTarget ) ) return defaultGet( descriptor );\n const trapsRegistry = TrapsRegistry.getInstance( originalTarget, false, params.namespace );\n if ( trapsRegistry ) {\n return trapsRegistry.emit( descriptor, defaultGet );\n }\n return defaultGet( descriptor );\n } )( [], props.slice( 0 ), results => {\n const result_s = isPropsList( prop/*original*/ ) ? results : results[ 0 ];\n if ( isLive && _isTypeObject( originalTarget ) ) {\n const emit = bind( originalTarget, prop, receiver, params, target.key );\n return emit( result_s );\n }\n return receiver( result_s );\n } );\n }, params );\n}\n\n/* ---------------MUTATION APIs--------------- */\n\n/**\n * Performs a batch operation.\n * \n * @param Object\t target\n * @param Function\t callback\n * @param Object\t params\n *\n * @return Void\n */\nexport function batch( target, callback, params = {} ) {\n const originalTarget = resolveObj( target );\n return ListenerRegistry.getInstance( originalTarget, true, params.namespace ).batch( callback, params );\n}\n\n/**\n * Performs a mirror operation.\n * \n * @param Object\t source\n * @param Object\t target\n * @param Object\t params\n *\n * @return Void\n */\nexport function map( source, target, params = {} ) {\n target = resolveObj( target );\n source = resolveObj( source );\n const only = ( params.only || [] ).slice( 0 ), except = ( params.except || [] ).slice( 0 );\n const sourceKeys = Object.keys( params.spread ? [ ...source ] : source ).map( k => !isNaN( k ) ? parseInt( k ) : k );\n const filteredKeys = only.length ? only.filter( k => sourceKeys.includes( k ) ) : sourceKeys.filter( k => !except.includes( k ) );\n const resolveKey = k => { \n if ( !Array.isArray( target ) || isNaN( k ) ) return k;\n return k - except.filter( i => i < k ).length;\n };\n const doSet = key => {\n const descriptor = getOwnPropertyDescriptor( source, key, params );\n if ( ( 'value' in descriptor ) && descriptor.writable && descriptor.enumerable && descriptor.configurable ) {\n set( target, resolveKey( key ), descriptor.value, params );\n } else if ( descriptor.enumerable || params.onlyEnumerable === false ) { defineProperty( target, key, { ...descriptor, configurable: true }, params ); }\n };\n batch( target, () => {\n filteredKeys.forEach( doSet );\n } );\n return observe( source, mutations => {\n //batch( target, () => {\n mutations.filter( m => only.length ? only.includes( m.key ) : !except.includes( m.key ) ).forEach( m => {\n if ( m.type === 'delete' ) return deleteProperty( target, resolveKey( m.key ), params );\n if ( m.type === 'def' ) {\n if ( m.value.enumerable || params.onlyEnumerable === false ) {\n defineProperty( target, resolveKey( m.key ), { ...m.value, configurable: true }, params );\n }\n return;\n }\n doSet( m.key );\n } );\n //}, params );\n }, { ...params, withPropertyDescriptors: true } );\n}\n\n/**\n * Performs a set operation.\n * \n * @param Object\t target\n * @param String|Number\t prop\n * @param Any\t value\n * @param Function\t receiver\n * @param Object\t params\n * @param Bool\t def\n *\n * @return Any\n */\nexport function set( target, prop, value, receiver = x => x, params = {}, def = false ) {\n // ---------------\n const originalTarget = resolveObj( target );\n let entries = [ [ prop, value ] ];\n if ( _isObject( prop ) ) {\n [ /*target*/, /*hash*/, receiver = x => x, params = {}, def = false ] = arguments;\n entries = Object.entries( prop );\n }\n if ( _isObject( receiver ) ) { [ def, params, receiver ] = [ typeof params === 'boolean' ? params : def, receiver, x => x ]; }\n // ---------------\n const related = entries.map( ( [ prop ] ) => prop );\n return ( function next( descriptors, entries, _done ) {\n if ( !entries.length ) return _done( descriptors );\n const [ prop, value ] = entries.shift();\n // ---------\n function defaultSet( descriptor, status = undefined ) {\n const _next = status => ( descriptor.status = status, next( descriptors.concat( descriptor ), entries, _done ) );\n if ( arguments.length > 1 ) return _next( descriptor, status );\n const accessorizedProps = _wq( originalTarget, 'accessorizedProps', false );\n const accessorization = accessorizedProps && accessorizedProps.get( descriptor.key );\n if ( descriptor.type === 'def' ) {\n if ( accessorization && !accessorization.restore() ) _next( false );\n Object.defineProperty( originalTarget, descriptor.key, descriptor.value );\n return _next( true );\n }\n if ( accessorization && accessorization.intact() ) {\n return _next( accessorization.setValue( descriptor.value ) );\n }\n return _next( Reflect.set( originalTarget, descriptor.key, descriptor.value ) );\n }\n // ---------\n function exec( isUpdate, oldValue ) {\n if ( params.diff && value === oldValue ) return next( descriptors, entries, _done );\n const descriptor = new Descriptor( originalTarget, {\n type: def ? 'def' : 'set',\n key: prop,\n value,\n isUpdate,\n oldValue,\n related: [ ...related ],\n operation: def ? 'defineProperty' : 'set',\n detail: params.detail,\n } );\n const trapsRegistry = TrapsRegistry.getInstance( originalTarget, false, params.namespace );\n return trapsRegistry \n ? trapsRegistry.emit( descriptor, defaultSet ) \n : defaultSet( descriptor );\n }\n // ---------\n return has( originalTarget, prop, exists => {\n if ( !exists ) return exec( exists );\n if ( prop === 'length' && Array.isArray( originalTarget ) && _wq( originalTarget ).has( '$length' ) ) {\n return exec( true, _wq( originalTarget ).get( '$length' ) );\n }\n const $params = { ...params, withPropertyDescriptors: def };\n return get( originalTarget, prop, oldValue => exec( exists, oldValue ), $params );\n }, params );\n // ---------\n } )( [], entries.slice( 0 ), descriptors => {\n const listenerRegistry = ListenerRegistry.getInstance( originalTarget, false, params.namespace );\n if ( listenerRegistry ) listenerRegistry.emit( descriptors, { eventsArePropertyDescriptors: !!def } );\n return receiver(\n isPropsList( prop/*original*/ ) ? descriptors.map( opr => opr.status ) : descriptors[ 0 ]?.status\n );\n } );\n}\n\n/**\n * Performs a defineProperty operation.\n * \n * @param Object\t target\n * @param String|Number\t prop\n * @param Object\t descriptor\n * @param Function\t receiver\n * @param Object\t params\n *\n * @return Any\n */\nexport function defineProperty( target, prop, descriptor, receiver = x => x, params = {} ) {\n return set( target, prop, descriptor, receiver, params, true/*def*/ );\n}\n\n/**\n * Performs a defineProperties operation.\n * @note this isn't part of the standard Reflect API.\n * \n * @param Object\t target\n * @param Object\t descriptors\n * @param Function\t receiver\n * @param Object\t params\n *\n * @return Any\n */\nexport function defineProperties( target, descriptors, receiver = x => x, params = {} ) {\n return set( target, descriptors, receiver, params, true/*def*/ );\n}\n\n/**\n * Performs a delete operation.\n * \n * @param Object\t target\n * @param String|Number\t prop\n * @param Function\t receiver\n * @param Object\t params\n *\n * @return Any\n */\nexport function deleteProperty( target, prop, receiver = x => x, params = {} ) {\n // ---------------\n const originalTarget = resolveObj( target );\n if ( _isObject( receiver ) ) { [ params, receiver ] = [ receiver, x => x ]; }\n // ---------------\n const props = _arrFrom( prop, false ), related = [ ...props ];\n return ( function next( descriptors, props, _done ) {\n if ( !props.length ) return _done( descriptors );\n const prop = props.shift();\n // ---------\n function defaultDel( descriptor, status = undefined ) {\n const _next = status => ( descriptor.status = status, next( descriptors.concat( descriptor ), props, _done ) );\n if ( arguments.length > 1 ) return _next( descriptor, status );\n const accessorizedProps = _wq( originalTarget, 'accessorizedProps', false );\n const accessorization = accessorizedProps && accessorizedProps.get( descriptor.key );\n if ( accessorization && !accessorization.restore() ) _next( false );\n return _next( Reflect.deleteProperty( originalTarget, descriptor.key ) );\n }\n // ---------\n function exec( oldValue ) {\n const descriptor = new Descriptor( originalTarget, {\n type: 'delete',\n key: prop,\n oldValue,\n related: [ ...related ],\n operation: 'deleteProperty',\n detail: params.detail,\n } );\n const trapsRegistry = TrapsRegistry.getInstance( originalTarget, false, params.namespace );\n return trapsRegistry \n ? trapsRegistry.emit( descriptor, defaultDel ) \n : defaultDel( descriptor );\n }\n // ---------\n return get( originalTarget, prop, exec, params );\n // ---------\n } )( [], props.slice( 0 ), descriptors => {\n const listenerRegistry = ListenerRegistry.getInstance( originalTarget, false, params.namespace );\n if ( listenerRegistry ) listenerRegistry.emit( descriptors );\n return receiver(\n isPropsList( prop/*original*/ ) ? descriptors.map( opr => opr.status ) : descriptors[ 0 ].status\n );\n } );\n}\n\n/**\n * @alias deleteProperty()\n */\nexport function deleteProperties( target, props, receiver = x => x, params = {} ) {\n return deleteProperty( ...arguments );\n}\n\n/* ---------------EFFECT APIs--------------- */\n\n/**\n * Performs a \"construct\" operation.\n *\n * @param Array|Object\t target\n * @param Array\t\t\t argumentsList\n * @param Object\t\t newTarget\n * @param Function\t receiver\n * @param Object\t\t params\n *\n * @return Any\n */\nexport function construct( target, argumentsList, newTarget = null, receiver = x => x, params = {} ) {\n return exec( target, 'construct', arguments.length > 2 ? { argumentsList, newTarget } : { argumentsList }, receiver, params );\n}\n\n/**\n * Performs an \"apply\" operation.\n *\n * @param Array|Object\t target\n * @param Any\t thisArgument\n * @param Array\t argumentsList\n * @param Function\t receiver\n * @param Object\t\t params\n *\n * @return Any\n */\nexport function apply( target, thisArgument, argumentsList, receiver = x => x, params = {} ) {\n const originalThis = unproxy( thisArgument );\n let returnValue;\n if ( Array.isArray( thisArgument ) ) {\n if ( params.arrayMethodName ) {\n const descriptor = new Descriptor( originalThis, {\n operation: params.arrayMethodName,\n argumentsList\n } );\n const listenerRegistry = ListenerRegistry.getInstance( originalThis, false, params.namespace );\n listenerRegistry?.emit( [ descriptor ], { eventIsArrayMethodDescriptor: true } );\n }\n _wq( originalThis ).set( '$length', originalThis.length );\n returnValue = batch(\n originalThis,\n () => exec( target, 'apply', { thisArgument/*proxy wrappers allowed; in fact is why it works*/, argumentsList }, receiver, params ),\n params\n );\n _wq( originalThis ).delete( '$length' );\n } else {\n returnValue = exec( target, 'apply', { thisArgument: originalThis, argumentsList }, receiver, params );\n }\n return returnValue;\n}\n\n/**\n * Performs a \"setPrototypeOf\" operation.\n *\n * @param Array|Object\t target\n * @param Anyr\t proto\n * @param Function\t receiver\n * @param Object\t\t params\n *\n * @return Any\n */\nexport function setPrototypeOf( target, proto, receiver = x => x, params = {} ) {\n return exec( target, 'setPrototypeOf', { proto }, receiver, params );\n}\n\n/**\n * Performs a \"preventExtension\" operation.\n *\n * @param Array|Object\t target\n * @param Function\t receiver\n * @param Object\t\t params\n *\n * @return Any\n */\nexport function preventExtensions( target, receiver = x => x, params = {} ) {\n return exec( target, 'preventExtensions', {}, receiver, params );\n}\n\n/* ---------------HELPER APIs--------------- */\n\n/**\n * Adds an observer to a target's registry.\n *\n * @param Array|Object\t target\n * @param String|Object\t prop\n * @param Function\t receiver\n * @param Object\t\t params\n *\n * @return Function: AbortController\n */\nfunction bind( target, prop, receiver, params = {} ) {\n const controller = new AbortController;\n env.setMaxListeners?.( 0, controller.signal );\n if ( params.signal ) { params.signal.addEventListener( 'abort', () => controller.abort() ); }\n const $params = { ...params, signal: controller.signal };\n const listenerRegistry = ListenerRegistry.getInstance( target, true, $params.namespace );\n const childRegistrations = new Map;\n return function emit( descriptor_s = [], prevRegistration = null ) {\n let flags, registrationNext, isExisting;\n if ( isPropsList( prop ) ) {\n if ( prevRegistration ) {\n isExisting = true;\n registrationNext = prevRegistration;\n for ( const descriptor of descriptor_s ) {\n childRegistrations.get( descriptor.key )?.remove();\n childRegistrations.delete( descriptor.key );\n }\n } else {\n registrationNext = listenerRegistry.addRegistration( prop, emit, $params );\n }\n flags = { signal: registrationNext.signal, childRegistrations };\n } else {\n prevRegistration?.remove();\n registrationNext = listenerRegistry.addRegistration( prop, emit, $params );\n flags = { signal: registrationNext.signal };\n }\n // ------------------\n if ( $params.childRegistrations && $params.keyInParent ) {\n $params.childRegistrations.set( $params.keyInParent, registrationNext );\n }\n // ------------------\n if ( arguments.length ) {\n const handlerReturnValue = receiver( descriptor_s, flags );\n if ( arguments.length > 1 ) return handlerReturnValue;\n }\n return controller;\n };\n}\n\n/**\n * Performs an operation of the given \"type\".\n *\n * @param Array|Object\t target\n * @param String\t\t operation\n * @param Object\t\t payload\n * @param Function\t receiver\n * @param Object\t\t params\n *\n * @return Any\n */\nfunction exec( target, operation, payload = {}, receiver = x => x, params = {} ) {\n // ---------\n target = resolveObj( target );\n if ( _isObject( receiver ) ) { [ params, receiver ] = [ receiver, x => x ]; } \n // ---------\n function defaultExec( descriptor, result ) {\n if ( arguments.length > 1 ) return receiver( result );\n return receiver( ( Reflect[ operation ] || Object[ operation ] )( target, ...Object.values( payload ) ) );\n }\n // ---------\n const descriptor = new Descriptor( target, { operation, ...payload } );\n const trapsRegistry = TrapsRegistry.getInstance( target, false, params.namespace );\n if ( trapsRegistry ) {\n return trapsRegistry.emit( descriptor, defaultExec );\n }\n return defaultExec( descriptor );\n}\n\n// Asks if prop is a multi-result field\nfunction isPropsList( prop ) {\n return prop === Infinity || Array.isArray( prop );\n}\n\n// Resolves obj down to it's self\nfunction resolveObj( obj, assert = true, probePropertyDescriptors = true ) {\n\tif ( ( !obj || !_isTypeObject( obj ) ) && assert ) throw new Error( `Object must be of type object or array! \"${ _getType( obj ) }\" given.` );\n if ( obj instanceof Descriptor ) {\n if ( obj.type === 'def' && probePropertyDescriptors ) {\n obj = typeof obj.value.get === 'function' ? obj.value.get() : obj.value.value;\n } else {\n obj = obj.value;\n }\n }\n\treturn obj && unproxy( obj );\n}\n\n// Resolves prop down to actual keys\nfunction resolveProps( obj, prop, receiver, params = {} ) {\n if ( prop === Infinity ) {\n if ( params.level && !_isTypeObject( obj ) ) return receiver( [] );\n return receiver( Object.entries( Object.getOwnPropertyDescriptors( obj ) ).filter( ( [ , p ] ) => p.writable !== false && !p.get && !p.set ).map( ( [ name ] ) => name ) );\n }\n return receiver( _arrFrom( prop, false ) );\n}\n", "\n/**\n * @imports\n */\nimport _isArray from '../js/isArray.js';\nimport _isTypeArray from '../js/isTypeArray.js';\nimport _isEmpty from '../js/isEmpty.js';\nimport _isObject from '../js/isObject.js';\n\n/**\n * Casts an array-like object to an array.\n *\n * @param mixed \tval\n * @param bool\t \tcastObject\n *\n * @return array\n */\nexport default function(val, castObject = true) {\n\tif (_isArray(val)) {\n\t\treturn val;\n\t};\n\tif (!castObject && _isObject(val)) {\n\t\treturn [val];\n\t};\n\tif (val !== false && val !== 0 && _isEmpty(val)) {\n\t\treturn [];\n\t};\n\tif (_isTypeArray(val)) {\n\t\treturn Array.prototype.slice.call(val);\n\t};\n\tif (_isObject(val)) {\n\t\treturn Object.values(val);\n\t};\n\treturn [val];\n};\n", "\n/**\n * @imports\n */\nimport { _wq as __wq } from '@webqit/util/js/index.js';\n\nexport const _wq = ( target, ...args ) => __wq( target, 'observerAPI', ...args );\n\nexport const _await = ( value, callback ) => value instanceof Promise ? value.then( callback ) : callback( value );\n\nexport const env = {};\n", "\n/**\n * ---------------------------\n * The Registration class\n * ---------------------------\n */\n\nexport default class Registration {\n\t\n\t/**\n\t * Initializes the instance.\n\t *\n\t * @param Registry\t\t\tregistry\n\t * @param object\t\t\tdfn\n\t *\n\t * @return void\n\t */\n\tconstructor( registry, dfn ) {\n\t\tthis.registry = registry;\n\t\tObject.assign( this, { ...dfn, target: registry.target } );\n\t\tif ( this.params.signal ) {\n\t\t\tthis.params.signal.addEventListener( 'abort', () => this.remove() );\n\t\t}\n\t}\n\n\t/**\n\t * Sets a \"disconnected\" flag on the Registration.\n\t *\n\t * @return void\n\t */\n\tremove() {\n\t\tthis.removed = true;\n\t\treturn this.registry.removeRegistration( this );\n\t}\n}", "\n/**\n * @imports\n */\nimport { _from as _arrFrom } from '@webqit/util/arr/index.js';\nimport Registration from './Registration.js';\nimport { _await, env } from '../util.js';\n\n/**\n * ---------------------------\n * The ListenerRegistration class\n * ---------------------------\n */\n\nexport default class ListenerRegistration extends Registration {\n\t\n\t/**\n\t * @constructor\n\t */\n\tconstructor() {\n\t\tsuper( ...arguments );\n\t\tthis.emit.currentRegistration = this;\n\t\tObject.defineProperty( this, 'abortController', { value: new AbortController } );\n\t\tObject.defineProperty( this, 'signal', { value: this.abortController.signal } );\n\t\tenv.setMaxListeners?.( 0, this.signal );\n\t}\n\n\t/**\n\t * De-registers the instance.\n\t * \n\t * @return Void\n\t */\n\tremove() {\n\t\tthis.abortController.abort();\n\t\tsuper.remove();\n\t}\n\n\t/**\n\t * Calls the observer's handler function\n\t * on matching with the event's fields.\n\t *\n\t * @param Array\t\t\t \t\tevents\n\t *\n\t * @return Any\n\t */\n\tfire( events ) {\n\t\tif ( this.emit.recursionTarget && ![ 'inject', 'force-async', 'force-sync' ].includes( this.params.recursions ) ) return;\n\t\tlet matches = events, filter = this.filter;\n\t\tif ( filter !== Infinity && ( filter = _arrFrom( filter, false ) ) ) {\n\t\t\tmatches = events.filter( event => filter.includes( event.key ) );\n\t\t}\n\t\tif ( this.params.diff ) {\n\t\t\tmatches = matches.filter( event => event.type !== 'set' || event.value !== event.oldValue );\n\t\t}\n\t\tif ( !matches.length ) return;\n\t\tif ( [ 'inject', 'defer' ].includes( this.params.recursions ) ) {\n\t\t\tif ( this.emit.recursionTarget ) {\n\t\t\t\tthis.emit.recursionTarget.push( ...matches );\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.emit.recursionTarget = this.params.recursions === 'inject' ? matches : [];\n\t\t}\n\t\tconst $ret = this.filter === Infinity || Array.isArray( this.filter )\n\t\t\t? this.emit( matches, this )\n\t\t\t: this.emit( matches[ 0 ], this );\n\t\t// NOTEL: on calling emit(), this registration has expired and a new one active!!!\n\t\treturn _await( $ret, ret => {\n\t\t\tconst recursions = this.emit.recursionTarget;\n\t\t\tdelete this.emit.recursionTarget;\n\t\t\tif ( this.params.recursions === 'defer' ) {\n\t\t\t\tif ( recursions?.length ) return this.emit.currentRegistration.fire( recursions );\n\t\t\t}\n\t\t\treturn ret;\n\t\t} );\n\t}\n}\n", "\n/**\n * @imports\n */\nimport { _isTypeObject, _getType } from '@webqit/util/js/index.js';\nimport { _from as _arrFrom, _intersect, _equals as _arrEquals } from '@webqit/util/arr/index.js';\nimport { _wq } from '../util.js';\n\n/**\n * ---------------------------\n * The Registry class\n * ---------------------------\n */\n\nexport default class Registry {\n\t\n\t/**\n\t * Initializes the instance.\n\t *\n\t * @param object\ttarget\n\t * \n\t * @return void\n\t */\n\tconstructor( target ) {\n\t\tthis.target = target;\n\t\tthis.entries = [];\n\t}\n\t\n\t/**\n\t * Adds an Registration instance\n\t * with optional tags.\n\t *\n\t * @param Registration\t\tregistration\n\t *\n\t * @return Registration\n\t */\n\taddRegistration( registration ) {\n\t\tthis.entries.push( registration );\n\t\treturn registration;\n\t}\n\t\n\t/**\n\t * Removes registrations by reference.\n\t *\n\t * @param Registration\t\tregistration\n\t *\n\t * @return void\n\t */\n\tremoveRegistration( registration ) {\n\t\tthis.entries = this.entries.filter( _entry => _entry !== registration );\n\t}\n\t\t\n\t/**\n\t * Returns a observer-specific object embedded on an element.\n\t *\n\t * @param string\t\ttype\n\t * @param array|object\ttarget\n\t * @param bool \tcreateIfNotExists\n\t * @param string \tnamespace\n\t *\n\t * @return Registry\n\t */\n\tstatic _getInstance( type, target, createIfNotExists = true, namespace = this.__namespace ) {\n\t\tif ( !_isTypeObject( target ) ) throw new Error( `Subject must be of type object; \"${ _getType( target ) }\" given!` );\n\t\tlet ImplementationClass = this;\n\t\tif ( namespace && _wq( globalThis, 'observerAPI', 'namespaces' ).has( type + '-' + namespace ) ) {\n\t\t\tImplementationClass = _wq( globalThis, 'observerAPI', 'namespaces' ).get( type + '-' + namespace );\n\t\t\ttype += '-' + namespace\n\t\t}\n\t\tif ( !_wq( target, 'registry' ).has( type ) && createIfNotExists ) {\n\t\t\t_wq( target, 'registry' ).set( type, new ImplementationClass( target ) );\n\t\t}\n\t\treturn _wq( target, 'registry' ).get( type );\n\t}\n\n\t/**\n\t * Extend a Fireable Class with a namespace.\n\t *\n\t * @param string\t\tnamespace\n\t * @param class \tImplementationClass\n\t *\n\t * @return void|class\n\t */\n\tstatic _namespace( type, namespace, ImplementationClass = null ) {\n\t\ttype += '-' + namespace;\n\t\tif ( arguments.length === 2 ) return _wq( globalThis, 'observerAPI', 'namespaces' ).get( type );\n\t\tif ( !( ImplementationClass.prototype instanceof this ) ) {\n\t\t\tthrow new Error( `The implementation of the namespace ${ this.name }.${ namespace } must be a subclass of ${ this.name }.` );\n\t\t}\n\t\t_wq( globalThis, 'observerAPI', 'namespaces' ).set( type, ImplementationClass );\n\t\tImplementationClass.__namespace = namespace;\n\t}\n}", "\n/**\n * ---------------------------\n * The Descriptor class\n * ---------------------------\n */\n\nexport default class Descriptor {\n\n\t/**\n\t * Initializes the instance.\n\t *\n\t * @param array|object\ttarget\n\t * @param object\t\tdfn\n\t *\n\t * @return void\n\t */\n\tconstructor(target, dfn) {\n\t\tthis.target = target;\n\t\tif (!(dfn.operation)) throw new Error('Descriptor operation must be given in definition!');\n\t\tObject.assign(this, dfn);\n\t}\n\n\tget [Symbol.toStringTag]() {\n\t\treturn 'Descriptor';\n\t}\n\n\tstatic [Symbol.hasInstance](instance) {\n\t\treturn instance?.[Symbol.toStringTag] === 'Descriptor'\n\t\t\t&& instance.operation\n\t}\n}", "\n/**\n * @imports\n */\nimport ListenerRegistration from './ListenerRegistration.js';\nimport Registry from './Registry.js';\nimport { _await } from '../util.js';\nimport Descriptor from './Descriptor.js';\n\n/**\n * ---------------------------\n * The ListenerRegistry class\n * ---------------------------\n */\n\nexport default class ListenerRegistry extends Registry {\n\n\tstatic getInstance( target, createIfNotExists = true, namespace = null ) {\n\t\treturn super._getInstance( 'listeners', ...arguments );\n\t}\n\n\tstatic namespace( namespace, ImplementationClass = null ) {\n\t\treturn super._namespace( 'listeners', ...arguments );\n\t}\n\n\t/**\n\t * @constructor\n\t */\n\tconstructor( target ) {\n\t\tsuper( target );\n\t\tthis.batches = [];\n\t}\n\t\n\t/**\n\t * @addRegistration\n\t */\n\taddRegistration( filter, emit, params ) {\n\t\treturn super.addRegistration( new ListenerRegistration( this, { filter, emit, params } ) );\n\t}\n\t\n\t/**\n\t * Fires all observers with the given evt (change).\n\t *\n\t * @param Arrayn events\n\t *\n\t * @return Void\n\t */\n\temit( events, { eventsArePropertyDescriptors = false, eventIsArrayMethodDescriptor = false } = {} ) {\n\t\tif ( this.batches.length ) {\n\t\t\tconst arrayMethodName = this.batches[ 0 ].params.arrayMethodName;\n\t\t\tthis.batches[ 0 ].snapshots.push( {\n\t\t\t\tevents: [ ...events ],\n\t\t\t\tarrayMethodName, // Typically from array operations\n\t\t\t\teventsArePropertyDescriptors, // Typically from defineProperty() operations\n\t\t\t\teventIsArrayMethodDescriptor // Typically from array method operations\n\t\t\t} );\n\t\t\treturn\n\t\t}\n\t\tthis.$emit( this.entries, [ {\n\t\t\tevents, \n\t\t\teventsArePropertyDescriptors, // Typically from defineProperty() operations\n\t\t\teventIsArrayMethodDescriptor // Typically from array method operations\n\t\t} ] );\n\t}\n\n\t$emit( listeners, snapshots ) {\n\t\t// Analyse listener modes\n\t\tlet listenersLength = 0,\n\t\tlistenersAskingEventsWithPropertyDescriptors = 0,\n\t\tlistenersAskingArrayMethodDescriptors = 0;\n\t\tfor ( const listener of listeners ) {\n\t\t\tlistenersLength += 1;\n\t\t\tif ( listener.params.withPropertyDescriptors ) {\n\t\t\t\tlistenersAskingEventsWithPropertyDescriptors += 1;\n\t\t\t}\n\t\t\tif ( listener.params.withArrayMethodDescriptors ) {\n\t\t\t\tlistenersAskingArrayMethodDescriptors += 1;\n\t\t\t}\n\t\t}\n\t\t// Sort events\n\t\tconst events_with_PropertyDescriptors_with_ArrayMethodDescriptors = [], events_with_PropertyDescriptors_without_ArrayMethodDescriptors = [];\n\t\tconst events_without_PropertyDescriptors_with_ArrayMethodDescriptors = [], events_without_PropertyDescriptors_without_ArrayMethodDescriptors = [];\n\t\tfor ( const snapshot of snapshots ) {\n\t\t\tconst arrayMethodName = snapshot.arrayMethodName;\n\t\t\tconst eventsArePropertyDescriptors = snapshot.eventsArePropertyDescriptors;\n\t\t\tconst eventIsArrayMethodDescriptor = snapshot.eventIsArrayMethodDescriptor;\n\t\t\tfor ( const event of snapshot.events ) {\n\t\t\t\tif ( arrayMethodName ) {\n\t\t\t\t\tevent.operation = arrayMethodName;\n\t\t\t\t}\n\t\t\t\t// Some opting in to PropertyDescriptors\n\t\t\t\tif ( listenersAskingEventsWithPropertyDescriptors ) {\n\t\t\t\t\t//if ( !arrayMethodName ) { }\n\t\t\t\t\tlistenersAskingArrayMethodDescriptors && // Some opting in to ArrayMethodDescriptors\n\t\t\t\t\tevents_with_PropertyDescriptors_with_ArrayMethodDescriptors.push( event );\n\t\t\t\t\tif ( !eventIsArrayMethodDescriptor ) {\n\t\t\t\t\t\tlistenersAskingArrayMethodDescriptors !== listenersLength && // Some opting out of ArrayMethodDescriptors\n\t\t\t\t\t\tevents_with_PropertyDescriptors_without_ArrayMethodDescriptors.push( event );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// Some opting out of PropertyDescriptors\n\t\t\t\tif ( listenersAskingEventsWithPropertyDescriptors !== listenersLength ) {\n\t\t\t\t\tlet $event = event;\n\t\t\t\t\tif ( eventsArePropertyDescriptors ) {\n\t\t\t\t\t\tconst { target, type, ...details } = event;\n\t\t\t\t\t\t$event = new Descriptor( target, { type: 'set', ...details } );\n\t\t\t\t\t\tObject.defineProperty( $event, 'value', 'get' in details.value ? { get: () => details.value.get() } : { value: details.value.value } )\n\t\t\t\t\t\tif ( details.oldValue ) {\n\t\t\t\t\t\t\tObject.defineProperty( $event, 'oldValue', 'get' in details.oldValue ? { get: () => details.oldValue.get() } : { value: details.oldValue.value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t//if ( !arrayMethodName/*Although eedless as is typically mutually exclusive to eventsArePropertyDescriptors*/ ) { }\n\t\t\t\t\tlistenersAskingArrayMethodDescriptors && // Some opting in to ArrayMethodDescriptors\n\t\t\t\t\tevents_without_PropertyDescriptors_with_ArrayMethodDescriptors.push( $event );\n\t\t\t\t\tif ( !eventIsArrayMethodDescriptor ) { // Although eedless as is typically already implied by eventsArePropertyDescriptors\n\t\t\t\t\t\tlistenersAskingArrayMethodDescriptors !== listenersLength && // Some opting out of ArrayMethodDescriptors\n\t\t\t\t\t\tevents_without_PropertyDescriptors_without_ArrayMethodDescriptors.push( $event );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// Dispatch\n\t\tfor ( const listener of listeners ) {\n\t\t\tif ( listener.params.withPropertyDescriptors ) {\n\t\t\t\tif ( listener.params.withArrayMethodDescriptors ) {\n\t\t\t\t\tevents_with_PropertyDescriptors_with_ArrayMethodDescriptors.length &&\n\t\t\t\t\tlistener.fire( events_with_PropertyDescriptors_with_ArrayMethodDescriptors );\n\t\t\t\t} else {\n\t\t\t\t\tevents_with_PropertyDescriptors_without_ArrayMethodDescriptors.length &&\n\t\t\t\t\tlistener.fire( events_with_PropertyDescriptors_without_ArrayMethodDescriptors );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ( listener.params.withArrayMethodDescriptors ) {\n\t\t\t\t\tevents_without_PropertyDescriptors_with_ArrayMethodDescriptors.length &&\n\t\t\t\t\tlistener.fire( events_without_PropertyDescriptors_with_ArrayMethodDescriptors );\n\t\t\t\t} else {\n\t\t\t\t\tevents_without_PropertyDescriptors_without_ArrayMethodDescriptors.length &&\n\t\t\t\t\tlistener.fire( events_without_PropertyDescriptors_without_ArrayMethodDescriptors );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Fires all observers with the given evt (change).\n\t *\n\t * @param Arrayn events\n\t *\n\t * @return Void\n\t */\n\tbatch( callback, params = {} ) {\n\t\tthis.batches.unshift( { entries: [ ...this.entries ], snapshots: [], params } );\n\t\tconst returnValue = callback();\n\t\treturn _await( returnValue, returnValue => {\n\t\t\tconst batch = this.batches.shift();\n\t\t\tif ( !batch.snapshots.length ) return returnValue;\n\t\t\tthis.$emit( batch.entries, batch.snapshots );\n\t\t\treturn returnValue;\n\t\t} );\n\t}\n\n}\n", "\n/**\n * @imports\n */\nimport Registration from './Registration.js';\n\n/**\n * ---------------------------\n * The TrapsRegistration class\n * ---------------------------\n */\n\nexport default class TrapsRegistration extends Registration {\n\t\n\t/**\n\t * Calls the observer's handler function\n\t * on matching with the descriptor's fields.\n\t *\n\t * @param Descriptor\t\t\t \tdescriptor\n\t * @param function\t\t\t\t\tnext\n\t * @param mixed\t\t\t\t\t \trecieved\n\t *\n\t * @return void\n\t */\n\texec( descriptor, next, recieved ) {\n\t\tif ( this.running || !this.traps[ descriptor.operation ] ) {\n\t\t\treturn next( ...Array.prototype.slice.call( arguments, 2 ) );\n\t\t}\n\t\tthis.running = true;\n\t\treturn this.traps[ descriptor.operation ]( descriptor, recieved, ( ...args ) => {\n\t\t\tthis.running = false;\n\t\t\treturn next( ...args );\n\t\t} );\n\t}\n}", "\n/**\n * @imports\n */\nimport TrapsRegistration from './TrapsRegistration.js';\nimport Registry from './Registry.js';\n\n/**\n * ---------------------------\n * The TrapsRegistry class\n * ---------------------------\n */\n\nexport default class TrapsRegistry extends Registry {\n\n\tstatic getInstance( target, createIfNotExists = true, namespace = null ) {\n\t\treturn super._getInstance( 'traps', ...arguments );\n\t}\n\n\tstatic namespace( namespace, ImplementationClass = null ) {\n\t\treturn super._namespace( 'traps', ...arguments );\n\t}\n\t\n\t/**\n\t * @inheritdoc\n\t */\n\taddRegistration( dfn ) {\n\t\treturn super.addRegistration( new TrapsRegistration( this, dfn ) );\n\t}\n\n\t/**\n\t * Fires all interceptors with the given action.\n\t *\n\t * @param Descriptor\t\tdescriptor\n\t * @param function\t\t\tdefaultHandler\n\t *\n\t * @return mixed\n\t */\n\temit( descriptor, defaultHandler = null ) {\n\t\tconst $this = this;\n\t\treturn ( function next( index, ..._args ) {\n\t\t\tconst registration = $this.entries[ index ];\n\t\t\tif ( registration ) {\n\t\t\t\treturn registration.exec( descriptor, ( ...args ) => {\n\t\t\t\t\treturn next( index + 1, ...args );\n\t\t\t\t}/*next*/, ..._args );\n\t\t\t}\n\t\t\treturn defaultHandler ? defaultHandler( descriptor, ..._args ) : _args[ 0 ];\n\t\t} )( 0 );\n\t}\n}", "\n/**\n * @imports\n */\nimport { _from as _arrFrom } from '@webqit/util/arr/index.js';\nimport { _isClass, _isFunction, _isTypeObject, _getType } from '@webqit/util/js/index.js';\nimport { set, deleteProperty, has, get, ownKeys, defineProperty, getOwnPropertyDescriptor } from \"./main.js\";\nimport { apply, construct, getPrototypeOf, setPrototypeOf, isExtensible, preventExtensions } from \"./main.js\";\nimport { _wq } from './util.js';\n\n/* ---------------ACCESSORIZE METHODS--------------- */\n\n/**\n * Accessorizes props.\n *\n * @param Array|Object\ttarget\n * @param String|Array\tprops\n * @param Object\t\tparams\n *\n * @return Array\n */\nconst symWQOriginal = Symbol('wqOriginal');\nexport function accessorize( target, props, params = {} ) {\n target = resolveTarget( target );\n const accessorizedProps = _wq( target, 'accessorizedProps' );\n // ---------\n function getDescriptorDeep( prop ) {\n let descriptor, proto = target;\n do {\n descriptor = Object.getOwnPropertyDescriptor( proto, prop );\n } while ( !descriptor && ( proto = Object.getPrototypeOf( proto ) ) );\n return descriptor \n ? { proto, descriptor } \n : { descriptor: { value: undefined, configurable: true, enumerable: true, writable: true } };\n }\n // ---------\n function accessorizeProp( prop ) {\n if ( accessorizedProps.has( prop + '' ) ) return true;\n // ------------------\n // Current Descriptor Record\n const currentDescriptorRecord = getDescriptorDeep( prop );\n currentDescriptorRecord.getValue = function( withPropertyDescriptors = false ) {\n if ( withPropertyDescriptors ) return this.descriptor;\n return this.descriptor.get ? this.descriptor.get() : this.descriptor.value;\n };\n currentDescriptorRecord.setValue = function( value, withPropertyDescriptors = false ) {\n this.dirty = true;\n if ( withPropertyDescriptors ) { this.descriptor = value; return; }\n return this.descriptor.set ? this.descriptor.set( value ) !== false : ( this.descriptor.value = value, true );\n };\n currentDescriptorRecord.intact = function() {\n const currentDescriptor = Object.getOwnPropertyDescriptor( target, prop );\n return currentDescriptor?.get === accessorization.get \n && currentDescriptor?.set === accessorization.set\n && accessorizedProps.get( prop + '' ) === this;\n };\n currentDescriptorRecord.restore = function() {\n if ( !this.intact() ) return false;\n if ( ( this.proto && this.proto !== target ) || ( !this.proto && !this.dirty ) ) { delete target[ prop ]; }\n else { Object.defineProperty( target, prop, this.descriptor ); }\n accessorizedProps.delete( prop + '' );\n return true;\n };\n accessorizedProps.set( !isNaN( prop ) ? parseInt( prop ) : prop, currentDescriptorRecord );\n // ------------------\n // enumerable, configurable\n const { enumerable = true } = currentDescriptorRecord.descriptor;\n const accessorization = { enumerable, configurable: true };\n // set, get\n if ( ( 'value' in currentDescriptorRecord.descriptor ) || currentDescriptorRecord.descriptor.set ) {\n accessorization.set = function ( value ) { return set( this, prop, value, params ); };\n }\n if ( ( 'value' in currentDescriptorRecord.descriptor ) || currentDescriptorRecord.descriptor.get ) {\n accessorization.get = function () { return get( this, prop, params ); };\n }\n try {\n Object.defineProperty( target, prop, accessorization );\n return true;\n } catch( e ) {\n accessorizedProps.delete( prop + '' );\n return false;\n }\n }\n const _props = Array.isArray( props ) ? props : (\n props === undefined ? Object.keys( target ) : [ props ]\n );\n const statuses = _props.map( accessorizeProp );\n return props === undefined || Array.isArray( props ) \n ? statuses \n : statuses[ 0 ];\n}\n\n/**\n * Unaccessorizes previously accessorized props.\n *\n * @param Array|Object\ttarget\n * @param String|Array\tprops\n * @param Object\t\tparams\n *\n * @return Array\n */\nexport function unaccessorize( target, props, params = {} ) {\n target = resolveTarget( target );\n const accessorizedProps = _wq( target, 'accessorizedProps' );\n function unaccessorizeProp( prop ) {\n if ( !accessorizedProps.has( prop + '' ) ) return true;\n return accessorizedProps.get( prop + '' ).restore();\n }\n const _props = Array.isArray( props ) ? props : (\n props === undefined ? Object.keys( target ) : [ props ]\n );\n const statuses = _props.map( unaccessorizeProp );\n return props === undefined || Array.isArray( props ) \n ? statuses \n : statuses[ 0 ];\n}\n\n/* ---------------PROXY METHODS--------------- */\n\n/**\n * Returns an object as a proxy and binds all instance methods\n * to the proxy instead of the object itself.\n *\n * @param Array|Object\t\ttarget\n * @param Object\t\t params\n * @param Function\t\t extendCallback\n *\n * @return Proxy\n */\nexport function proxy( target, params = {}, extendCallback = undefined ) {\n // Resolve target\n const originalTarget = resolveTarget( target );\n // Return same proxy instance?\n if ( typeof params.membrane === 'boolean' ) throw new Error( `The params.membrane parameter cannot be of type boolean.` );\n if ( params.membrane && _wq( originalTarget, 'membraneRef' ).has( params.membrane ) ) { return _wq( originalTarget, 'membraneRef' ).get( params.membrane ); }\n const traps = {\n apply: ( target, thisArgument, argumentsList ) => apply( target, thisArgument, argumentsList, undefined, params ),\n construct: ( target, argumentsList, newTarget = null ) => construct( target, argumentsList, newTarget, params ),\n defineProperty: ( target, propertyKey, attributes ) => defineProperty( target, propertyKey, attributes, params ),\n deleteProperty: ( target, propertyKey ) => deleteProperty( target, propertyKey, params ),\n get: ( target, propertyKey, receiver = null ) => {\n if ( propertyKey === symWQOriginal ) {\n return originalTarget;\n }\n const $params = { ...params, receiver };\n const returnValue = get( target, propertyKey, $params );\n // Auto-wrap array methods\n if ( Array.isArray( target ) && typeof returnValue === 'function' && !/^class\\s?/.test(Function.prototype.toString.call( returnValue ) ) ) {\n return proxy( returnValue, { ...params, arrayMethodName: propertyKey, membrane: receiver/* the instance obj that will be the thisArgument at apply(). Much like function.bind() */ }, extendCallback );\n }\n // Auto-wrap others if so specified\n if ( params.chainable && _isTypeObject( returnValue ) && propertyKey !== 'prototype' && !( typeof returnValue === 'function' && /^class\\s?|\\{\\s\\[native\\scode\\]\\s\\}$/.test(Function.prototype.toString.call( returnValue ) ) ) ) {\n return proxy( returnValue, params, extendCallback );\n }\n return returnValue;\n },\n getOwnPropertyDescriptor: ( target, propertyKey ) => getOwnPropertyDescriptor( target, propertyKey, params ),\n getPrototypeOf: target => getPrototypeOf( target, params ),\n has: ( target, propertyKey ) => has( target, propertyKey, params ),\n isExtensible: target => isExtensible( target, params ),\n ownKeys: target => ownKeys( target, params ),\n preventExtensions: target => preventExtensions( target, params ),\n set: ( target, propertyKey, value, receiver = null ) => set( target, propertyKey, value, { ...params, receiver } ),\n setPrototypeOf: ( target, prototype ) => setPrototypeOf( target, prototype, params ),\n };\n // Extend...\n const $traps = extendCallback?.( traps ) || traps;\n // Create proxy\n const $proxy = new Proxy( originalTarget, $traps );\n if ( params.membrane ) { _wq( originalTarget, 'membraneRef' ).set( params.membrane, $proxy ); }\n\treturn $proxy;\n}\n\n/**\n * Returns the original object earlier proxied by proxy().\n *\n * @param Proxy|Any\t\ttarget\n *\n * @return Any\n */\nexport function unproxy( target ) {\n // Proxy targets are mapped to their own instances internally\n return target && target[ symWQOriginal ] || target;\n}\n\n/* ---------------HELPERS--------------- */\n\n/** \n * Ensures target object is an object or array.\n *\n * @param Array|Object\ttarget\n *\n * @return Array|Object\n */\nfunction resolveTarget( target ) {\n\tif ( !target || !_isTypeObject( target ) ) throw new Error('Target must be of type object!');\n\treturn unproxy( target );\n}\n", "\n/**\n * @imports\n */\nimport * as main from './main.js';\nimport * as actors from './actors.js';\n\nexport const Observer = { ...main, ...actors };\n\nexport { default as ListenerRegistry } from './core/ListenerRegistry.js';\nexport { default as TrapsRegistry } from './core/TrapsRegistry.js';\nexport { default as Descriptor } from './core/Descriptor.js';\n\nexport default Observer;", "import { _isString, _isNumeric, _isObject, _isTypeObject } from '@webqit/util/js/index.js';\nimport { Observer } from '@webqit/observer';\n\nexport class URLSearchParamsPlus extends URLSearchParams {\n\n #tree;\n\n #compatMode;\n get compatMode() { return this.#compatMode; }\n #compatModeKeys = new Set;\n #prettyPrint;\n\n #sorted = false;\n #changeCallback;\n _changeCallbackGC;\n\n constructor(init = {}, { compatMode = true, prettyPrint = false, changeCallback = null } = {}) {\n super();\n this.#compatMode = compatMode;\n this.#prettyPrint = prettyPrint;\n\n let tree;\n if (init instanceof URLSearchParamsPlus) {\n tree = structuredClone(init.json());\n if (compatMode) {\n this.#compatModeKeys = new Set(init.keys());\n }\n } else if (init instanceof URLSearchParams\n || init instanceof FormData) {\n tree = Object.fromEntries(init);\n if (compatMode) {\n this.#compatModeKeys = new Set(init.keys());\n }\n } else if (_isString(init)) {\n init = decodeURIComponent(init.replace(/^\\?/, ''));\n tree = this.constructor.parse(init, compatMode ? false : true);\n if (compatMode) {\n this.#compatModeKeys = new Set(\n init.split('&').map((q) => q.split('=')[0])\n );\n }\n } else if (Array.isArray(init)) {\n tree = this.constructor.fromEntries(init);\n if (compatMode) {\n this.#compatModeKeys = new Set(init.map(([k]) => k));\n }\n } else if (_isObject(init)) {\n tree = init;\n if (compatMode) {\n this.constructor.reduceValue(init, '', (v, path, next) => {\n if (next) return next;\n if (/\\[\\d+\\]$/.test(path)) {\n // Remove the trailing sqaure brackets\n [, path] = /^(.*)\\[\\d+\\]$/.exec(path);\n }\n this.#compatModeKeys.add(path);\n });\n }\n } else {\n tree = {};\n }\n\n this._changeCallback = changeCallback;\n this._resetJson(tree);\n }\n\n _resetJson(tree) {\n this.#tree = Observer.proxy(tree);\n if (this.#changeCallback) {\n this._changeCallbackGC?.abort();\n this._changeCallbackGC = Observer.observe(this.#tree, Observer.subtree(), this.#changeCallback);\n }\n }\n\n /* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Instance API \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n get(path) {\n const value = this.#get(path);\n if (this.#compatMode\n && Array.isArray(value)) return value[0];\n return value;\n }\n\n #get(path, all = false) {\n if (this.#compatMode\n && !this.#compatModeKeys.has(path)) {\n return null;\n }\n const value = this.constructor.get(this.#tree, path, all);\n if (value === undefined) return null;\n\n if (Array.isArray(value)) {\n if (this.#compatMode) {\n return value.map((v) => typeof v === 'number' ? v + '' : v);\n }\n return value.map(v =>\n _isObject(v) ? new URLSearchParamsPlus(v, { compatMode: this.#compatMode }) : v\n );\n }\n\n if (!this.#compatMode && _isObject(value)) {\n return new URLSearchParamsPlus(value, { compatMode: this.#compatMode });\n }\n\n if (this.#compatMode && typeof value === 'number') {\n return value + '';\n }\n\n return value;\n }\n\n getAll(path) {\n const value = this.#get(path, true);\n if (value === null) return [];\n return Array.isArray(value) ? value : [value];\n }\n\n set(path, value) {\n if (this.#compatMode) {\n this.#compatModeKeys.add(path);\n }\n this.constructor.set(this.#tree, path, value);\n return this;\n }\n\n append(path, value) {\n if (this.#compatMode) {\n this.#compatModeKeys.add(path);\n }\n this.constructor.set(this.#tree, path, value, true/* appendIfExists */);\n return this;\n }\n\n has(path) {\n if (this.#compatMode\n && !this.#compatModeKeys.has(path)) {\n return false;\n }\n return this.constructor.get(this.#tree, path) !== undefined;\n }\n\n delete(path) {\n if (this.#compatMode\n && !this.#compatModeKeys.has(path)) {\n return;\n }\n const parts = this.constructor.parsePath(path);\n const key = parts.pop();\n const parent = parts.length\n ? this.constructor.get(this.#tree, parts)\n : this.#tree;\n\n if (_isObject(parent)) {\n Observer.deleteProperty(parent, key);\n }\n }\n\n sort() {\n this.#sorted = true;\n return this;\n }\n\n json() { return Observer.unproxy(this.#tree); }\n\n stringify({ prettyPrint = this.#prettyPrint } = {}) {\n return this.constructor.stringify(this.#tree, {\n only: this.#compatMode && this.#compatModeKeys,\n sorted: this.#sorted,\n prettyPrint,\n });\n }\n\n toString() { return this.stringify(); }\n\n entries() {\n const out = [];\n this.constructor.reduceValue(this.#tree, '', (v, path, next) => {\n if (next) return next;\n if (this.#compatMode && !this.#compatModeKeys.has(path)) {\n if (/\\[\\d+\\]$/.test(path)) {\n // Try without the trailing sqaure brackets\n [, path] = /^(.*)\\[\\d+\\]$/.exec(path);\n if (!this.#compatModeKeys.has(path)\n && !this.#compatModeKeys.has(path = `${path}[]`)) return;\n } else return;\n }\n if (this.#compatMode && typeof v === 'number') {\n v = v + '';\n }\n out.push([path, v]);\n });\n return out[Symbol.iterator]();\n }\n\n keys() {\n return Array.from(this.entries(), ([k]) => k)[Symbol.iterator]();\n }\n\n values() {\n return Array.from(this.entries(), ([, v]) => v)[Symbol.iterator]();\n }\n\n forEach(cb, thisArg) {\n for (const [k, v] of this.entries()) {\n cb.call(thisArg, v, k, this);\n }\n }\n\n [Symbol.iterator]() {\n return this.entries();\n }\n\n get size() {\n let c = 0;\n this.forEach(() => c++);\n return c;\n }\n\n /* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Static utilities \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n static parse(str, parseNums = false, delim = '&') {\n const tree = {};\n (str.startsWith('?') ? str.slice(1) : str)\n .split(delim)\n .filter(Boolean)\n .forEach(q => {\n const i = q.indexOf('=');\n const key = i === -1 ? q : q.slice(0, i);\n const val = i === -1 ? '' : q.slice(i + 1);\n this.set(tree, key, val, true/* appendIfExists */, parseNums);\n });\n return tree;\n }\n\n static fromEntries(entries) {\n const tree = {};\n for (const [k, v] of entries) {\n this.set(tree, k, v, true/* appendIfExists */);\n }\n return tree;\n }\n\n static stringify(tree, { sorted = false, only = null, prettyPrint = false, delim = '&' } = {}) {\n const q = [];\n const keys = Object.keys(tree);\n if (sorted) keys.sort();\n\n keys.forEach(k => {\n this.reduceValue(tree[k], k, (v, path, suggested) => {\n if (suggested) return sorted ? [...suggested].sort() : suggested;\n if (only && !only.has(path)) {\n if (/\\[\\d+\\]$/.test(path)) {\n // Try without the trailing sqaure brackets\n [, path] = /^(.*)\\[\\d+\\]$/.exec(path);\n if (!only.has(path)\n && !only.has(path = `${path}[]`)) return;\n } else return;\n }\n if (!prettyPrint) {\n path = encodeURIComponent(path);\n }\n q.push(path + '=' + encodeURIComponent(v));\n }, (prettyPrint ? true : false)/* encodeOffsets */);\n });\n\n return q.join(delim);\n }\n\n static get(tree, path, allowGetAll = false) {\n return this.reducePath(path, tree, (k, t, branch) => {\n if (branch) return branch;\n if (k === '') {\n if (allowGetAll) return t;\n return t?.[0];\n }\n return t?.[k];\n });\n }\n\n static set(tree, path, value, appendIfExists = false, parseNums = false) {\n this.reducePath(path, tree, (k, t, branch) => {\n let v = branch ?? value;\n if (parseNums && /^-?\\d+(\\.\\d+)?$/.test(v + '')) {\n v = parseFloat(v);\n }\n if (k === '' && Array.isArray(t)) Observer.proxy(t).push(v);\n else if (appendIfExists && t?.[k]) {\n if (Array.isArray(t[k])) Observer.proxy(t[k]).push(v);\n else Observer.set(t, k, [t[k], v]);\n } else Observer.set(t, k, v);\n return v;\n });\n }\n\n static reduceValue(value, ctx, cb, encodeOffsets = false) {\n if (_isTypeObject(value)) {\n const keys = Object.keys(value);\n const next = cb(value, ctx, keys);\n if (Array.isArray(next)) {\n next.forEach(k => {\n if (encodeOffsets) {\n k = encodeURIComponent(k);\n }\n this.reduceValue(value[k], ctx ? `${ctx}[${k}]` : k, cb, encodeOffsets)\n });\n return;\n }\n }\n cb(value, ctx);\n }\n\n static reducePath(path, ctx, cb) {\n const parts = this.parsePath(path);\n let t = ctx;\n\n for (let i = 0; i < parts.length; i++) {\n let k = parts[i];\n if (_isNumeric(k)) k = +k;\n\n if (i === parts.length - 1) return cb(k, t);\n\n if (!_isTypeObject(t)) return;\n if (!_isTypeObject(t[k])) {\n const next = parts[i + 1];\n t[k] = cb(k, t, _isNumeric(next) || next === '' ? [] : {});\n }\n t = t[k];\n }\n }\n\n static parsePath(path) {\n if (Array.isArray(path)) return path;\n if (!_isString(path)) return [];\n\n const out = [];\n path.replace(/\\[([^\\]]*)\\]|([^[\\]]+)/g, (_, b, p) => {\n out.push(b ?? p);\n });\n\n return out;\n }\n}\n", "import { _before } from '@webqit/util/str/index.js';\nimport { _isNumeric } from '@webqit/util/js/index.js';\nimport { URLSearchParamsPlus } from '@webqit/url-plus';\nimport { dataType, _meta, _wq } from './messageParserMixin.js';\n\nexport class FormDataPlus extends FormData {\n\n static upgradeInPlace(formData) {\n if (formData instanceof FormDataPlus) return formData;\n return Object.setPrototypeOf(formData, FormDataPlus.prototype);\n }\n\n static json(data = {}, { encodeLiterals = true, meta = false } = {}) {\n const formData = new FormDataPlus;\n let isDirectlySerializable = true;\n\n URLSearchParamsPlus.reduceValue(data, '', (value, contextPath, suggestedKeys = undefined) => {\n if (suggestedKeys) {\n const isJson = dataType(value) === 'json';\n isDirectlySerializable = isDirectlySerializable && isJson;\n return isJson && suggestedKeys;\n }\n\n if (encodeLiterals && [true, false, null].includes(value)) {\n value = new Blob([value + ''], { type: 'application/json' });\n }\n\n formData.append(contextPath, value);\n });\n\n if (meta) return { result: formData, isDirectlySerializable };\n return formData;\n }\n\n async json({ decodeLiterals = true, meta = false } = {}) {\n let isDirectlySerializable = true;\n let json;\n\n for (let [name, value] of this.entries()) {\n if (!json) json = _isNumeric(_before(name, '[')) ? [] : {};\n\n let type = dataType(value);\n if (decodeLiterals\n && ['Blob', 'File'].includes(type)\n && value.type === 'application/json'\n && [4, 5].includes(value.size)) {\n let _value = JSON.parse(await value.text());\n if ([null, true, false].includes(_value)) {\n value = _value;\n type = 'json';\n }\n }\n\n isDirectlySerializable = isDirectlySerializable && type === 'json';\n if (/^[+-]?(?:\\d+\\.?\\d*|\\.\\d+)(?:[eE][+-]?\\d+)?$/.test(value)) {\n value = Number(value);\n }\n URLSearchParamsPlus.set(json, name, value);\n }\n\n if (meta) return { result: json, isDirectlySerializable };\n return json;\n }\n}\n\n\n", "import { _isString, _isObject, _isTypeObject, _isNumber, _isBoolean, _isPlainObject, _isPlainArray } from '@webqit/util/js/index.js';\nimport { _wq as $wq } from '@webqit/util/js/index.js';\nimport { FormDataPlus } from './FormDataPlus.js';\n\nexport const _wq = (target, ...args) => $wq(target, 'fetch+', ...args);\nexport const _meta = (target, ...args) => $wq(target, 'fetch+', 'meta', ...args);\n\nexport function messageParserMixin(superClass) {\n return class extends superClass {\n\n static from(httpMessageInit) {\n const headers = (httpMessageInit.headers instanceof Headers)\n\n ? [...httpMessageInit.headers.entries()].reduce((_headers, [name, value]) => {\n const key = name.toLowerCase();\n _headers[key] = _headers[key] ? [].concat(_headers[key], value) : value;\n return _headers;\n }, {})\n\n : Object.keys(httpMessageInit.headers || {}).reduce((_headers, name) => {\n _headers[name.toLowerCase()] = httpMessageInit.headers[name];\n return _headers;\n }, {});\n\n // Process body\n let body = httpMessageInit.body;\n let type = [null, undefined].includes(body) ? null : dataType(body);\n\n // Binary bodies\n if (['Blob', 'File'].includes(type)) {\n\n headers['content-type'] ??= body.type;\n headers['content-length'] ??= body.size;\n\n } else if (['Uint8Array', 'Uint16Array', 'Uint32Array', 'ArrayBuffer'].includes(type)) {\n headers['content-length'] ??= body.byteLength;\n }\n\n // JSON objects\n else if (type === 'json' && _isTypeObject(body)) {\n const { result: _body, isDirectlySerializable } = FormDataPlus.json(body, { encodeLiterals: true, meta: true });\n if (isDirectlySerializable) {\n\n body = JSON.stringify(body, (k, v) => v instanceof Error ? { ...v, message: v.message } : v);\n headers['content-type'] = 'application/json';\n headers['content-length'] = (new Blob([body])).size;\n\n } else {\n body = _body;\n type = 'FormData';\n }\n }\n\n // Strings\n else if (['text', 'json'].includes(type) && !headers['content-length']) {\n headers['content-length'] = (new Blob([body])).size;\n }\n\n if (!['FormData', null].includes(type)\n && !['function'].includes(typeof body)\n && !headers['content-type']) {\n headers['content-type'] = 'application/octet-stream';\n }\n\n // Return canonical init object with type info\n return { body, headers: new Headers(headers), $type: type };\n }\n\n async formData() {\n const fd = await super.formData();\n FormDataPlus.upgradeInPlace(fd);\n return fd;\n }\n\n async any({ to = null, memo = false } = {}) {\n if (to && ![\n 'blob', 'text', 'json', 'arrayBuffer', 'bytes', 'formData'\n ].includes(to)) throw new Error(`Invalid target type specified: ${to}`);\n\n if (this.body === null) return null;\n\n const cache = _meta(this, 'cache');\n const readAs = async (type) => {\n // 1. Direct parsing\n if (!memo) return await this[type || 'bytes']();\n\n const byValue = (x) => {\n if (x instanceof FormData) {\n const clone = new FormDataPlus;\n for (const [k, v] of x.entries()) clone.append(k, v);\n return clone;\n }\n if ((!type || type === 'json')\n && (_isPlainObject(x) || _isPlainArray(x))) {\n return structuredClone(x);\n }\n return x;\n };\n\n // 2. Direct original\n if (!type && cache.has('original')) return byValue(cache.has('original'));\n\n // Default type\n type ??= 'bytes';\n\n // 3. Direct cache matching\n if (cache.has(type)) return byValue(cache.get(type));\n\n // 4. Clone + parse\n let result;\n if (cache.has('memo')) {\n result = cache.get('memo').clone()[type]();\n } else {\n cache.set('memo', this.clone());\n result = await this[type]();\n }\n\n cache.set(type, result);\n\n return byValue(result);\n };\n\n const contentType = (this.headers.get('Content-Type') || '').split(';')[0].trim();\n let result;\n if ((!to || ['formData', 'json'].includes(to))\n && ['multipart/form-data', 'application/x-www-form-urlencoded'].includes(contentType)) {\n let fd = await readAs('formData');\n FormDataPlus.upgradeInPlace(fd);\n\n if (to === 'json') {\n fd = await fd.json({ decodeLiterals: true });\n }\n\n result = fd;\n } else if ((!to || ['formData', 'json'].includes(to))\n && contentType === 'application/json') {\n let json = await readAs('json');\n\n if (to === 'formData') {\n json = FormDataPlus.json(json, { encodeLiterals: true });\n }\n\n result = json;\n } else if (!to && (\n contentType.startsWith('image/') ||\n contentType.startsWith('video/') ||\n contentType.startsWith('audio/') ||\n (contentType.startsWith('application/')\n && !['xml', 'json', 'javascript', 'x-www-form-urlencoded'].some(t => contentType.includes(t)))\n )) {\n result = await readAs('blob');\n } else if (!to && (\n contentType.startsWith('text/') ||\n (contentType.startsWith('application/')\n && ['xml', 'javascript'].some((t) => contentType.includes(t))\n ))) {\n result = await readAs('text');\n } else {\n if (['json', 'formData'].includes(to)) {\n throw new Error(`Cannot convert body of type ${contentType} to ${to}`);\n }\n result = await readAs(to);\n }\n\n return result;\n }\n\n forget() {\n const cache = _meta(this, 'cache');\n cache.clear();\n }\n };\n}\n\n// ------ Util\n\nexport function dataType(value) {\n if (value instanceof FormData) {\n return 'FormData';\n }\n if (value === null || _isNumber(value) || _isBoolean(value)) {\n return 'json';\n }\n if (_isString(value)) {\n return 'text';\n }\n\n if (_isTypeObject(value)) {\n const toStringTag = value[Symbol.toStringTag];\n const type = [\n 'Uint8Array', 'Uint16Array', 'Uint32Array', 'ArrayBuffer', 'Blob', 'File', 'FormData', 'Stream', 'ReadableStream'\n ].reduce((_toStringTag, type) => _toStringTag || (toStringTag === type ? type : null), null);\n\n if (type) return type;\n\n if (_isObject(value) || Array.isArray(value)) {\n return 'json';\n }\n\n if ('toString' in value) return 'text';\n }\n\n return null;\n}\n\nexport function isTypeReadable(obj) {\n return (\n obj !== null &&\n typeof obj === 'object' &&\n typeof obj.read === 'function' && // streams have .read()\n typeof obj.pipe === 'function' && // streams have .pipe()\n typeof obj.on === 'function' // streams have event listeners\n );\n}\n\nexport function isTypeStream(obj) {\n return obj instanceof ReadableStream\n || isTypeReadable(obj);\n}\n", "import { _isObject, _isTypeObject } from '@webqit/util/js/index.js';\nimport { _from as _arrFrom } from '@webqit/util/arr/index.js';\nimport { _after } from '@webqit/util/str/index.js';\n\nexport class HeadersPlus extends Headers {\n\n static upgradeInPlace(headers) {\n if (headers instanceof HeadersPlus) return headers;\n return Object.setPrototypeOf(headers, HeadersPlus.prototype);\n }\n\n set(name, value) {\n // Format \"Set-Cookie\" response header\n if (/^Set-Cookie$/i.test(name)) {\n if (Array.isArray(value)) {\n this.delete(name); // IMPORTANT\n for (const v of value) this.append(name, v);\n return;\n }\n if (_isObject(value)) {\n value = renderCookieObjToString(value);\n }\n }\n\n // Format \"Cookie\" request header\n if (/Cookie/i.test(name)) {\n value = renderCookieInput(value);\n }\n\n // Format \"Content-Range\" response header?\n if (/^Content-Range$/i.test(name)) {\n value = renderContentRangeInput(value);\n }\n\n // Format \"Range\" request header?\n if (/^Range$/i.test(name)) {\n value = renderRangeInput(value);\n }\n\n // Format \"Accept\" request header?\n if (/^Accept$/i.test(name)) {\n value = renderAcceptInput(value);\n }\n\n return super.set(name, value);\n }\n\n append(name, value) {\n // Format \"Set-Cookie\" response header\n if (/^Set-Cookie$/i.test(name)) {\n if (Array.isArray(value)) {\n for (const v of value) this.append(name, v);\n return;\n }\n if (_isObject(value)) {\n value = renderCookieObjToString(value);\n }\n }\n\n // Format \"Cookie\" request header\n if (/Cookie/i.test(name)) {\n value = renderCookieInput(value);\n }\n\n // Format \"Content-Range\" response header?\n if (/^Content-Range$/i.test(name)) {\n value = renderContentRangeInput(value);\n }\n\n // Format \"Range\" request header?\n if (/^Range$/i.test(name)) {\n value = renderRangeInput(value);\n }\n\n // Format \"Accept\" request header?\n if (/^Accept$/i.test(name)) {\n value = renderAcceptInput(value);\n }\n\n return super.append(name, value);\n }\n\n get(name, structured = false) {\n let value = super.get(name);\n\n // Parse \"Set-Cookie\" response header\n if (/^Set-Cookie$/i.test(name) && structured) {\n value = this.getSetCookie()/*IMPORTANT*/.map((str) => {\n const [cookieDefinition, ...attrs] = str.split(';');\n const [name, value] = cookieDefinition.split('=').map((s) => s.trim());\n const cookieObj = { name, value: /*decodeURIComponent*/(value), };\n attrs.map((attrStr) => attrStr.trim().split('=')).forEach(attrsArr => {\n cookieObj[attrsArr[0][0].toLowerCase() + attrsArr[0].substring(1).replace('-', '')] = attrsArr.length === 1 ? true : attrsArr[1];\n });\n return cookieObj;\n });\n }\n\n // Parse \"Cookie\" request header\n if (/^Cookie$/i.test(name) && structured) {\n value = value?.split(';').map((str) => {\n const [name, value] = str.split('=').map((s) => s.trim());\n return { name, value: /*decodeURIComponent*/(value), };\n }) || [];\n }\n\n // Parse \"Content-Range\" response header?\n if (/^Content-Range$/i.test(name) && value && structured) {\n value = _after(value, 'bytes ').split('/');\n }\n\n // Parse \"Range\" request header?\n if (/^Range$/i.test(name) && structured) {\n value = !value ? [] : _after(value, 'bytes=').split(',').map((rangeStr) => {\n const range = rangeStr.trim().split('-').map((s) => s ? parseInt(s, 10) : null);\n range.resolveAgainst = (totalLength) => {\n const offsets = [...range];\n if (offsets[1] === null) {\n offsets[1] = totalLength - 1;\n } else {\n offsets[1] = Math.min(offsets[1], totalLength) - 1;\n }\n if (offsets[0] === null) {\n offsets[0] = offsets[1] ? totalLength - offsets[1] - 1 : 0;\n }\n return offsets;\n };\n range.canResolveAgainst = (currentStart, totalLength) => {\n const offsets = [\n typeof range[0] === 'number' ? range[0] : currentStart,\n typeof range[1] === 'number' ? range[1] : totalLength - 1\n ];\n // Start higher than end or vice versa?\n if (offsets[0] > offsets[1]) return false;\n // Stretching beyond valid start/end?\n if (offsets[0] < currentStart || offsets[1] >= totalLength) return false;\n return true;\n };\n range.toString = () => {\n return rangeStr;\n };\n return range;\n });\n }\n\n // Parse \"Accept\" request header?\n if (/^Accept$/i.test(name) && value && structured) {\n const parseSpec = (spec) => {\n const [mime, q] = spec.trim().split(';').map((s) => s.trim());\n return [mime, parseFloat((q || 'q=1').replace('q=', ''))];\n };\n const $value = value;\n value = value.split(',')\n .map((spec) => parseSpec(spec))\n .sort((a, b) => a[1] > b[1] ? -1 : 1) || [];\n value.match = (mime) => {\n if (!mime) return 0;\n const splitMime = (mime) => mime.split('/').map((s) => s.trim());\n const $mime = splitMime(mime + '');\n return value.reduce((prev, [entry, q]) => {\n if (prev) return prev;\n const $entry = splitMime(entry);\n return [0, 1].every((i) => (($mime[i] === $entry[i]) || $mime[i] === '*' || $entry[i] === '*')) ? q : 0;\n }, 0);\n };\n value.toString = () => {\n return $value;\n };\n }\n\n return value;\n }\n}\n\nexport function renderCookieObjToString(cookieObj) {\n const attrsArr = [`${cookieObj.name}=${/*encodeURIComponent*/(cookieObj.value)}`];\n for (const attrName in cookieObj) {\n if (['name', 'value'].includes(attrName)) continue;\n let _attrName = attrName[0].toUpperCase() + attrName.substring(1);\n if (_attrName === 'MaxAge') { _attrName = 'Max-Age' };\n attrsArr.push(cookieObj[attrName] === true ? _attrName : `${_attrName}=${cookieObj[attrName]}`);\n }\n return attrsArr.join('; ');\n}\n\nfunction renderCookieInput(value) {\n if (_isTypeObject(value)) {\n value = [].concat(value).map(renderCookieObjToString).join('; ');\n }\n return value;\n}\n\nfunction renderRangeInput(value) {\n let rangeArr = [];\n _arrFrom(value).forEach((range, i) => {\n let rangeStr = Array.isArray(range) ? range.map((n) => [null, undefined].includes(n) ? '' : n).join('-') : range + '';\n if (i === 0 && !rangeStr.includes('bytes=')) {\n rangeStr = `bytes=${rangeStr}`;\n }\n rangeArr.push(rangeStr);\n });\n return rangeArr.join(', ');\n}\n\nfunction renderContentRangeInput(value) {\n if (Array.isArray(value)) {\n if (value.length < 2 || !value[0].includes('-')) {\n throw new Error(`A Content-Range array must be in the format: [ 'start-end', 'total' ]`);\n }\n value = `bytes ${value.join('/')}`;\n }\n return value;\n}\n\nfunction renderAcceptInput(value) {\n if (Array.isArray(value)) {\n value = value.map(\n (s) => Array.isArray(s) ? s.map(\n (s, i) => i === 1 && (s = parseFloat(s), true) ? (s === 1 ? '' : `;q=${s}`) : s.trim()\n ).join('') : s.trim()\n ).join(',');\n }\n return value;\n}\n\n", "import { messageParserMixin, _meta, _wq } from './messageParserMixin.js';\nimport { HeadersPlus } from './HeadersPlus.js';\n\nexport class ResponsePlus extends messageParserMixin(Response) {\n\n constructor(body, init = {}) {\n super(body, init);\n HeadersPlus.upgradeInPlace(this.headers);\n }\n\n static upgradeInPlace(response) {\n if (response instanceof ResponsePlus) return response;\n Object.setPrototypeOf(response, ResponsePlus.prototype);\n HeadersPlus.upgradeInPlace(response.headers);\n return response;\n }\n\n static from(body, { memoize = false, ...init } = {}) {\n if (body instanceof Response) return body;\n\n let $type;\n if (typeof body !== 'undefined') {\n let headers;\n ({ body, headers, $type } = super.from({ body, headers: init.headers }));\n init = { ...init, headers };\n }\n\n const instance = new this(body, init);\n\n if (memoize) {\n const cache = _meta(instance, 'cache');\n const typeMap = { json: 'json', FormData: 'formData', text: 'text', ArrayBuffer: 'arrayBuffer', Blob: 'blob', Bytes: 'bytes' };\n cache.set(typeMap[$type] || 'original', body);\n }\n\n return instance;\n }\n\n get status() {\n // Support framework-injected app-level 'status'\n return _meta(this).get('status') ?? super.status;\n }\n\n clone() {\n const clone = super.clone();\n ResponsePlus.upgradeInPlace(clone);\n\n const responseMeta = _meta(this);\n _wq(clone).set('meta', new Map(responseMeta));\n if (_meta(clone).has('cache')) {\n _meta(clone).set('cache', new Map(responseMeta.get('cache')));\n }\n\n return clone;\n }\n}\n\n\n", "import { ResponsePlus } from './ResponsePlus.js';\n\nexport async function fetchPlus(url, options = {}) {\n const response = await fetch(url, options);\n ResponsePlus.upgradeInPlace(response);\n return response;\n}", "import { messageParserMixin, _meta, _wq } from './messageParserMixin.js';\nimport { HeadersPlus } from './HeadersPlus.js';\n\nexport class RequestPlus extends messageParserMixin(Request) {\n\n constructor(url, init = {}) {\n super(url, init);\n HeadersPlus.upgradeInPlace(this.headers);\n }\n\n static upgradeInPlace(request) {\n if (request instanceof RequestPlus) return request;\n Object.setPrototypeOf(request, RequestPlus.prototype);\n HeadersPlus.upgradeInPlace(request.headers);\n return request;\n }\n\n static from(url, { memoize = false, ...init } = {}) {\n if (url instanceof Request) return url;\n\n let $type, $$body = init.body;\n if ('body' in init) {\n const { body, headers, $type: $$type } = super.from(init);\n init = { ...init, body, headers };\n $type = $$type;\n }\n\n const instance = new this(url, init);\n\n if (memoize) {\n const cache = _meta(instance, 'cache');\n const typeMap = { json: 'json', FormData: 'formData', text: 'text', ArrayBuffer: 'arrayBuffer', Blob: 'blob', Bytes: 'bytes' };\n cache.set(typeMap[$type] || 'original', $$body);\n }\n\n return instance;\n }\n\n static async copy(request, init = {}) {\n const attrs = ['method', 'headers', 'mode', 'credentials', 'cache', 'redirect', 'referrer', 'integrity'];\n const requestInit = attrs.reduce(($init, prop) => (\n {\n ...$init,\n [prop]: prop in init\n ? init[prop]\n : (prop === 'headers'\n ? new Headers(request[prop])\n : request[prop])\n }\n ), {});\n if (!['GET', 'HEAD'].includes(requestInit.method.toUpperCase())) {\n if ('body' in init) {\n requestInit.body = init.body\n if (!('headers' in init)) {\n requestInit.headers.delete('Content-Type');\n requestInit.headers.delete('Content-Length');\n }\n } else {\n requestInit.body = await request.clone().arrayBuffer();\n }\n } else {\n requestInit.body = null;\n }\n if (requestInit.mode === 'navigate') {\n requestInit.mode = 'cors';\n }\n return { url: init.url || request.url, ...requestInit };\n }\n\n clone() {\n const clone = super.clone();\n RequestPlus.upgradeInPlace(clone);\n\n const requestMeta = _meta(this);\n _wq(clone).set('meta', new Map(requestMeta));\n if (_meta(clone).has('cache')) {\n _meta(clone).set('cache', new Map(requestMeta.get('cache')));\n }\n\n return clone;\n }\n}\n\n\n", "import { _isTypeObject } from '@webqit/util/js/index.js';\nimport { MessagePortPlus, applyMutations, _options } from './MessagePortPlus.js';\n\nexport class MessageEventPlus extends MessageEvent {\n\n #originalTarget;\n get originalTarget() { return this.#originalTarget; }\n\n #eventID;\n get eventID() { return this.#eventID; }\n\n #data;\n get data() { return this.#data; }\n\n #live;\n get live() { return this.#live; }\n\n #bubbles;\n get bubbles() { return this.#bubbles; }\n\n #forwarded;\n get forwarded() { return this.#forwarded; }\n\n #honourDoneMutationFlags;\n get honourDoneMutationFlags() { return this.#honourDoneMutationFlags; }\n\n #ports = [];\n get ports() { return this.#ports; }\n\n constructor(data, {\n originalTarget = null,\n type = 'message',\n eventID,\n live = false,\n honourDoneMutationFlags = false,\n bubbles = false,\n forwarded = false,\n ports = []\n } = {}) {\n if (type && typeof type !== 'string') {\n throw new TypeError('Where specified, wqEventOptions.type must be a string');\n }\n super(type);\n this.#data = data;\n this.#originalTarget = originalTarget;\n this.#eventID = eventID;\n this.#live = live;\n this.#bubbles = bubbles;\n this.#forwarded = forwarded;\n this.#honourDoneMutationFlags = honourDoneMutationFlags;\n\n this.#ports = ports;\n this.#ports.forEach((port) => MessagePortPlus.upgradeInPlace(port));\n\n if (_isTypeObject(this.#data) && this.#live) {\n if (typeof eventID !== 'string') {\n throw new TypeError('eventID must be a non-empty string');\n }\n applyMutations.call(originalTarget, this.#data, this.#eventID, { honourDoneMutationFlags: this.#honourDoneMutationFlags });\n }\n }\n\n #immediatePropagationStopped = false;\n get immediatePropagationStopped() { return this.#immediatePropagationStopped; }\n\n stopImmediatePropagation() {\n this.#immediatePropagationStopped = true;\n this.#propagationStopped = true;\n super.stopImmediatePropagation();\n }\n\n #propagationStopped = false;\n get propagationStopped() { return this.#propagationStopped; }\n\n stopPropagation() {\n this.#propagationStopped = true;\n super.stopPropagation();\n }\n\n #defaultPrevented = false;\n get defaultPrevented() { return this.#defaultPrevented; }\n\n preventDefault() {\n this.#defaultPrevented = true;\n super.preventDefault();\n }\n\n respondWith(data, transferOrOptions = []) {\n for (const port of this.#ports) {\n port.postMessage(data, transferOrOptions);\n }\n return !!this.#ports.length;\n }\n}\n", "import { _isObject } from '@webqit/util/js/index.js';\nimport {\n _meta,\n MessagePortPlusMockPortsMixin,\n} from './MessagePortPlus.js';\n\nexport class WebSocketPort extends MessagePortPlusMockPortsMixin(EventTarget) {\n\n #ws;\n #wsReady;\n\n constructor(ws, { handshake = 0, postAwaitsOpen = false } = {}) {\n super();\n\n if (typeof handshake !== 'number') {\n throw new Error('handshake must be a number');\n }\n if (handshake < 0 || handshake > 2) {\n throw new Error('handshake must be between 0 and 2');\n }\n\n const portPlusMeta = _meta(this);\n portPlusMeta.set('options', { handshake, postAwaitsOpen });\n // Must come before upgradeEvents()\n\n this.#ws = typeof ws === 'string' ? new WebSocket(ws) : ws;\n\n this.constructor/* IMPORTANT */.upgradeEvents(this.#ws, this);\n\n this.#wsReady = new Promise((resolve) => {\n if (this.#ws.readyState === WebSocket.OPEN) {\n resolve();\n } else {\n this.#ws.addEventListener('open', () => resolve(), { once: true });\n }\n });\n\n if (handshake === 0) {\n this.#wsReady.then(() => this.start());\n }\n\n if (this.#ws.readyState === WebSocket.CLOSED) {\n try { this.close(); } catch (e) { }\n } else {\n this.#ws.addEventListener('close', () => {\n try { this.close(); } catch (e) { }\n }, { once: true });\n }\n }\n\n static _hydrateMessage(portPlus, event) {\n try {\n let data;\n if (typeof event.data === 'string'\n && _isObject(data = JSON.parse(event.data))\n && data['.wq']) {\n Object.defineProperty(event, 'data', { value: data, configurable: true });\n return super._hydrateMessage(portPlus, event);\n }\n } catch (e) { }\n return event;\n }\n\n __postMessage(payload, portOptions) {\n this.#wsReady.then(() => {\n this.#ws.send(JSON.stringify(payload), portOptions);\n });\n }\n\n _close() {\n this.#ws.close();\n }\n}\n", "import { _wq as $wq } from '@webqit/util/js/index.js';\nimport { _isObject, _isTypeObject } from '@webqit/util/js/index.js';\nimport { MessageEventPlus } from './MessageEventPlus.js';\nimport { Observer } from '@webqit/observer';\nimport { WebSocketPort } from './WebSocketPort.js';\n\nexport const _wq = (target, ...args) => $wq(target, 'port+', ...args);\nexport const _meta = (target, ...args) => $wq(target, 'port+', 'meta', ...args);\nexport const _options = (target) => $wq(target, 'port+', 'meta').get('options') || {};\n\nconst portPlusMethods = [\n 'addEventListener',\n 'addRequestListener',\n 'postMessage',\n 'postRequest',\n 'dispatchEvent',\n 'relay',\n 'start',\n 'readyStateChange',\n 'removeEventListener',\n 'close',\n];\nconst portPlusProps = [\n 'options',\n 'readyState',\n 'onmessage',\n 'onmessageerror',\n];\n\nexport class MessagePortPlus extends MessagePortPlusMixin(EventTarget) {\n\n constructor({ handshake = 0, postAwaitsOpen = false, ...options } = {}) {\n if (typeof handshake !== 'number') {\n throw new Error('handshake must be a number');\n }\n if (handshake < 0 || handshake > 2) {\n throw new Error('handshake must be between 0 and 2');\n }\n\n super();\n\n const portPlusMeta = _wq(this, 'meta');\n portPlusMeta.set('options', { handshake, postAwaitsOpen, ...options });\n }\n\n static [Symbol.hasInstance](instance) {\n // Direct subclass?\n if (Function.prototype[Symbol.hasInstance].call(this, instance)) return true;\n // Duct-type checking\n return portPlusMethods.every((m) => typeof instance[m] === 'function')\n || portPlusProps.every((m) => m in instance);\n }\n}\n\nexport function MessagePortPlusMixin(superClass) {\n return class extends superClass {\n\n static upgradeInPlace(port, { handshake = 0, postAwaitsOpen = false } = {}) {\n if (port instanceof MessagePortPlus) {\n return port;\n }\n\n if (typeof handshake !== 'number') {\n throw new Error('handshake must be a number');\n }\n if (handshake < 0 || handshake > 2) {\n throw new Error('handshake must be between 0 and 2');\n }\n\n const proto = this.prototype;\n\n for (const prop of portPlusMethods.concat('_autoStart')) {\n const original = port[prop];\n const plus = proto[prop];\n\n if (original) Object.defineProperty(port, `_${prop}`, { value: original.bind(port), configurable: true });\n Object.defineProperty(port, prop, { value: plus.bind(port), configurable: true });\n }\n\n for (const prop of portPlusProps) {\n const original = Object.getOwnPropertyDescriptor(Object.getPrototypeOf(port), prop);\n const plus = Object.getOwnPropertyDescriptor(Object.getPrototypeOf(proto), prop);\n\n if (original) Object.defineProperty(port, `_${prop}`, { ...original, configurable: true });\n Object.defineProperty(port, prop, { ...plus, configurable: true });\n }\n\n const portPlusMeta = _wq(port, 'meta');\n portPlusMeta.set('options', { handshake, postAwaitsOpen });\n\n this.upgradeEvents(port);\n\n if (handshake === 0) port.start();\n\n return port;\n }\n\n static upgradeEvents(port, portPlus = null) {\n if (!portPlus) portPlus = port;\n\n const rawPortMeta = _meta(port);\n if (rawPortMeta.get('events+')) return; // Already wrapped\n\n const portPlusMeta = _meta(portPlus);\n const options = _options(portPlus);\n\n const garbageCollection = getGarbageCollection.call(portPlus);\n const readyStateInternals = getReadyStateInternals.call(portPlus);\n\n // ------------- SETUP\n\n if (port instanceof BroadcastChannel) {\n if (options.clientServerMode === 'server') {\n portPlusMeta.set('clients', new Set);\n } else if (options.clientServerMode === 'client') {\n portPlusMeta.set('client_id', `client-${(0 | Math.random() * 9e6).toString(36)}`);\n }\n }\n\n // ------------- MESSAGE\n\n const messageHandler = (e) => {\n if (e instanceof MessageEventPlus) return;\n // Stop propagation if the event for portPlus\n // since we'll repost it there\n if (port === portPlus) e.stopImmediatePropagation?.();\n // Hydrate event. Typically a WebSocket-specific feature\n e = this._hydrateMessage?.(portPlus, e) || e;\n\n /*\n * Handle lifecycle events from the other end\n */\n\n if (e.data.ping === 'connect'\n && typeof e.data?.['.wq']?.eventID === 'string'\n && (!(port instanceof WebSocket) || options.handshake)) {\n // This is a special ping from a MessagePort or BroadcastChannel instance\n // that helps us simulate an \"open\" event\n // If options.handshake !== 0, WebSockets too\n\n const nowOpen = options.handshake === 0\n || portPlusMeta.get('start.called');\n\n const reply = { isOpen: nowOpen };\n\n if (port instanceof BroadcastChannel) {\n if (options.clientServerMode === 'server'\n && typeof e.data.id === 'string') {\n portPlusMeta.get('clients').add(e.data.id);\n reply.id = 'server';\n } else if (e.data.id === 'server'\n && portPlusMeta.has('client_id')) {\n reply.id = portPlusMeta.get('client_id');\n }\n }\n\n e.ports?.forEach((p) => p.postMessage(reply));\n\n if (nowOpen) {\n portPlusMeta.set('remote.open.called', true);\n portPlus.start();\n }\n\n return;\n }\n\n if (e.data.ping === 'disconnect'\n && typeof e.data?.['.wq']?.eventID === 'string') {\n // This is a special ping from a BroadcastChannel instance\n // that helps us simulate a \"close\" event\n // WebSockets naturally fire a close event\n // In nodejs only, MessagePort naturally fire a close event\n // so we need to support simulated closing for when in the browser\n\n const close = () => {\n portPlusMeta.set('remote.close.called', true);\n portPlus.close();\n };\n\n if (port instanceof BroadcastChannel) {\n if (options.clientServerMode === 'server'\n && typeof e.data.id === 'string') {\n // Expel a client\n portPlusMeta.get('clients').delete(e.data.id);\n // Declare closed if no clients remain\n if (!portPlusMeta.get('clients').size\n && options.autoClose\n && !readyStateInternals.close.state) {\n close();\n }\n } else if (options.clientServerMode === 'client'\n && e.data.id === 'server') {\n // Server has closed\n close();\n }\n } else if (port instanceof MessagePort) {\n close();\n }\n\n return;\n }\n\n /*\n * Do event rewrites and the Webflo live object magic\n */\n\n let message = e.data;\n let wqOptions = {};\n if (typeof e.data?.['.wq']?.eventID === 'string') {\n ({ message, ['.wq']: wqOptions } = e.data);\n }\n\n const eventPlus = new MessageEventPlus(message, {\n originalTarget: port,\n ...wqOptions,\n ports: e.ports,\n });\n\n portPlus.dispatchEvent(eventPlus);\n };\n\n rawPortMeta.set('internal_call', true);\n port.addEventListener('message', messageHandler);\n port.addEventListener('error', messageHandler);\n rawPortMeta.delete('internal_call');\n\n garbageCollection.add(() => {\n port.removeEventListener('message', messageHandler);\n port.removeEventListener('error', messageHandler);\n\n rawPortMeta.set('events+', false);\n });\n\n rawPortMeta.set('events+', true);\n }\n\n get options() { return { ..._options(this) }; }\n\n // Messages\n\n get onmessageerror() {\n if (typeof super.onmessageerror !== 'undefined') {\n return super.onmessageerror;\n }\n if (typeof this._onmessageerror !== 'undefined') {\n return this._onmessageerror;\n }\n return null;\n }\n\n set onmessageerror(v) {\n if (typeof super.onmessageerror !== 'undefined') {\n super.onmessageerror = v;\n return;\n }\n\n if (v !== null && typeof v !== 'function') {\n throw new TypeError('onmessageerror must be a function');\n }\n\n if (Object.getOwnPropertyDescriptor(this, '_onmessageerror')?.set) {\n this._onmessageerror = v;\n return;\n }\n\n if (this._onmessageerror) this.removeEventListener('messageerror', this._onmessageerror);\n this.addEventListener('messageerror', v);\n this._onmessageerror = v;\n }\n\n get onmessage() {\n if (typeof super.onmessage !== 'undefined') {\n return super.onmessage;\n }\n if (typeof this._onmessage !== 'undefined') {\n return this._onmessage;\n }\n return null;\n }\n\n set onmessage(v) {\n if (typeof super.onmessage !== 'undefined') {\n super.onmessage = v;\n this._autoStart();\n return;\n }\n\n if (v !== null && typeof v !== 'function') {\n throw new TypeError('onmessage must be a function');\n }\n\n if (Object.getOwnPropertyDescriptor(this, '_onmessage')?.set) {\n this._onmessage = v;\n this._autoStart();\n return;\n }\n\n if (this._onmessage) this.removeEventListener('message', this._onmessage);\n this.addEventListener('message', v);\n this._onmessage = v;\n this._autoStart();\n }\n\n addEventListener(...args) {\n // Add to registry \n const garbageCollection = getGarbageCollection.call(this);\n garbageCollection.add(() => {\n this._removeEventListener\n ? this._removeEventListener(...args)\n : super.removeEventListener(...args);\n });\n\n // Execute addEventListener()\n const returnValue = this._addEventListener\n ? this._addEventListener(...args)\n : super.addEventListener(...args);\n this._autoStart();\n return returnValue;\n }\n\n dispatchEvent(event) {\n const returnValue = this._dispatchEvent\n ? this._dispatchEvent(event)\n : super.dispatchEvent(event);\n if (event instanceof MessageEventPlus) {\n // Bubble semantics\n propagateEvent.call(this, event);\n }\n return returnValue;\n }\n\n postMessage(message, transferOrOptions = {}) {\n this._autoStart();\n\n let portPlusIgnore; // From starPort\n if (transferOrOptions?.portPlusIgnore) {\n ({ portPlusIgnore, ...transferOrOptions } = transferOrOptions);\n }\n\n // Update readyState\n const readyStateInternals = getReadyStateInternals.call(this);\n readyStateInternals.messaging.state = true;\n readyStateInternals.messaging.resolve(this);\n\n let _relayedFrom;\n\n if (!portPlusIgnore) {\n // Format payload if not yet in the ['.wq'] format\n const { portOptions, wqOptions: { relayedFrom, ...wqOptions } } = preProcessPostMessage.call(this, message, transferOrOptions);\n if (wqOptions.type !== 'message'\n || wqOptions.live\n || wqOptions.bubbles\n || portOptions.transfer?.length && (this instanceof BroadcastChannel || this instanceof WebSocketPort)) {\n message = { message, ['.wq']: wqOptions };\n }\n transferOrOptions = portOptions;\n _relayedFrom = relayedFrom;\n }\n\n // Exec\n const post = () => {\n this._postMessage\n ? this._postMessage(message, transferOrOptions, _relayedFrom)\n : super.postMessage(message, transferOrOptions);\n };\n\n // If client-server mode, wait for open ready state\n const options = _options(this);\n if (options.postAwaitsOpen) readyStateInternals.open.promise.then(post);\n else post();\n }\n\n // Requests\n\n addRequestListener(type, handler, options = {}) {\n const handle = async (e) => {\n const response = await handler(e);\n for (const port of e.ports) {\n port.postMessage(response);\n }\n };\n this.addEventListener(type, handle, options);\n }\n\n postRequest(data, callback, options = {}) {\n let returnValue;\n\n if (_isObject(callback)) {\n options = { once: true, ...callback };\n returnValue = new Promise((resolve) => {\n callback = resolve;\n });\n }\n\n const messageChannel = new MessageChannel;\n MessagePortPlus.upgradeInPlace(messageChannel.port1);\n messageChannel.port1.start();\n\n const { signal, once = false, transfer = [], ..._options } = options;\n\n messageChannel.port1.addEventListener('message', (e) => callback(e), { signal: signal || undefined/* NO NULLS */, once });\n signal?.addEventListener('abort', () => {\n messageChannel.port1.close();\n messageChannel.port2.close();\n });\n\n this.postMessage(data, { ..._options, transfer: [messageChannel.port2].concat(transfer) });\n return returnValue;\n }\n\n // Forwarding\n\n relay({ to: targetPort, from: sourcePort, types = '*', channel = null, resolveMessage = null, bidirectional = false } = {}) {\n if (targetPort && sourcePort) {\n throw new Error('Only one of \"to\" and \"from\" may be specified');\n }\n\n if (sourcePort) {\n targetPort = this;\n } else sourcePort = this;\n\n if (targetPort === sourcePort) {\n throw new Error('Source and target ports cannot be the same');\n }\n\n if (!(sourcePort instanceof MessagePortPlus) || !(targetPort instanceof MessagePortPlus)) {\n throw new Error('Both source and target ports must be instance of MessagePortPlus.');\n }\n\n if (typeof types !== 'function' && !(types = [].concat(types)).length) {\n throw new Error('Event types must be specified.');\n }\n\n if (typeof channel === 'string') {\n channel = { from: channel };\n } else if (_isObject(channel)) {\n if (Object.keys(channel).filter((k) => !['from', 'to'].includes(k)).length) {\n throw new Error('Channel must be a string or an object of \"from\"/\"to\" members');\n }\n } else if (channel) {\n throw new Error('Invalid channel parameter');\n }\n\n const downstreamRegistry = getDownstreamRegistry.call(sourcePort);\n const registration = { targetPort, types, channel, resolveMessage };\n downstreamRegistry.add(registration);\n\n let cleanup2;\n if (bidirectional) {\n cleanup2 = targetPort.relay(\n { to: sourcePort, types, channel: channel && { to: channel.from, from: channel.to }, resolveMessage, bidirectional: false }\n );\n }\n\n return () => {\n downstreamRegistry.delete(registration);\n cleanup2?.();\n };\n }\n\n channel(channelSpec, resolveMessage = null, { handshake = 0, postAwaitsOpen = false } = {}) {\n const channel = new MessageChannel;\n\n MessagePortPlus.upgradeInPlace(channel.port1, { handshake, postAwaitsOpen });\n MessagePortPlus.upgradeInPlace(channel.port2, { handshake, postAwaitsOpen });\n\n const garbageCollection = getGarbageCollection.call(this);\n garbageCollection.add(this.relay({ channel: channelSpec, to: channel.port2, bidirectional: true, resolveMessage }));\n\n channel.port2.start();\n this.readyStateChange('close').then(() => {\n channel.port2.close();\n });\n\n return channel.port1;\n }\n\n projectMutations({ from, to, ...options }) {\n if (!from || !to\n || typeof from === 'string' && typeof to === 'string'\n || _isTypeObject(from) && _isTypeObject(to)) {\n throw new Error('Invalid \"from\"/\"to\" parameters');\n }\n if (typeof from === 'string') {\n if (!_isTypeObject(to)) throw new Error('Invalid \"to\" parameter. Object/array expected');\n return applyMutations.call(this, to, from, options);\n }\n if (typeof to === 'string') {\n if (!_isTypeObject(from)) throw new Error('Invalid \"from\" parameter. Object/array expected');\n return publishMutations.call(this, from, to, options);\n }\n throw new Error('Invalid \"from\"/\"to\" parameters');\n }\n\n // Lifecycle\n\n get readyState() {\n const readyStateInternals = getReadyStateInternals.call(this);\n return readyStateInternals.close.state ? 'closed'\n : (readyStateInternals.open.state ? 'open' : 'connecting');\n }\n\n readyStateChange(query) {\n if (!['open', 'messaging', 'close'].includes(query)) {\n throw new Error(`Invalid readyState query \"${query}\"`);\n }\n const readyStateInternals = getReadyStateInternals.call(this);\n return readyStateInternals[query].promise;\n }\n\n _autoStart() {\n const portPlusMeta = _meta(this);\n const options = _options(this);\n if (!portPlusMeta.get('internal_call')\n && options.handshake === 1) {\n this.start();\n }\n }\n\n start() {\n const readyStateInternals = getReadyStateInternals.call(this);\n if (readyStateInternals.open.state) return;\n\n const portPlusMeta = _meta(this);\n const options = _options(this);\n\n const readyStateOpen = (nowOpen) => {\n if (nowOpen) {\n readyStateInternals.open.state = true;\n readyStateInternals.open.resolve(this);\n }\n const handshakeChannel = portPlusMeta.get('handshake_channel');\n setTimeout(() => {\n handshakeChannel?.port1.close();\n handshakeChannel?.port2.close();\n portPlusMeta.delete('handshake_channel');\n }, 100);\n };\n\n // A peer ping triggered us to open\n if (portPlusMeta.get('remote.open.called')) {\n readyStateOpen(true);\n return;\n }\n\n // Start was explicitly called\n if (portPlusMeta.get('start.called')) return;\n portPlusMeta.set('start.called', true);\n\n this._start\n ? this._start()\n : super.start?.();\n\n // No handshake?\n if (options.handshake === 0) {\n readyStateOpen(true);\n return;\n }\n\n const handshakeChannel = new MessageChannel;\n portPlusMeta.set('handshake_channel', handshakeChannel);\n\n handshakeChannel.port1.onmessage = (e) => {\n if (this instanceof BroadcastChannel\n && options.clientServerMode === 'server'\n && typeof e.data?.id === 'string') {\n // Register clients that replied\n portPlusMeta.get('clients').add(e.data.id);\n }\n if (typeof e.data?.isOpen) {\n // This peer is ready to start messaging\n readyStateOpen(true);\n } else readyStateOpen(false);\n };\n\n const { wqOptions } = preProcessPostMessage.call(this);\n const id = options.clientServerMode === 'server' ? 'server'\n : (options.clientServerMode === 'client' ? portPlusMeta.get('client_id') : null);\n const pingData = { ['.wq']: wqOptions, ping: 'connect', id };\n\n this._postMessage\n ? this._postMessage(pingData, { transfer: [handshakeChannel.port2] })\n : super.postMessage(pingData, { transfer: [handshakeChannel.port2] });\n }\n\n close(...args) {\n const readyStateInternals = getReadyStateInternals.call(this);\n\n if (readyStateInternals.close.state) return;\n readyStateInternals.close.state = true;\n\n const portPlusMeta = _meta(this);\n const options = _options(this);\n\n if (options.handshake > 0\n && !portPlusMeta.get('remote.close.called')\n && (this instanceof BroadcastChannel || this instanceof MessagePort)) {\n\n const { wqOptions } = preProcessPostMessage.call(this);\n const id = options.clientServerMode === 'server' ? 'server'\n : (options.clientServerMode === 'client' ? portPlusMeta.get('client_id') : null);\n const pingData = { ['.wq']: wqOptions, ping: 'disconnect', id };\n\n this._postMessage\n ? this._postMessage(pingData)\n : super.postMessage(pingData);\n }\n\n // This should come before event:\n // Nodejs natively sends a close event to other port (port2) for MessagePort\n // this ensures:\n // port2.ping() -> port2.close() -> port2.customCloseEvent()\n // -> port1.customCloseEvent()\n this._close\n ? this._close(...args)\n : super.close(...args);\n\n readyStateInternals.close.resolve(this);\n\n garbageCollect.call(this);\n }\n };\n}\n\nexport function MessagePortPlusMockPortsMixin(superClass) {\n return class extends MessagePortPlusMixin(superClass) {\n\n static _hydrateMessage(portPlus, event) {\n // But only one with ['.wq'].numPorts & ['.wq'].eventID is valid for port hydration\n if (typeof event.data?.['.wq']?.numPorts !== 'number' || typeof event.data['.wq'].eventID !== 'string') {\n return event;\n }\n\n const garbageCollection = getGarbageCollection.call(portPlus);\n const numPorts = event.data['.wq'].numPorts;\n Object.defineProperty(event, 'ports', { value: [], configurable: true });\n\n for (let i = 0; i < numPorts; i++) {\n const port = portPlus.channel(`${event.data['.wq'].eventID}:${i}`);\n event.ports.push(port);\n }\n\n return event;\n }\n\n _postMessage(payload, portOptions = {}) {\n const { transfer = [], ..._portOptions } = portOptions;\n\n if (typeof payload?.['.wq']?.eventID === 'string') {\n const garbageCollection = getGarbageCollection.call(this);\n\n const messagePorts = transfer.filter((t) => t instanceof MessagePort);\n const numPorts = messagePorts.length;\n\n for (let i = 0; i < numPorts; i++) {\n MessagePortPlus.upgradeInPlace(messagePorts[i]);\n\n garbageCollection.add(this.relay({ channel: `${payload['.wq'].eventID}:${i}`, to: messagePorts[i], bidirectional: true }));\n\n messagePorts[i].start();\n messagePorts[i].readyStateChange('close').then(() => {\n // Send a disconnect ping to port2\n const { wqOptions } = preProcessPostMessage.call(this);\n const pingData = { ['.wq']: wqOptions, ping: 'disconnect' };\n this.postMessage(pingData, { type: `${payload['.wq'].eventID}:${i}:message` });\n });\n }\n\n payload['.wq'].numPorts = numPorts; // IMPORTANT: numPorts must be set before ports are added\n }\n\n return this.__postMessage(payload, _portOptions);\n }\n };\n}\n\nexport function propagateEvent(event) {\n if (event.propagationStopped) return;\n const portMeta = _meta(this);\n\n if (portMeta.get('parentNode') instanceof EventTarget && (\n event.bubbles\n || portMeta.get('parentNode')?.findPort?.((port) => port === this) && event instanceof MessageEventPlus)\n ) {\n portMeta.get('parentNode').dispatchEvent(event);\n // \"parentNode\" is typically a StarPort feature\n // in case \"this\" is a RelayPort\n }\n\n const downstreamRegistry = getDownstreamRegistry.call(this);\n if (!downstreamRegistry.size) return;\n\n if (event instanceof MessageEventPlus) {\n const { type, eventID, data, live, bubbles, ports } = event;\n\n const called = new WeakSet;\n for (const { targetPort, types, channel, resolveMessage } of downstreamRegistry) {\n if (called.has(targetPort)) continue;\n\n let $type = type;\n if (channel.from) {\n [, $type] = (new RegExp(`^${channel.from.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')}:([^:]+)$`)).exec(type) || [];\n if (!$type) continue;\n }\n\n const matches = typeof types === 'function'\n ? types($type, this, targetPort, channel)\n : [].concat(types).find((t) => {\n return t === $type || t === '*';\n });\n\n if (!matches) continue;\n called.add(targetPort);\n\n targetPort.postMessage(resolveMessage ? resolveMessage(data, this, targetPort, channel) : data, {\n transfer: ports,\n type: channel.to ? `${channel.to}:${$type}` : $type,\n eventID,\n bubbles,\n live,\n forwarded: true,\n relayedFrom: this\n // \"relayedFrom\" is typically a RelayPort feature\n // in case targetPort is a RelayPort\n });\n }\n }\n}\n\nexport function getGarbageCollection() {\n const portPlusMeta = _meta(this);\n if (!portPlusMeta.has('garbage_collection')) {\n portPlusMeta.set('garbage_collection', new Set);\n }\n return portPlusMeta.get('garbage_collection');\n}\n\nexport function getDownstreamRegistry() {\n const portPlusMeta = _meta(this);\n if (!portPlusMeta.has('downstream_registry')) {\n portPlusMeta.set('downstream_registry', new Set);\n }\n return portPlusMeta.get('downstream_registry');\n}\n\nexport function getReadyStateInternals() {\n const portPlusMeta = _meta(this);\n if (!portPlusMeta.has('readystate_registry')) {\n const $ref = (o) => {\n o.promise = new Promise((res, rej) => (o.resolve = res, o.reject = rej));\n return o;\n };\n portPlusMeta.set('readystate_registry', {\n open: $ref({}),\n messaging: $ref({}),\n close: $ref({}),\n });\n }\n return portPlusMeta.get('readystate_registry');\n}\n\nexport function garbageCollect() {\n const portPlusMeta = _meta(this);\n\n for (const dispose of portPlusMeta.get('garbage_collection') || []) {\n if (dispose instanceof AbortController) {\n dispose.abort();\n } else if (typeof dispose === 'function') dispose();\n }\n portPlusMeta.get('garbage_collection')?.clear();\n portPlusMeta.get('downstream_registry')?.clear();\n}\n\nexport function preProcessPostMessage(message = undefined, transferOrOptions = {}) {\n if (Array.isArray(transferOrOptions)) {\n transferOrOptions = { transfer: transferOrOptions };\n } else if (!transferOrOptions\n || typeof transferOrOptions !== 'object') {\n throw new TypeError('transferOrOptions must be an array or an object');\n }\n\n let {\n type = 'message',\n eventID = null,\n live = false,\n observing = false,\n bubbles = false,\n forwarded = false,\n relayedFrom = null,\n signal = undefined,\n withArrayMethodDescriptors = false,\n honourDoneMutationFlags = false,\n ...portOptions\n } = transferOrOptions;\n\n if (!eventID) eventID = `${type}-${(0 | Math.random() * 9e6).toString(36)}`;\n\n if (!observing && !forwarded && _isTypeObject(message) && live && !type?.endsWith('.mutate')) {\n publishMutations.call(this, message, eventID, { signal: signal || undefined/* NO NULLS */, withArrayMethodDescriptors, honourDoneMutationFlags });\n observing = true;\n }\n\n return {\n portOptions,\n wqOptions: {\n type,\n eventID,\n live,\n observing,\n honourDoneMutationFlags,\n bubbles,\n forwarded,\n relayedFrom\n }\n };\n}\n\nexport function publishMutations(message, eventID, { signal, withArrayMethodDescriptors = true, honourDoneMutationFlags = false } = {}) {\n if (!_isTypeObject(message)) throw new TypeError('data must be a plain object and not a stream');\n if (typeof eventID !== 'string') throw new TypeError('eventID must be a non-empty string');\n\n const mutationHandler = (mutations) => {\n let mutationsDone;\n\n if (withArrayMethodDescriptors\n && Array.isArray(mutations[0].target)\n && !mutations[0].argumentsList\n && !['set', 'defineProperty', 'deleteProperty'].includes(mutations[0].operation)) return;\n\n this.postMessage(\n mutations.map((m) => {\n mutationsDone = !mutationsDone\n && honourDoneMutationFlags\n && m.detail?.done;\n return { ...m, target: undefined };\n }),\n { type: `${eventID}.mutate` }\n );\n\n if (mutationsDone) dispose.abort();\n };\n\n\n const dispose = Observer.observe(message, Observer.subtree(), mutationHandler, { signal: signal || undefined/* NO NULLS */, withArrayMethodDescriptors });\n const garbageCollection = getGarbageCollection.call(this);\n garbageCollection.add(dispose);\n\n return dispose;\n}\n\nexport function applyMutations(message, eventID, { signal, honourDoneMutationFlags = false } = {}) {\n if (!_isTypeObject(message)) throw new TypeError('data must be a plain object and not a stream');\n if (typeof eventID !== 'string') throw new TypeError('eventID must be a non-empty string');\n\n const messageHandler = (e) => {\n if (!e.data?.length) return;\n\n let mutationsDone;\n\n Observer.batch(message, () => {\n for (const mutation of e.data) {\n mutationsDone = !mutationsDone\n && honourDoneMutationFlags\n && mutation.detail?.done;\n\n if (mutation.argumentsList) {\n const target = !mutation.path.length ? message : Observer.get(message, Observer.path(...mutation.path));\n Observer.proxy(target)[mutation.operation](...mutation.argumentsList);\n continue;\n }\n\n if (mutation.key !== 'length'\n || ['set', 'defineProperty', 'deleteProperty'].includes(mutation.operation)) {\n const target = mutation.path.length === 1 ? message : Observer.get(message, Observer.path(...mutation.path.slice(0, -1)));\n if (mutation.type === 'delete') {\n Observer.deleteProperty(target, mutation.key);\n } else {\n Observer.set(target, mutation.key, mutation.value);\n }\n }\n }\n });\n\n if (mutationsDone) cleanup();\n };\n\n this.addEventListener(`${eventID}.mutate`, messageHandler, { signal: signal || undefined/* NO NULLS */ });\n const cleanup = () => this.removeEventListener(`${eventID}.mutate`, messageHandler);\n\n const garbageCollection = getGarbageCollection.call(this);\n garbageCollection.add(cleanup);\n\n return cleanup;\n}", "import {\n _meta,\n MessagePortPlusMockPortsMixin,\n} from './MessagePortPlus.js';\n\nexport class BroadcastChannelPlus extends MessagePortPlusMockPortsMixin(BroadcastChannel) {\n constructor(name, { handshake = 0, postAwaitsOpen = false, clientServerMode = null, autoClose = false } = {}) {\n super(name);\n\n const portPlusMeta = _meta(this);\n\n if (typeof handshake !== 'number') {\n throw new Error('handshake must be a number');\n }\n if (handshake < 0 || handshake > 2) {\n throw new Error('handshake must be between 0 and 2');\n }\n\n if (clientServerMode\n && !['server', 'client'].includes(clientServerMode)) {\n throw new Error('clientServerMode must be \"server\" or \"client\"');\n }\n\n portPlusMeta.set('options', { handshake, postAwaitsOpen, clientServerMode, autoClose });\n // Must come before upgradeEvents()\n\n this.constructor/* IMPORTANT */.upgradeEvents(this);\n\n if (handshake === 0) this.start();\n }\n\n __postMessage(payload, portOptions) {\n BroadcastChannel.prototype.postMessage.call(this, payload);\n }\n}\n", "import { _isObject, _isTypeObject } from '@webqit/util/js/index.js';\nimport { Observer, ListenerRegistry, Descriptor } from '@webqit/observer';\nimport { BroadcastChannelPlus, WebSocketPort, MessagePortPlus } from '@webqit/port-plus';\nimport { isTypeStream, _meta, _wq } from './messageParserMixin.js';\nimport { ResponsePlus } from './ResponsePlus.js';\n\nexport class LiveResponse extends EventTarget {\n\n get [Symbol.toStringTag]() {\n return 'LiveResponse';\n }\n\n static [Symbol.hasInstance](instance) {\n return instance instanceof EventTarget\n && instance?.[Symbol.toStringTag] === 'LiveResponse'\n && typeof instance.replaceWith === 'function'\n && typeof instance.now === 'function';\n }\n\n static get xHeaderName() {\n return 'X-Message-Port';\n }\n\n static test(unknown) {\n if (unknown instanceof LiveResponse) {\n return 'LiveResponse';\n }\n if (unknown instanceof LiveProgramHandleX) {\n return 'LiveProgramHandle';\n }\n if (unknown instanceof Response) {\n return 'Response';\n }\n if (isGenerator(unknown)) {\n return 'Generator';\n }\n return 'Default';\n }\n\n static hasPort(respone) {\n if (respone instanceof LiveResponse && respone.#port) {\n return true;\n }\n const responseMeta = _meta(respone);\n return !!responseMeta.get('port')\n || !!respone.headers?.get?.(this.xHeaderName)?.trim();\n }\n\n static getPort(respone, { handshake = 1 } = {}) {\n if (respone instanceof LiveResponse && respone.#port) {\n return respone.#port;\n }\n \n if (!(respone instanceof Response\n || respone instanceof LiveResponse)) {\n return;\n }\n\n const responseMeta = _meta(respone);\n\n if (!responseMeta.has('port')) {\n const value = respone.headers.get(this.xHeaderName)?.trim();\n if (!value) return;\n\n const [, scheme, portID] = /^(socket|channel):\\/\\/(.*)$/.exec(value) || [];\n if (!scheme || !portID) {\n throw new Error(`Unknown port messaging protocol: ${value}`);\n }\n\n const port = scheme === 'channel'\n ? new BroadcastChannelPlus(portID, { handshake, postAwaitsOpen: true, clientServerMode: 'client' })\n : new WebSocketPort(portID, { handshake, postAwaitsOpen: true });\n\n responseMeta.set('port', port);\n }\n\n return responseMeta.get('port');\n }\n\n static attachPort(respone, port) {\n if (port && !(port instanceof MessagePortPlus)) {\n throw new Error('Client must be a MessagePortPlus interface');\n }\n if (respone instanceof LiveResponse) {\n respone.#port = port;\n return;\n }\n const responseMeta = _meta(respone);\n responseMeta.set('port', port);\n }\n\n static from(data, ...args) {\n if (data instanceof LiveResponse) {\n return data.clone(...args);\n }\n return new this(data, ...args);\n }\n\n /* INSTANCE */\n\n #listenersRegistry;\n #readyStates;\n\n #abortController = new AbortController;\n #concurrencyAbortController = new AbortController;\n\n constructor(body, ...args) {\n super();\n this.#listenersRegistry = ListenerRegistry.getInstance(this, true);\n\n const $ref = (o) => {\n o.promise = new Promise((res, rej) => (o.resolve = res, o.reject = rej));\n return o;\n };\n this.#readyStates = {\n live: $ref({}),\n done: $ref({}),\n };\n const readyStates = this.#readyStates;\n (function refresh() {\n readyStates.now = $ref({});\n readyStates.now.refresh = refresh;\n return readyStates.now;\n })();\n\n const frame = this.#readyStates.now;\n this.#replaceWith(frame, body, ...args).catch((e) => {\n frame.reject(e);\n });\n }\n\n /* Level 1 props */\n\n #body = null;\n get body() { return this.#body; }\n\n #concurrent = false;\n get concurrent() { return this.#concurrent; }\n\n get bodyUsed() { return true; }\n\n #headers = new Headers;\n get headers() { return this.#headers; }\n\n #status = 200;\n get status() { return this.#status; }\n\n #statusText = '';\n get statusText() { return this.#statusText; }\n\n /* Level 2 props */\n\n #type = 'basic';\n get type() { return this.#type; }\n\n #redirected = false;\n get redirected() { return this.#redirected; }\n\n #url = null;\n get url() { return this.#url; }\n\n get ok() { return !!(this.#status >= 200 && this.#status < 299); }\n\n /* Level 3 props */\n\n #port;\n get port() { return this.#port; }\n\n // Lifecycle\n\n get readyState() {\n return this.#readyStates.done.state ? 'done'\n : (this.#readyStates.live.state ? 'live' : 'waiting');\n }\n\n readyStateChange(query) {\n if (!['live', 'now', 'done'].includes(query)) {\n throw new Error(`Invalid readyState query \"${query}\"`);\n }\n return this.#readyStates[query].promise;\n }\n\n disconnect(dispose = false) {\n this.#abortController.abort();\n this.#abortController = new AbortController;\n if (dispose) {\n this.#concurrencyAbortController.abort();\n this.#concurrencyAbortController = new AbortController;\n }\n }\n\n #currentFramePromise;\n #extendLifecycle(promise) {\n if (this.#readyStates.done.state) {\n throw new Error('Response already done.');\n }\n this.#currentFramePromise = promise;\n promise.then((value) => {\n if (this.#currentFramePromise === promise) {\n this.#currentFramePromise = null;\n this.#readyStates.done.state = true;\n this.#readyStates.done.resolve(value);\n }\n }).catch((e) => {\n if (this.#currentFramePromise === promise) {\n this.#currentFramePromise = null;\n this.#readyStates.done.state = true;\n this.#readyStates.done.reject(e);\n }\n });\n return promise;\n }\n\n async now() { return this.#readyStates.now.promise; }\n\n async replaceWith(body, ...args) {\n if (this.readyState === 'done') {\n throw new Error('Response already done.');\n }\n this.disconnect(); // Disconnect from existing source if any\n await this.#replaceWith(null, body, ...args);\n }\n\n async #replaceWith(__frame, body, ...args) {\n const frame = __frame || this.#readyStates.now.refresh();\n\n // ----------- Promise input\n\n if (body instanceof Promise) {\n return this.#extendLifecycle(new Promise((resolve, reject) => {\n this.#abortController.signal.addEventListener('abort', () => {\n frame.aborted = true;\n resolve();\n });\n\n body.then(async (resolveData) => {\n await this.#replaceWith(frame, resolveData, ...args);\n resolve();\n }).catch((e) => reject(e));\n }));\n }\n\n // ----------- Formatters\n\n const directReplaceWith = (__frame, responseFrame) => {\n responseFrame = Object.freeze({\n ...responseFrame,\n ok: !!(responseFrame.status >= 200 && responseFrame.status < 299),\n bodyUsed: true,\n });\n\n if (__frame?.aborted) {\n __frame.resolve(responseFrame);\n return;\n }\n\n const frame = __frame || this.#readyStates.now.refresh();\n\n const $body = responseFrame.body;\n\n this.#status = responseFrame.status;\n this.#statusText = responseFrame.statusText;\n\n for (const [name] of [/*IMPORTANT*/...this.#headers.entries()]) { // for some reason, some entries not produced when not spread\n this.#headers.delete(name);\n }\n for (const [name, value] of responseFrame.headers.entries()) {\n this.#headers.append(name, value);\n }\n\n this.#type = responseFrame.type;\n this.#redirected = responseFrame.redirected;\n this.#url = responseFrame.url;\n\n const bodyOld = this.#body;\n this.#body = $body;\n this.#concurrent = !!responseFrame.concurrent;\n\n this.#port = responseFrame.port;\n\n if (!this.#concurrent) {\n this.#concurrencyAbortController.abort();\n this.#concurrencyAbortController = new AbortController;\n }\n\n const descriptor = new Descriptor(this, {\n type: 'set',\n key: 'body',\n value: $body,\n oldValue: bodyOld,\n isUpdate: true,\n related: [],\n operation: 'set',\n detail: null,\n });\n\n // Must come first so that observers below here see this state\n\n this.#readyStates.live.state = true;\n this.#readyStates.live.resolve(this);\n\n // May trigger \"done\" ready state\n frame.resolve(responseFrame);\n\n // Must come after all property assignments above because it fires events\n this.#listenersRegistry.emit([descriptor]);\n this.dispatchEvent(new ReplaceEvent(responseFrame));\n };\n\n const wrapReplaceWith = (frame, body, options) => {\n directReplaceWith(frame, {\n body,\n status: 200,\n statusText: '',\n ...options,\n headers: options.headers instanceof Headers ? options.headers : new Headers(options.headers || {}),\n type: 'basic',\n redirected: false,\n url: null\n });\n };\n\n // ----------- \"Response\" handler\n\n const execReplaceWithResponse = async (frame, response, options) => {\n let body, port, jsonSuccess = true;\n if (response instanceof Response) {\n if (response.bodyUsed) {\n throw new Error('Response body already used');\n }\n try {\n body = await ResponsePlus.prototype.any.call(response, { to: 'json' });\n } catch (e) {\n jsonSuccess = false;\n body = await ResponsePlus.prototype.any.call(response);\n }\n port = this.constructor.getPort(response, { handshake: 2 });\n } else {\n body = (await response.readyStateChange('live')).body;\n port = response.port;\n }\n directReplaceWith(frame, {\n body,\n status: response.status,\n statusText: response.statusText,\n headers: response.headers,\n concurrent: response.concurrent, // for response === LiveResponse\n ...options,\n port,\n type: response.type,\n redirected: response.redirected,\n url: response.url,\n });\n\n if (response instanceof LiveResponse) {\n const replaceHandler = () => {\n wrapReplaceWith(null, response.body, response);\n };\n response.addEventListener('replace', replaceHandler, { signal: this.#abortController.signal });\n await response.readyStateChange('done');\n response.removeEventListener('replace', replaceHandler);\n return response;\n }\n\n if (port) {\n // Bind to upstream mutations\n if (jsonSuccess && body !== null) {\n port.projectMutations({\n from: 'initial_response',\n to: body,\n signal: this.#concurrencyAbortController.signal\n });\n }\n\n // Bind to replacements\n const returnValue = new Promise((resolve) => {\n const replaceHandler = (e) => {\n const { body, ...options } = e.data;\n wrapReplaceWith(null, body, { ...options });\n };\n port.addEventListener('response.replace', replaceHandler, { signal: this.#abortController.signal });\n port.addEventListener('response.done', () => {\n port.removeEventListener('response.replace', replaceHandler);\n resolve(this);\n }, { once: true });\n port.readyStateChange('close').then(resolve);\n });\n\n // Must come after having listened to events\n port.start();\n\n return returnValue;\n }\n };\n\n // ----------- \"Generator\" handler\n\n const execReplaceWithGenerator = async (frame, gen, options) => {\n const firstFrame = await gen.next();\n const firstValue = await firstFrame.value;\n\n await this.#replaceWith(frame, firstValue, { done: firstFrame.done, ...options });\n // this is the first time options has a chance to be applied\n\n let generatorFrame = firstFrame;\n let value = firstValue;\n\n while (!generatorFrame.done && !this.#abortController.signal.aborted) {\n generatorFrame = await gen.next();\n value = await generatorFrame.value;\n if (!this.#abortController.signal.aborted) {\n await this.#replaceWith(null, value, { concurrent: options.concurrent, done: options.done === false ? false : generatorFrame.done });\n // top-level false need to be respected: means keep instance alive even when done\n }\n }\n };\n\n // ----------- \"LiveProgramHandle\" handler\n\n const execReplaceWithLiveProgramHandle = async (frame, liveProgramHandle, options) => {\n await this.#replaceWith(frame, liveProgramHandle.value, options);\n // this is the first time options has a chance to be applied\n\n Observer.observe(\n liveProgramHandle,\n 'value',\n (e) => this.#replaceWith(null, e.value, { concurrent: options.concurrent, done: false }),\n // we're never done unless explicitly aborted\n { signal: this.#abortController.signal }\n );\n\n return new Promise(() => { });\n };\n\n // ----------- Procesing time\n\n const frameClosure = typeof args[0]/* !ORDER 1 */ === 'function' ? args.shift() : null;\n const frameOptions = _isObject(args[0]/* !ORDER 2 */) ? { ...args.shift() } : {};\n\n if ('status' in frameOptions) {\n frameOptions.status = parseInt(frameOptions.status);\n if (frameOptions.status < 200 || frameOptions.status > 599) {\n throw new Error(`The status provided (${frameOptions.status}) is outside the range [200, 599].`);\n }\n }\n if ('statusText' in frameOptions) {\n frameOptions.statusText = String(frameOptions.statusText);\n }\n if (frameOptions.headers && !(frameOptions.headers instanceof Headers)) {\n frameOptions.headers = new Headers(frameOptions.headers);\n }\n if ('concurrent' in frameOptions) {\n frameOptions.concurrent = Boolean(frameOptions.concurrent);\n }\n\n // ----------- Dispatch time\n\n if (body instanceof Response\n || body instanceof LiveResponse) {\n if (frameClosure) {\n throw new Error(`frameClosure is not supported for responses.`);\n }\n frame.donePromise = execReplaceWithResponse(frame, body, frameOptions);\n } else if (isGenerator(body)) {\n if (frameClosure) {\n throw new Error(`frameClosure is not supported for generators.`);\n }\n frame.donePromise = execReplaceWithGenerator(frame, body, frameOptions);\n } else if (body instanceof LiveProgramHandleX) {\n if (frameClosure) {\n throw new Error(`frameClosure is not supported for live program handles.`);\n }\n frame.donePromise = execReplaceWithLiveProgramHandle(frame, body, frameOptions);\n } else {\n frame.donePromise = Promise.resolve(wrapReplaceWith(frame, body, frameOptions));\n if (frameClosure) {\n const reactiveProxy = _isTypeObject(body) && !isTypeStream(body)\n ? Observer.proxy(body, { chainable: true, membrane: body })\n : body;\n frame.donePromise = Promise.resolve(frameClosure.call(this, reactiveProxy, this.#concurrencyAbortController.signal));\n }\n }\n\n // Lifecycle time\n\n this.#extendLifecycle(frameOptions.done === false ? new Promise(() => { }) : frame.donePromise);\n\n return await new Promise((resolve, reject) => {\n this.#abortController.signal.addEventListener('abort', () => resolve(false));\n frame.donePromise.then(() => resolve(true)).catch(reject);\n });\n }\n\n // ----------- Conversions\n\n toResponse({ port: clientPort, signal: abortSignal } = {}) {\n if (clientPort && !(clientPort instanceof MessagePortPlus)) {\n throw new Error('Client must be a MessagePortPlus interface');\n }\n\n const response = ResponsePlus.from(this.body, {\n status: this.#status,\n statusText: this.#statusText,\n headers: this.#headers,\n });\n\n const responseMeta = _meta(this);\n _wq(response).set('meta', new Map(responseMeta));\n\n if (!clientPort) return response;\n\n if (_isTypeObject(this.#body) && !isTypeStream(this.#body)) {\n clientPort.projectMutations({\n from: this.#body,\n to: 'initial_response',\n signal: AbortSignal.any([this.#concurrencyAbortController.signal].concat(abortSignal || []))/* stop observing mutations on body when we abort */\n });\n }\n\n const replaceHandler = () => {\n const headers = Object.fromEntries([...this.headers.entries()]);\n\n if (headers?.['set-cookie']) {\n delete headers['set-cookie'];\n console.warn('Warning: The \"set-cookie\" header is not supported for security reasons and has been removed from the response.');\n }\n\n clientPort.postMessage({\n body: this.#body,\n status: this.#status,\n statusText: this.#statusText,\n headers,\n type: this.type,\n url: this.url,\n redirect: this.redirect,\n concurrent: this.#concurrent,\n }, { type: 'response.replace', live: true/*gracefully ignored if not an object*/, signal: AbortSignal.any([this.#concurrencyAbortController.signal].concat(abortSignal || []))/* stop observing mutations on body a new body takes effect */ });\n };\n\n this.addEventListener('replace', replaceHandler, { signal: abortSignal || undefined/* NO NULLS stop listening when we abort */ });\n this.readyStateChange('done').then(() => {\n clientPort.postMessage(null, { type: 'response.done' });\n });\n\n return response;\n }\n\n async * toGenerator({ signal: abortSignal } = {}) {\n do {\n yield this.body;\n } while (await new Promise((resolve) => {\n this.addEventListener('replace', () => resolve(true), { once: true, signal: abortSignal || undefined/* NO NULLS */ });\n this.readyStateChange('done').then(() => resolve(false));\n }));\n }\n\n toLiveProgramHandle({ signal: abortSignal } = {}) {\n const handle = new LiveProgramHandleX;\n\n const replaceHandler = () => Observer.defineProperty(handle, 'value', { value: this.body, enumerable: false, configurable: true });\n this.addEventListener('replace', replaceHandler, { signal: abortSignal || undefined/* NO NULLS */ });\n replaceHandler();\n\n return handle;\n }\n\n clone(init = {}) {\n const clone = new this.constructor();\n\n const responseMeta = _meta(this);\n _wq(clone).set('meta', new Map(responseMeta));\n\n clone.replaceWith(this, init);\n return clone;\n }\n}\n\nexport const isGenerator = (obj) => {\n return typeof obj?.next === 'function' &&\n typeof obj?.throw === 'function' &&\n typeof obj?.return === 'function';\n};\n\nexport class ReplaceEvent extends Event {\n\n [Symbol.toStringTag] = 'ReplaceEvent';\n\n static [Symbol.hasInstance](instance) {\n return instance instanceof Event\n && instance[Symbol.toStringTag] === 'ReplaceEvent';\n }\n\n #data;\n get data() { return this.#data; }\n\n constructor(responseFrame) {\n super('replace');\n this.#data = responseFrame;\n }\n}\n\nexport class LiveProgramHandleX {\n [Symbol.toStringTag] = 'LiveProgramHandle';\n\n static [Symbol.hasInstance](instance) {\n return instance?.[Symbol.toStringTag] === 'LiveProgramHandle';\n }\n\n abort() { }\n}\n", "import * as FetchPlus from './index.js';\n\nif (!globalThis.webqit) globalThis.webqit = {}\nObject.assign(globalThis.webqit, FetchPlus);"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["Oe", "e", "t", "D", "c", "l", "a", "f", "s", "i", "Re", "Ee", "o", "F", "x", "u", "h", "p", "d", "g", "y", "A", "xe", "N", "H", "$", "M", "P", "X", "Z", "m", "S", "v", "k", "E", "be", "B", "q", "W", "T", "ee", "te", "ke", "_", "U", "re", "ne", "se", "ie", "K", "j", "ae", "oe", "ce", "le", "z", "G", "fe", "w", "he", "ue", "de", "pe", "ge", "me", "Se", "R", "I", "L", "Te", "Ae", "Pe", "b", "J", "Q", "C", "V", "O", "Y", "init_urlpattern", "__esmMin", "r", "n", "#i", "#n", "#t", "#e", "#l", "#o", "#d", "#p", "#g", "#b", "#f", "#r", "#h", "#u", "#A", "#T", "#P", "#C", "#E", "#S", "#O", "#y", "#w", "#k", "#c", "#R", "urlpattern_polyfill_exports", "__export", "Y", "init_urlpattern_polyfill", "__esmMin", "init_urlpattern", "src_exports", "__export", "FormDataPlus", "HeadersPlus", "LiveResponse", "src_default", "RequestPlus", "ResponsePlus", "fetchPlus", "isObject_default", "val", "getType_default", "val", "isArray_default", "val", "isBoolean_default", "val", "isTypeFunction_default", "val", "isNull_default", "val", "isUndefined_default", "val", "isTypeObject_default", "val", "isTypeFunction_default", "isEmpty_default", "val", "isNull_default", "isUndefined_default", "isTypeObject_default", "isFunction_default", "val", "isTypeFunction_default", "isNumber_default", "val", "isNumeric_default", "val", "isNumber_default", "isPlainArray_default", "obj", "isArray_default", "isPlainObject_default", "obj", "isObject_default", "isString_default", "val", "isTypeArray_default", "val", "isString_default", "isUndefined_default", "wq", "obj", "namespaces", "WQInternals", "_ns", "_wq", "after_default", "subject", "search", "afterLast", "pos", "before_default", "subject", "search", "beforeLast", "pos", "URLPatternPlus", "#inputUrl", "init", "baseURL", "hasUnescapedMeta", "str", "metaChars", "esc", "ch", "META", "url", "args", "result", "named", "component", "vars", "_", "token", "main_exports", "__export", "any", "apply", "batch", "construct", "defineProperties", "defineProperty", "deleteProperties", "deleteProperty", "get", "getOwnPropertyDescriptor", "getOwnPropertyDescriptors", "getPrototypeOf", "has", "intercept", "isExtensible", "map", "observe", "ownKeys", "path", "preventExtensions", "reduce", "set", "setPrototypeOf", "subtree", "from_default", "val", "castObject", "isArray_default", "isObject_default", "isEmpty_default", "isTypeArray_default", "_wq", "target", "args", "wq", "_await", "value", "callback", "env", "Registration", "registry", "dfn", "ListenerRegistration", "Registration", "env", "events", "matches", "filter", "from_default", "event", "$ret", "_await", "ret", "recursions", "Registry", "target", "registration", "_entry", "type", "createIfNotExists", "namespace", "isTypeObject_default", "getType_default", "ImplementationClass", "_wq", "Descriptor", "target", "dfn", "instance", "ListenerRegistry", "Registry", "target", "createIfNotExists", "namespace", "ImplementationClass", "filter", "emit", "params", "ListenerRegistration", "events", "eventsArePropertyDescriptors", "eventIsArrayMethodDescriptor", "arrayMethodName", "listeners", "snapshots", "listenersLength", "listenersAskingEventsWithPropertyDescriptors", "listenersAskingArrayMethodDescriptors", "listener", "events_with_PropertyDescriptors_with_ArrayMethodDescriptors", "events_with_PropertyDescriptors_without_ArrayMethodDescriptors", "events_without_PropertyDescriptors_with_ArrayMethodDescriptors", "events_without_PropertyDescriptors_without_ArrayMethodDescriptors", "snapshot", "event", "$event", "type", "details", "Descriptor", "callback", "returnValue", "_await", "batch", "TrapsRegistration", "Registration", "descriptor", "next", "recieved", "args", "TrapsRegistry", "Registry", "target", "createIfNotExists", "namespace", "ImplementationClass", "dfn", "TrapsRegistration", "descriptor", "defaultHandler", "$this", "next", "index", "_args", "registration", "args", "actors_exports", "__export", "accessorize", "proxy", "unaccessorize", "unproxy", "symWQOriginal", "accessorize", "target", "props", "params", "resolveTarget", "accessorizedProps", "_wq", "getDescriptorDeep", "prop", "descriptor", "proto", "accessorizeProp", "currentDescriptorRecord", "withPropertyDescriptors", "value", "currentDescriptor", "accessorization", "enumerable", "set", "get", "statuses", "unaccessorize", "unaccessorizeProp", "proxy", "extendCallback", "originalTarget", "traps", "thisArgument", "argumentsList", "apply", "newTarget", "construct", "propertyKey", "attributes", "defineProperty", "deleteProperty", "receiver", "$params", "returnValue", "isTypeObject_default", "getOwnPropertyDescriptor", "getPrototypeOf", "has", "isExtensible", "ownKeys", "preventExtensions", "prototype", "setPrototypeOf", "$traps", "$proxy", "unproxy", "Path", "instance", "path", "segments", "Subtree", "subtree", "any", "reduce", "target", "receiver", "final", "x", "params", "_isSubtree", "eat", "$params", "$isSubtree", "isSubtree", "segment", "isLastSegment", "Descriptor", "result", "args", "addTrail", "desc", "flags", "advance", "$value", "resolveObj", "_await", "isPropsList", "entry", "observe", "prop", "originalTarget", "isFunction_default", "getType_default", "isTypeObject_default", "get", "emit", "bind", "intercept", "traps", "isObject_default", "TrapsRegistry", "getOwnPropertyDescriptor", "exec", "getOwnPropertyDescriptors", "getPrototypeOf", "isExtensible", "ownKeys", "has", "isLive", "resolveProps", "props", "related", "next", "results", "_props", "_done", "defaultGet", "descriptor", "value", "_next", "accessorizedProps", "_wq", "accessorization", "trapsRegistry", "result_s", "batch", "callback", "ListenerRegistry", "map", "source", "only", "except", "sourceKeys", "k", "filteredKeys", "resolveKey", "i", "doSet", "key", "set", "defineProperty", "mutations", "m", "deleteProperty", "def", "entries", "descriptors", "defaultSet", "status", "isUpdate", "oldValue", "exists", "listenerRegistry", "opr", "defineProperties", "from_default", "defaultDel", "deleteProperties", "construct", "argumentsList", "newTarget", "apply", "thisArgument", "originalThis", "unproxy", "returnValue", "setPrototypeOf", "proto", "preventExtensions", "controller", "env", "childRegistrations", "descriptor_s", "prevRegistration", "registrationNext", "isExisting", "handlerReturnValue", "operation", "payload", "defaultExec", "obj", "assert", "probePropertyDescriptors", "p", "name", "Observer", "main_exports", "actors_exports", "src_default", "URLSearchParamsPlus", "_URLSearchParamsPlus", "#tree", "#compatMode", "#compatModeKeys", "#prettyPrint", "#sorted", "#changeCallback", "init", "compatMode", "prettyPrint", "changeCallback", "tree", "isString_default", "q", "k", "isObject_default", "v", "path", "next", "Observer", "value", "#get", "all", "parts", "key", "parent", "out", "cb", "thisArg", "c", "str", "parseNums", "delim", "i", "val", "entries", "sorted", "only", "keys", "suggested", "allowGetAll", "t", "branch", "appendIfExists", "ctx", "encodeOffsets", "isTypeObject_default", "isNumeric_default", "_", "b", "p", "FormDataPlus", "_FormDataPlus", "formData", "data", "encodeLiterals", "meta", "isDirectlySerializable", "URLSearchParamsPlus", "value", "contextPath", "suggestedKeys", "isJson", "dataType", "decodeLiterals", "json", "name", "isNumeric_default", "before_default", "type", "_value", "_wq", "target", "args", "wq", "_meta", "messageParserMixin", "superClass", "httpMessageInit", "headers", "_headers", "name", "value", "key", "body", "type", "dataType", "isTypeObject_default", "_body", "isDirectlySerializable", "FormDataPlus", "k", "v", "fd", "to", "memo", "cache", "readAs", "byValue", "x", "clone", "isPlainObject_default", "isPlainArray_default", "result", "contentType", "json", "t", "isNumber_default", "isBoolean_default", "isString_default", "toStringTag", "_toStringTag", "isObject_default", "isTypeReadable", "obj", "isTypeStream", "HeadersPlus", "_HeadersPlus", "headers", "name", "value", "v", "isObject_default", "renderCookieObjToString", "renderCookieInput", "renderContentRangeInput", "renderRangeInput", "renderAcceptInput", "structured", "str", "cookieDefinition", "attrs", "s", "cookieObj", "attrStr", "attrsArr", "after_default", "rangeStr", "range", "totalLength", "offsets", "currentStart", "parseSpec", "spec", "mime", "q", "$value", "b", "splitMime", "$mime", "prev", "entry", "$entry", "i", "attrName", "_attrName", "isTypeObject_default", "rangeArr", "from_default", "n", "ResponsePlus", "_ResponsePlus", "messageParserMixin", "body", "init", "HeadersPlus", "response", "memoize", "$type", "headers", "instance", "cache", "_meta", "typeMap", "clone", "responseMeta", "_wq", "fetchPlus", "url", "options", "response", "ResponsePlus", "RequestPlus", "_RequestPlus", "messageParserMixin", "url", "init", "HeadersPlus", "request", "memoize", "$type", "$$body", "body", "headers", "$$type", "instance", "cache", "_meta", "typeMap", "requestInit", "$init", "prop", "clone", "requestMeta", "_wq", "MessageEventPlus", "#originalTarget", "#eventID", "#data", "#live", "#bubbles", "#forwarded", "#honourDoneMutationFlags", "#ports", "data", "originalTarget", "type", "eventID", "live", "honourDoneMutationFlags", "bubbles", "forwarded", "ports", "port", "MessagePortPlus", "isTypeObject_default", "applyMutations", "#immediatePropagationStopped", "#propagationStopped", "#defaultPrevented", "transferOrOptions", "WebSocketPort", "MessagePortPlusMockPortsMixin", "#ws", "#wsReady", "ws", "handshake", "postAwaitsOpen", "_meta", "resolve", "portPlus", "event", "data", "isObject_default", "payload", "portOptions", "_wq", "target", "args", "wq", "_meta", "_options", "portPlusMethods", "portPlusProps", "MessagePortPlus", "MessagePortPlusMixin", "handshake", "postAwaitsOpen", "options", "instance", "m", "superClass", "port", "proto", "prop", "original", "plus", "portPlus", "rawPortMeta", "portPlusMeta", "garbageCollection", "getGarbageCollection", "readyStateInternals", "getReadyStateInternals", "messageHandler", "e", "MessageEventPlus", "nowOpen", "reply", "p", "close", "message", "wqOptions", "eventPlus", "v", "returnValue", "event", "propagateEvent", "transferOrOptions", "portPlusIgnore", "_relayedFrom", "portOptions", "relayedFrom", "preProcessPostMessage", "WebSocketPort", "post", "type", "handler", "handle", "response", "data", "callback", "isObject_default", "resolve", "messageChannel", "signal", "once", "transfer", "targetPort", "sourcePort", "types", "channel", "resolveMessage", "bidirectional", "k", "downstreamRegistry", "getDownstreamRegistry", "registration", "cleanup2", "channelSpec", "from", "to", "isTypeObject_default", "applyMutations", "publishMutations", "query", "readyStateOpen", "handshakeChannel", "id", "pingData", "garbageCollect", "MessagePortPlusMockPortsMixin", "numPorts", "payload", "_portOptions", "messagePorts", "t", "i", "portMeta", "eventID", "live", "bubbles", "ports", "called", "$type", "$ref", "o", "res", "rej", "dispose", "observing", "forwarded", "withArrayMethodDescriptors", "honourDoneMutationFlags", "mutationHandler", "mutations", "mutationsDone", "Observer", "mutation", "cleanup", "BroadcastChannelPlus", "MessagePortPlusMockPortsMixin", "name", "handshake", "postAwaitsOpen", "clientServerMode", "autoClose", "portPlusMeta", "_meta", "payload", "portOptions", "LiveResponse", "_LiveResponse", "instance", "unknown", "LiveProgramHandleX", "isGenerator", "respone", "#port", "_meta", "handshake", "responseMeta", "value", "scheme", "portID", "port", "BroadcastChannelPlus", "WebSocketPort", "MessagePortPlus", "data", "args", "#listenersRegistry", "#readyStates", "#abortController", "#concurrencyAbortController", "body", "ListenerRegistry", "$ref", "o", "res", "rej", "readyStates", "refresh", "frame", "#replaceWith", "e", "#body", "#concurrent", "#headers", "#status", "#statusText", "#type", "#redirected", "#url", "query", "dispose", "#currentFramePromise", "#extendLifecycle", "promise", "__frame", "resolve", "reject", "resolveData", "directReplaceWith", "responseFrame", "$body", "name", "bodyOld", "descriptor", "Descriptor", "ReplaceEvent", "wrapReplaceWith", "options", "execReplaceWithResponse", "response", "jsonSuccess", "ResponsePlus", "replaceHandler", "returnValue", "execReplaceWithGenerator", "gen", "firstFrame", "firstValue", "generatorFrame", "execReplaceWithLiveProgramHandle", "liveProgramHandle", "Observer", "frameClosure", "frameOptions", "isObject_default", "reactiveProxy", "isTypeObject_default", "isTypeStream", "clientPort", "abortSignal", "_wq", "headers", "handle", "init", "clone", "obj", "#data", "src_exports"]
|
|
4
|
+
"sourcesContent": ["var Pe=Object.defineProperty;var a=(e,t)=>Pe(e,\"name\",{value:t,configurable:!0});var P=class{type=3;name=\"\";prefix=\"\";value=\"\";suffix=\"\";modifier=3;constructor(t,r,n,c,l,f){this.type=t,this.name=r,this.prefix=n,this.value=c,this.suffix=l,this.modifier=f}hasCustomName(){return this.name!==\"\"&&typeof this.name!=\"number\"}};a(P,\"Part\");var Re=/[$_\\p{ID_Start}]/u,Ee=/[$_\\u200C\\u200D\\p{ID_Continue}]/u,v=\".*\";function Oe(e,t){return(t?/^[\\x00-\\xFF]*$/:/^[\\x00-\\x7F]*$/).test(e)}a(Oe,\"isASCII\");function D(e,t=!1){let r=[],n=0;for(;n<e.length;){let c=e[n],l=a(function(f){if(!t)throw new TypeError(f);r.push({type:\"INVALID_CHAR\",index:n,value:e[n++]})},\"ErrorOrInvalid\");if(c===\"*\"){r.push({type:\"ASTERISK\",index:n,value:e[n++]});continue}if(c===\"+\"||c===\"?\"){r.push({type:\"OTHER_MODIFIER\",index:n,value:e[n++]});continue}if(c===\"\\\\\"){r.push({type:\"ESCAPED_CHAR\",index:n++,value:e[n++]});continue}if(c===\"{\"){r.push({type:\"OPEN\",index:n,value:e[n++]});continue}if(c===\"}\"){r.push({type:\"CLOSE\",index:n,value:e[n++]});continue}if(c===\":\"){let f=\"\",s=n+1;for(;s<e.length;){let i=e.substr(s,1);if(s===n+1&&Re.test(i)||s!==n+1&&Ee.test(i)){f+=e[s++];continue}break}if(!f){l(`Missing parameter name at ${n}`);continue}r.push({type:\"NAME\",index:n,value:f}),n=s;continue}if(c===\"(\"){let f=1,s=\"\",i=n+1,o=!1;if(e[i]===\"?\"){l(`Pattern cannot start with \"?\" at ${i}`);continue}for(;i<e.length;){if(!Oe(e[i],!1)){l(`Invalid character '${e[i]}' at ${i}.`),o=!0;break}if(e[i]===\"\\\\\"){s+=e[i++]+e[i++];continue}if(e[i]===\")\"){if(f--,f===0){i++;break}}else if(e[i]===\"(\"&&(f++,e[i+1]!==\"?\")){l(`Capturing groups are not allowed at ${i}`),o=!0;break}s+=e[i++]}if(o)continue;if(f){l(`Unbalanced pattern at ${n}`);continue}if(!s){l(`Missing pattern at ${n}`);continue}r.push({type:\"REGEX\",index:n,value:s}),n=i;continue}r.push({type:\"CHAR\",index:n,value:e[n++]})}return r.push({type:\"END\",index:n,value:\"\"}),r}a(D,\"lexer\");function F(e,t={}){let r=D(e);t.delimiter??=\"/#?\",t.prefixes??=\"./\";let n=`[^${x(t.delimiter)}]+?`,c=[],l=0,f=0,s=\"\",i=new Set,o=a(u=>{if(f<r.length&&r[f].type===u)return r[f++].value},\"tryConsume\"),h=a(()=>o(\"OTHER_MODIFIER\")??o(\"ASTERISK\"),\"tryConsumeModifier\"),p=a(u=>{let d=o(u);if(d!==void 0)return d;let{type:g,index:y}=r[f];throw new TypeError(`Unexpected ${g} at ${y}, expected ${u}`)},\"mustConsume\"),A=a(()=>{let u=\"\",d;for(;d=o(\"CHAR\")??o(\"ESCAPED_CHAR\");)u+=d;return u},\"consumeText\"),xe=a(u=>u,\"DefaultEncodePart\"),N=t.encodePart||xe,H=\"\",$=a(u=>{H+=u},\"appendToPendingFixedValue\"),M=a(()=>{H.length&&(c.push(new P(3,\"\",\"\",N(H),\"\",3)),H=\"\")},\"maybeAddPartFromPendingFixedValue\"),X=a((u,d,g,y,Z)=>{let m=3;switch(Z){case\"?\":m=1;break;case\"*\":m=0;break;case\"+\":m=2;break}if(!d&&!g&&m===3){$(u);return}if(M(),!d&&!g){if(!u)return;c.push(new P(3,\"\",\"\",N(u),\"\",m));return}let S;g?g===\"*\"?S=v:S=g:S=n;let k=2;S===n?(k=1,S=\"\"):S===v&&(k=0,S=\"\");let E;if(d?E=d:g&&(E=l++),i.has(E))throw new TypeError(`Duplicate name '${E}'.`);i.add(E),c.push(new P(k,E,N(u),S,N(y),m))},\"addPart\");for(;f<r.length;){let u=o(\"CHAR\"),d=o(\"NAME\"),g=o(\"REGEX\");if(!d&&!g&&(g=o(\"ASTERISK\")),d||g){let m=u??\"\";t.prefixes.indexOf(m)===-1&&($(m),m=\"\"),M();let S=h();X(m,d,g,\"\",S);continue}let y=u??o(\"ESCAPED_CHAR\");if(y){$(y);continue}if(o(\"OPEN\")){let m=A(),S=o(\"NAME\"),k=o(\"REGEX\");!S&&!k&&(k=o(\"ASTERISK\"));let E=A();p(\"CLOSE\");let be=h();X(m,S,k,E,be);continue}M(),p(\"END\")}return c}a(F,\"parse\");function x(e){return e.replace(/([.+*?^${}()[\\]|/\\\\])/g,\"\\\\$1\")}a(x,\"escapeString\");function B(e){return e&&e.ignoreCase?\"ui\":\"u\"}a(B,\"flags\");function q(e,t,r){return W(F(e,r),t,r)}a(q,\"stringToRegexp\");function T(e){switch(e){case 0:return\"*\";case 1:return\"?\";case 2:return\"+\";case 3:return\"\"}}a(T,\"modifierToString\");function W(e,t,r={}){r.delimiter??=\"/#?\",r.prefixes??=\"./\",r.sensitive??=!1,r.strict??=!1,r.end??=!0,r.start??=!0,r.endsWith=\"\";let n=r.start?\"^\":\"\";for(let s of e){if(s.type===3){s.modifier===3?n+=x(s.value):n+=`(?:${x(s.value)})${T(s.modifier)}`;continue}t&&t.push(s.name);let i=`[^${x(r.delimiter)}]+?`,o=s.value;if(s.type===1?o=i:s.type===0&&(o=v),!s.prefix.length&&!s.suffix.length){s.modifier===3||s.modifier===1?n+=`(${o})${T(s.modifier)}`:n+=`((?:${o})${T(s.modifier)})`;continue}if(s.modifier===3||s.modifier===1){n+=`(?:${x(s.prefix)}(${o})${x(s.suffix)})`,n+=T(s.modifier);continue}n+=`(?:${x(s.prefix)}`,n+=`((?:${o})(?:`,n+=x(s.suffix),n+=x(s.prefix),n+=`(?:${o}))*)${x(s.suffix)})`,s.modifier===0&&(n+=\"?\")}let c=`[${x(r.endsWith)}]|$`,l=`[${x(r.delimiter)}]`;if(r.end)return r.strict||(n+=`${l}?`),r.endsWith.length?n+=`(?=${c})`:n+=\"$\",new RegExp(n,B(r));r.strict||(n+=`(?:${l}(?=${c}))?`);let f=!1;if(e.length){let s=e[e.length-1];s.type===3&&s.modifier===3&&(f=r.delimiter.indexOf(s)>-1)}return f||(n+=`(?=${l}|${c})`),new RegExp(n,B(r))}a(W,\"partsToRegexp\");var b={delimiter:\"\",prefixes:\"\",sensitive:!0,strict:!0},J={delimiter:\".\",prefixes:\"\",sensitive:!0,strict:!0},Q={delimiter:\"/\",prefixes:\"/\",sensitive:!0,strict:!0};function ee(e,t){return e.length?e[0]===\"/\"?!0:!t||e.length<2?!1:(e[0]==\"\\\\\"||e[0]==\"{\")&&e[1]==\"/\":!1}a(ee,\"isAbsolutePathname\");function te(e,t){return e.startsWith(t)?e.substring(t.length,e.length):e}a(te,\"maybeStripPrefix\");function ke(e,t){return e.endsWith(t)?e.substr(0,e.length-t.length):e}a(ke,\"maybeStripSuffix\");function _(e){return!e||e.length<2?!1:e[0]===\"[\"||(e[0]===\"\\\\\"||e[0]===\"{\")&&e[1]===\"[\"}a(_,\"treatAsIPv6Hostname\");var re=[\"ftp\",\"file\",\"http\",\"https\",\"ws\",\"wss\"];function U(e){if(!e)return!0;for(let t of re)if(e.test(t))return!0;return!1}a(U,\"isSpecialScheme\");function ne(e,t){if(e=te(e,\"#\"),t||e===\"\")return e;let r=new URL(\"https://example.com\");return r.hash=e,r.hash?r.hash.substring(1,r.hash.length):\"\"}a(ne,\"canonicalizeHash\");function se(e,t){if(e=te(e,\"?\"),t||e===\"\")return e;let r=new URL(\"https://example.com\");return r.search=e,r.search?r.search.substring(1,r.search.length):\"\"}a(se,\"canonicalizeSearch\");function ie(e,t){return t||e===\"\"?e:_(e)?K(e):j(e)}a(ie,\"canonicalizeHostname\");function ae(e,t){if(t||e===\"\")return e;let r=new URL(\"https://example.com\");return r.password=e,r.password}a(ae,\"canonicalizePassword\");function oe(e,t){if(t||e===\"\")return e;let r=new URL(\"https://example.com\");return r.username=e,r.username}a(oe,\"canonicalizeUsername\");function ce(e,t,r){if(r||e===\"\")return e;if(t&&!re.includes(t))return new URL(`${t}:${e}`).pathname;let n=e[0]==\"/\";return e=new URL(n?e:\"/-\"+e,\"https://example.com\").pathname,n||(e=e.substring(2,e.length)),e}a(ce,\"canonicalizePathname\");function le(e,t,r){return z(t)===e&&(e=\"\"),r||e===\"\"?e:G(e)}a(le,\"canonicalizePort\");function fe(e,t){return e=ke(e,\":\"),t||e===\"\"?e:w(e)}a(fe,\"canonicalizeProtocol\");function z(e){switch(e){case\"ws\":case\"http\":return\"80\";case\"wws\":case\"https\":return\"443\";case\"ftp\":return\"21\";default:return\"\"}}a(z,\"defaultPortForProtocol\");function w(e){if(e===\"\")return e;if(/^[-+.A-Za-z0-9]*$/.test(e))return e.toLowerCase();throw new TypeError(`Invalid protocol '${e}'.`)}a(w,\"protocolEncodeCallback\");function he(e){if(e===\"\")return e;let t=new URL(\"https://example.com\");return t.username=e,t.username}a(he,\"usernameEncodeCallback\");function ue(e){if(e===\"\")return e;let t=new URL(\"https://example.com\");return t.password=e,t.password}a(ue,\"passwordEncodeCallback\");function j(e){if(e===\"\")return e;if(/[\\t\\n\\r #%/:<>?@[\\]^\\\\|]/g.test(e))throw new TypeError(`Invalid hostname '${e}'`);let t=new URL(\"https://example.com\");return t.hostname=e,t.hostname}a(j,\"hostnameEncodeCallback\");function K(e){if(e===\"\")return e;if(/[^0-9a-fA-F[\\]:]/g.test(e))throw new TypeError(`Invalid IPv6 hostname '${e}'`);return e.toLowerCase()}a(K,\"ipv6HostnameEncodeCallback\");function G(e){if(e===\"\"||/^[0-9]*$/.test(e)&&parseInt(e)<=65535)return e;throw new TypeError(`Invalid port '${e}'.`)}a(G,\"portEncodeCallback\");function de(e){if(e===\"\")return e;let t=new URL(\"https://example.com\");return t.pathname=e[0]!==\"/\"?\"/-\"+e:e,e[0]!==\"/\"?t.pathname.substring(2,t.pathname.length):t.pathname}a(de,\"standardURLPathnameEncodeCallback\");function pe(e){return e===\"\"?e:new URL(`data:${e}`).pathname}a(pe,\"pathURLPathnameEncodeCallback\");function ge(e){if(e===\"\")return e;let t=new URL(\"https://example.com\");return t.search=e,t.search.substring(1,t.search.length)}a(ge,\"searchEncodeCallback\");function me(e){if(e===\"\")return e;let t=new URL(\"https://example.com\");return t.hash=e,t.hash.substring(1,t.hash.length)}a(me,\"hashEncodeCallback\");var C=class{#i;#n=[];#t={};#e=0;#s=1;#l=0;#o=0;#d=0;#p=0;#g=!1;constructor(t){this.#i=t}get result(){return this.#t}parse(){for(this.#n=D(this.#i,!0);this.#e<this.#n.length;this.#e+=this.#s){if(this.#s=1,this.#n[this.#e].type===\"END\"){if(this.#o===0){this.#b(),this.#f()?this.#r(9,1):this.#h()?this.#r(8,1):this.#r(7,0);continue}else if(this.#o===2){this.#u(5);continue}this.#r(10,0);break}if(this.#d>0)if(this.#A())this.#d-=1;else continue;if(this.#T()){this.#d+=1;continue}switch(this.#o){case 0:this.#P()&&this.#u(1);break;case 1:if(this.#P()){this.#C();let t=7,r=1;this.#E()?(t=2,r=3):this.#g&&(t=2),this.#r(t,r)}break;case 2:this.#S()?this.#u(3):(this.#x()||this.#h()||this.#f())&&this.#u(5);break;case 3:this.#O()?this.#r(4,1):this.#S()&&this.#r(5,1);break;case 4:this.#S()&&this.#r(5,1);break;case 5:this.#y()?this.#p+=1:this.#w()&&(this.#p-=1),this.#k()&&!this.#p?this.#r(6,1):this.#x()?this.#r(7,0):this.#h()?this.#r(8,1):this.#f()&&this.#r(9,1);break;case 6:this.#x()?this.#r(7,0):this.#h()?this.#r(8,1):this.#f()&&this.#r(9,1);break;case 7:this.#h()?this.#r(8,1):this.#f()&&this.#r(9,1);break;case 8:this.#f()&&this.#r(9,1);break;case 9:break;case 10:break}}this.#t.hostname!==void 0&&this.#t.port===void 0&&(this.#t.port=\"\")}#r(t,r){switch(this.#o){case 0:break;case 1:this.#t.protocol=this.#c();break;case 2:break;case 3:this.#t.username=this.#c();break;case 4:this.#t.password=this.#c();break;case 5:this.#t.hostname=this.#c();break;case 6:this.#t.port=this.#c();break;case 7:this.#t.pathname=this.#c();break;case 8:this.#t.search=this.#c();break;case 9:this.#t.hash=this.#c();break;case 10:break}this.#o!==0&&t!==10&&([1,2,3,4].includes(this.#o)&&[6,7,8,9].includes(t)&&(this.#t.hostname??=\"\"),[1,2,3,4,5,6].includes(this.#o)&&[8,9].includes(t)&&(this.#t.pathname??=this.#g?\"/\":\"\"),[1,2,3,4,5,6,7].includes(this.#o)&&t===9&&(this.#t.search??=\"\")),this.#R(t,r)}#R(t,r){this.#o=t,this.#l=this.#e+r,this.#e+=r,this.#s=0}#b(){this.#e=this.#l,this.#s=0}#u(t){this.#b(),this.#o=t}#m(t){return t<0&&(t=this.#n.length-t),t<this.#n.length?this.#n[t]:this.#n[this.#n.length-1]}#a(t,r){let n=this.#m(t);return n.value===r&&(n.type===\"CHAR\"||n.type===\"ESCAPED_CHAR\"||n.type===\"INVALID_CHAR\")}#P(){return this.#a(this.#e,\":\")}#E(){return this.#a(this.#e+1,\"/\")&&this.#a(this.#e+2,\"/\")}#S(){return this.#a(this.#e,\"@\")}#O(){return this.#a(this.#e,\":\")}#k(){return this.#a(this.#e,\":\")}#x(){return this.#a(this.#e,\"/\")}#h(){if(this.#a(this.#e,\"?\"))return!0;if(this.#n[this.#e].value!==\"?\")return!1;let t=this.#m(this.#e-1);return t.type!==\"NAME\"&&t.type!==\"REGEX\"&&t.type!==\"CLOSE\"&&t.type!==\"ASTERISK\"}#f(){return this.#a(this.#e,\"#\")}#T(){return this.#n[this.#e].type==\"OPEN\"}#A(){return this.#n[this.#e].type==\"CLOSE\"}#y(){return this.#a(this.#e,\"[\")}#w(){return this.#a(this.#e,\"]\")}#c(){let t=this.#n[this.#e],r=this.#m(this.#l).index;return this.#i.substring(r,t.index)}#C(){let t={};Object.assign(t,b),t.encodePart=w;let r=q(this.#c(),void 0,t);this.#g=U(r)}};a(C,\"Parser\");var V=[\"protocol\",\"username\",\"password\",\"hostname\",\"port\",\"pathname\",\"search\",\"hash\"],O=\"*\";function Se(e,t){if(typeof e!=\"string\")throw new TypeError(\"parameter 1 is not of type 'string'.\");let r=new URL(e,t);return{protocol:r.protocol.substring(0,r.protocol.length-1),username:r.username,password:r.password,hostname:r.hostname,port:r.port,pathname:r.pathname,search:r.search!==\"\"?r.search.substring(1,r.search.length):void 0,hash:r.hash!==\"\"?r.hash.substring(1,r.hash.length):void 0}}a(Se,\"extractValues\");function R(e,t){return t?I(e):e}a(R,\"processBaseURLString\");function L(e,t,r){let n;if(typeof t.baseURL==\"string\")try{n=new URL(t.baseURL),t.protocol===void 0&&(e.protocol=R(n.protocol.substring(0,n.protocol.length-1),r)),!r&&t.protocol===void 0&&t.hostname===void 0&&t.port===void 0&&t.username===void 0&&(e.username=R(n.username,r)),!r&&t.protocol===void 0&&t.hostname===void 0&&t.port===void 0&&t.username===void 0&&t.password===void 0&&(e.password=R(n.password,r)),t.protocol===void 0&&t.hostname===void 0&&(e.hostname=R(n.hostname,r)),t.protocol===void 0&&t.hostname===void 0&&t.port===void 0&&(e.port=R(n.port,r)),t.protocol===void 0&&t.hostname===void 0&&t.port===void 0&&t.pathname===void 0&&(e.pathname=R(n.pathname,r)),t.protocol===void 0&&t.hostname===void 0&&t.port===void 0&&t.pathname===void 0&&t.search===void 0&&(e.search=R(n.search.substring(1,n.search.length),r)),t.protocol===void 0&&t.hostname===void 0&&t.port===void 0&&t.pathname===void 0&&t.search===void 0&&t.hash===void 0&&(e.hash=R(n.hash.substring(1,n.hash.length),r))}catch{throw new TypeError(`invalid baseURL '${t.baseURL}'.`)}if(typeof t.protocol==\"string\"&&(e.protocol=fe(t.protocol,r)),typeof t.username==\"string\"&&(e.username=oe(t.username,r)),typeof t.password==\"string\"&&(e.password=ae(t.password,r)),typeof t.hostname==\"string\"&&(e.hostname=ie(t.hostname,r)),typeof t.port==\"string\"&&(e.port=le(t.port,e.protocol,r)),typeof t.pathname==\"string\"){if(e.pathname=t.pathname,n&&!ee(e.pathname,r)){let c=n.pathname.lastIndexOf(\"/\");c>=0&&(e.pathname=R(n.pathname.substring(0,c+1),r)+e.pathname)}e.pathname=ce(e.pathname,e.protocol,r)}return typeof t.search==\"string\"&&(e.search=se(t.search,r)),typeof t.hash==\"string\"&&(e.hash=ne(t.hash,r)),e}a(L,\"applyInit\");function I(e){return e.replace(/([+*?:{}()\\\\])/g,\"\\\\$1\")}a(I,\"escapePatternString\");function Te(e){return e.replace(/([.+*?^${}()[\\]|/\\\\])/g,\"\\\\$1\")}a(Te,\"escapeRegexpString\");function Ae(e,t){t.delimiter??=\"/#?\",t.prefixes??=\"./\",t.sensitive??=!1,t.strict??=!1,t.end??=!0,t.start??=!0,t.endsWith=\"\";let r=\".*\",n=`[^${Te(t.delimiter)}]+?`,c=/[$_\\u200C\\u200D\\p{ID_Continue}]/u,l=\"\";for(let f=0;f<e.length;++f){let s=e[f];if(s.type===3){if(s.modifier===3){l+=I(s.value);continue}l+=`{${I(s.value)}}${T(s.modifier)}`;continue}let i=s.hasCustomName(),o=!!s.suffix.length||!!s.prefix.length&&(s.prefix.length!==1||!t.prefixes.includes(s.prefix)),h=f>0?e[f-1]:null,p=f<e.length-1?e[f+1]:null;if(!o&&i&&s.type===1&&s.modifier===3&&p&&!p.prefix.length&&!p.suffix.length)if(p.type===3){let A=p.value.length>0?p.value[0]:\"\";o=c.test(A)}else o=!p.hasCustomName();if(!o&&!s.prefix.length&&h&&h.type===3){let A=h.value[h.value.length-1];o=t.prefixes.includes(A)}o&&(l+=\"{\"),l+=I(s.prefix),i&&(l+=`:${s.name}`),s.type===2?l+=`(${s.value})`:s.type===1?i||(l+=`(${n})`):s.type===0&&(!i&&(!h||h.type===3||h.modifier!==3||o||s.prefix!==\"\")?l+=\"*\":l+=`(${r})`),s.type===1&&i&&s.suffix.length&&c.test(s.suffix[0])&&(l+=\"\\\\\"),l+=I(s.suffix),o&&(l+=\"}\"),s.modifier!==3&&(l+=T(s.modifier))}return l}a(Ae,\"partsToPattern\");var Y=class{#i;#n={};#t={};#e={};#s={};#l=!1;constructor(t={},r,n){try{let c;if(typeof r==\"string\"?c=r:n=r,typeof t==\"string\"){let i=new C(t);if(i.parse(),t=i.result,c===void 0&&typeof t.protocol!=\"string\")throw new TypeError(\"A base URL must be provided for a relative constructor string.\");t.baseURL=c}else{if(!t||typeof t!=\"object\")throw new TypeError(\"parameter 1 is not of type 'string' and cannot convert to dictionary.\");if(c)throw new TypeError(\"parameter 1 is not of type 'string'.\")}typeof n>\"u\"&&(n={ignoreCase:!1});let l={ignoreCase:n.ignoreCase===!0},f={pathname:O,protocol:O,username:O,password:O,hostname:O,port:O,search:O,hash:O};this.#i=L(f,t,!0),z(this.#i.protocol)===this.#i.port&&(this.#i.port=\"\");let s;for(s of V){if(!(s in this.#i))continue;let i={},o=this.#i[s];switch(this.#t[s]=[],s){case\"protocol\":Object.assign(i,b),i.encodePart=w;break;case\"username\":Object.assign(i,b),i.encodePart=he;break;case\"password\":Object.assign(i,b),i.encodePart=ue;break;case\"hostname\":Object.assign(i,J),_(o)?i.encodePart=K:i.encodePart=j;break;case\"port\":Object.assign(i,b),i.encodePart=G;break;case\"pathname\":U(this.#n.protocol)?(Object.assign(i,Q,l),i.encodePart=de):(Object.assign(i,b,l),i.encodePart=pe);break;case\"search\":Object.assign(i,b,l),i.encodePart=ge;break;case\"hash\":Object.assign(i,b,l),i.encodePart=me;break}try{this.#s[s]=F(o,i),this.#n[s]=W(this.#s[s],this.#t[s],i),this.#e[s]=Ae(this.#s[s],i),this.#l=this.#l||this.#s[s].some(h=>h.type===2)}catch{throw new TypeError(`invalid ${s} pattern '${this.#i[s]}'.`)}}}catch(c){throw new TypeError(`Failed to construct 'URLPattern': ${c.message}`)}}get[Symbol.toStringTag](){return\"URLPattern\"}test(t={},r){let n={pathname:\"\",protocol:\"\",username:\"\",password:\"\",hostname:\"\",port:\"\",search:\"\",hash:\"\"};if(typeof t!=\"string\"&&r)throw new TypeError(\"parameter 1 is not of type 'string'.\");if(typeof t>\"u\")return!1;try{typeof t==\"object\"?n=L(n,t,!1):n=L(n,Se(t,r),!1)}catch{return!1}let c;for(c of V)if(!this.#n[c].exec(n[c]))return!1;return!0}exec(t={},r){let n={pathname:\"\",protocol:\"\",username:\"\",password:\"\",hostname:\"\",port:\"\",search:\"\",hash:\"\"};if(typeof t!=\"string\"&&r)throw new TypeError(\"parameter 1 is not of type 'string'.\");if(typeof t>\"u\")return;try{typeof t==\"object\"?n=L(n,t,!1):n=L(n,Se(t,r),!1)}catch{return null}let c={};r?c.inputs=[t,r]:c.inputs=[t];let l;for(l of V){let f=this.#n[l].exec(n[l]);if(!f)return null;let s={};for(let[i,o]of this.#t[l].entries())if(typeof o==\"string\"||typeof o==\"number\"){let h=f[i+1];s[o]=h}c[l]={input:n[l]??\"\",groups:s}}return c}static compareComponent(t,r,n){let c=a((i,o)=>{for(let h of[\"type\",\"modifier\",\"prefix\",\"value\",\"suffix\"]){if(i[h]<o[h])return-1;if(i[h]===o[h])continue;return 1}return 0},\"comparePart\"),l=new P(3,\"\",\"\",\"\",\"\",3),f=new P(0,\"\",\"\",\"\",\"\",3),s=a((i,o)=>{let h=0;for(;h<Math.min(i.length,o.length);++h){let p=c(i[h],o[h]);if(p)return p}return i.length===o.length?0:c(i[h]??l,o[h]??l)},\"comparePartList\");return!r.#e[t]&&!n.#e[t]?0:r.#e[t]&&!n.#e[t]?s(r.#s[t],[f]):!r.#e[t]&&n.#e[t]?s([f],n.#s[t]):s(r.#s[t],n.#s[t])}get protocol(){return this.#e.protocol}get username(){return this.#e.username}get password(){return this.#e.password}get hostname(){return this.#e.hostname}get port(){return this.#e.port}get pathname(){return this.#e.pathname}get search(){return this.#e.search}get hash(){return this.#e.hash}get hasRegExpGroups(){return this.#l}};a(Y,\"URLPattern\");export{Y as URLPattern};\n", "import { URLPattern } from \"./dist/urlpattern.js\";\n\nexport { URLPattern };\n\nif (!globalThis.URLPattern) {\n globalThis.URLPattern = URLPattern;\n}\n", "export { fetchPlus } from './fetchPlus.js';\nexport { RequestPlus } from './RequestPlus.js';\nexport { ResponsePlus } from './ResponsePlus.js';\nexport { HeadersPlus } from './HeadersPlus.js';\nexport { FormDataPlus } from './FormDataPlus.js';\nexport { LiveResponse } from './LiveResponse.js';\nexport { default as Observer } from '@webqit/observer';", "\n/**\n * Tells if val is pure object.\n *\n * @param object\t \tval\n *\n * @return bool\n */\nexport default function(val) {\n\treturn !Array.isArray(val) && typeof val === 'object' && val;\n};\n", "\n/**\n * Returns the val's type.\n *\n * @param string \tval\n *\n * @return string\n */\nexport default function(val) {\n\treturn typeof val;\n};\n", "\n/**\n * Tells if val is of type \"array\".\n *\n * @param object\t \tval\n *\n * @return bool\n */\nexport default function(val) {\n\treturn Array.isArray(val);\n};\n", "\n/**\n * Tells if val is undefined or is of type \"boolean\".\n *\n * @param string \tval\n *\n * @return bool\n */\nexport default function(val) {\n\treturn val === true || val === false;\n};\n", "\n/**\n * Tells if val is of type \"function\".\n * This holds true for both regular functions and classes.\n *\n * @param object\t \tval\n *\n * @return bool\n */\nexport default function(val) {\n\treturn typeof val === 'function';\n};\n", "\n/**\n * Tells if val is undefined or is null.\n *\n * @param string \tval\n *\n * @return bool\n */\nexport default function(val) {\n\treturn val === null || val === '';\n};\n", "\n/**\n * Tells if val is undefined or is of type \"undefined\".\n *\n * @param string \tval\n *\n * @return bool\n */\nexport default function(val) {\n\treturn arguments.length && (val === undefined || typeof val === 'undefined');\n};\n", "\n/**\n * @imports\n */\nimport _isTypeFunction from './isTypeFunction.js';\n\n/**\n * Tells if val is of type \"object\".\n * This holds true for anything object, including built-ins.\n *\n * @param object\t \tval\n *\n * @return bool\n */\nexport default function(val) {\n\treturn Array.isArray(val) || (typeof val === 'object' && val) || _isTypeFunction(val);\n};\n", "\n/**\n * @imports\n */\nimport _isNull from './isNull.js';\nimport _isUndefined from './isUndefined.js';\nimport _isTypeObject from './isTypeObject.js';\n\n/**\n * Tells if val is empty in its own type.\n * This holds true for NULLs, UNDEFINED, FALSE, 0,\n * objects without keys, empty arrays.\n *\n * @param string \tval\n *\n * @return bool\n */\nexport default function(val) {\n\treturn _isNull(val) || _isUndefined(val) || val === false || val === 0 \n\t\t|| (_isTypeObject(val) && !Object.keys(val).length);\n};\n", "\n/**\n * @imports\n */\nimport _isTypeFunction from './isTypeFunction.js';\n\n/**\n * Tells if val is of type \"function\".\n *\n * @param object \t\tval\n *\n * @return bool\n */\nexport default function(val) {\n\treturn _isTypeFunction(val) || (val && {}.toString.call(val) === '[object function]');\n};\n", "\n/**\n * Tells if val is of type \"number\".\n *\n * @param string \tval\n *\n * @return bool\n */\nexport default function(val) {\n\treturn val instanceof Number || (typeof val === 'number');\n};\n", "\n/**\n * @imports\n */\nimport _isNumber from './isNumber.js';\n/**\n * Tells if val is of type \"string\" or a numeric string.\n * This holds true for both numbers and numeric strings.\n *\n * @param string \tval\n *\n * @return bool\n */\nexport default function(val) {\n\treturn _isNumber(val) || (val !== true && val !== false && val !== null && val !== '' && !isNaN(val * 1));\n};\n", "\n/**\n * @imports\n */\nimport _isArray from './isArray.js';\n\n/**\n * Tells if an object is direct instance of Array.prototype.\n * Quite useful in differentiating array-extension instances from plain arrays ([]).\n *\n * @param object \tobj\n *\n * @return bool\n */\nexport default function(obj) {\n\treturn _isArray(obj) && Object.getPrototypeOf(obj) === Array.prototype;\n};\n", "\n/**\n * @imports\n */\nimport _isObject from './isObject.js';\n\n/**\n * Tells if an object is direct instance of Object.prototype.\n * Quite useful in differentiating native objects and class instances from plain objects ({}).\n *\n * @param object \tobj\n *\n * @return bool\n */\nexport default function(obj) {\n\treturn _isObject(obj) && Object.getPrototypeOf(obj) === Object.prototype;\n};\n", "\n/**\n * Tells if val is of type \"string\".\n *\n * @param string \tval\n *\n * @return bool\n */\nexport default function(val) {\n\treturn val instanceof String || (typeof val === 'string' && val !== null);\n};\n", "\n/**\n * @imports\n */\nimport _isString from './isString.js';\nimport _isUndefined from './isUndefined.js';\n\n/**\n * Tells if val is \"array-like\".\n * This holds true for anything that has a length property.\n *\n * @param object\t \tval\n *\n * @return bool\n */\nexport default function(val) {\n\treturn !_isString(val) && !_isUndefined(val.length);\n};\n", "export default function wq(obj, ...namespaces) {\n if (!obj || !['object', 'function'].includes(typeof obj)) {\n throw new Error(`Argument #1 must be of type object`);\n }\n let wq = obj[Symbol.for('wq')];\n if (!wq) {\n wq = new WQInternals;\n Object.defineProperty(obj, Symbol.for('wq'), {\n value: wq,\n // Defaults, but to be explicit...\n enumerable: false,\n configurable: false,\n writable: false\n });\n }\n if (!namespaces.length) {\n return wq;\n }\n let _ns, _wq;\n while ((_ns = namespaces.shift())) {\n if ((_wq = wq) && !(wq = wq.get(_ns))) {\n wq = new WQInternals;\n _wq.set(_ns, wq);\n }\n }\n return wq;\n}\n\nclass WQInternals extends Map {}", "\n/**\n * Return the remainder of a string after a given value.\n *\n * @param string subject\n * @param string search\n * @param bool\t afterLast\n *\n * @return string\n */\nexport default function(subject, search, afterLast = false) {\n\tif (search == '') {\n\t\treturn subject;\n\t}\n\tvar pos = afterLast ? subject.lastIndexOf(search) : subject.indexOf(search);\n\tif (pos === -1) {\n\t\treturn '';\n\t}\n\treturn subject.substr(pos + search.length);\n};\n", "\n/**\n * Return the part of a string before a given value.\n *\n * @param string subject\n * @param string search\n * @param bool\t beforeLast\n *\n * @return string\n */\nexport default function(subject, search, beforeLast = false) {\n\tif (search == '') {\n\t\treturn subject;\n\t}\n\tvar pos = beforeLast ? subject.lastIndexOf(search) : subject.indexOf(search);\n\tif (pos === -1) {\n\t\treturn subject;\n\t}\n\treturn subject.substr(0, pos);\n};\n", "(async () => {\n if (typeof URLPattern === 'undefined') {\n await import('urlpattern-polyfill');\n }\n})();\n\nexport class URLPatternPlus extends URLPattern {\n\n #inputUrl;\n\n constructor(init, baseURL = null) {\n if (typeof init === 'object' && init?.baseURL) {\n ({ baseURL, ...init } = init);\n }\n super(init, baseURL);\n\n this.#inputUrl = new URL(init, baseURL);\n }\n\n isPattern() {\n const hasUnescapedMeta = (str, metaChars) => {\n if (!str) return false;\n let esc = false;\n for (const ch of str) {\n if (esc) { esc = false; continue; }\n if (ch === '\\\\') { esc = true; continue; }\n if (metaChars.has(ch)) return true;\n }\n return false;\n };\n const META = {\n protocol: new Set(['*']),\n username: new Set(['*']),\n password: new Set(['*']),\n hostname: new Set(['*', '{']),\n port: new Set(['*', '{']),\n pathname: new Set(['*', ':', '{', '(']),\n search: new Set(['*', '{']),\n hash: new Set(['*', '{']),\n };\n const url = this.#inputUrl;\n return (\n hasUnescapedMeta(url.protocol, META.protocol) ||\n hasUnescapedMeta(url.username, META.username) ||\n hasUnescapedMeta(url.password, META.password) ||\n hasUnescapedMeta(url.hostname, META.hostname) ||\n hasUnescapedMeta(url.port, META.port) ||\n hasUnescapedMeta(url.pathname, META.pathname) ||\n hasUnescapedMeta(url.search, META.search) ||\n hasUnescapedMeta(url.hash, META.hash)\n );\n }\n\n exec(...args) {\n const result = super.exec(...args);\n if (!result) return;\n\n const named = {};\n\n for (const component of Object.values(result)) {\n if (component?.groups) {\n Object.assign(named, component.groups);\n }\n }\n\n const vars = { named };\n\n const render = (str) => {\n return str.replace(/\\$(\\$|[A-Z0-9_]+)/gi, (_, token) => {\n if (token === '$') return '$';\n return vars.named[token] ?? '';\n });\n };\n\n return {\n ...result,\n vars,\n render\n };\n }\n}", "import { _isObject, _isTypeObject, _isFunction, _getType } from '@webqit/util/js/index.js';\nimport { _from as _arrFrom } from '@webqit/util/arr/index.js';\nimport { _wq, _await, env } from './util.js';\nimport ListenerRegistry from './core/ListenerRegistry.js';\nimport TrapsRegistry from './core/TrapsRegistry.js';\nimport Descriptor from './core/Descriptor.js';\nimport { unproxy } from './actors.js';\n\n/* ---------------SPECIAL APIs--------------- */\n\n/**\n * Creates a Path array instance from arguments.\n * \n * @param Array\t ...segments\n *\n * @return Path\n */\nclass Path extends Array {\n get [Symbol.toStringTag]() {\n return 'Path';\n }\n static [Symbol.hasInstance](instance) {\n return Array.isArray( instance )\n && instance[ Symbol.toStringTag ] === 'Path';\n }\n}\nexport function path( ...segments ) {\n return new Path( ...segments );\n}\n\n/**\n * Creates a \"Subtree\" directive.\n * \n * @return Subtree\n */\nclass Subtree extends Array {\n get [Symbol.toStringTag]() {\n return 'Subtree';\n }\n static [Symbol.hasInstance](instance) {\n return Array.isArray( instance )\n && instance[ Symbol.toStringTag ] === 'Subtree';\n }\n}\nexport function subtree() {\n return new Subtree;\n}\n\n/**\n * Creates an \"Infinity\" directive.\n * \n * @return Infinity\n */\nexport function any() {\n return Infinity;\n}\n\n/**\n * Reduces a path array against handler.\n * \n * @param Array|Object\t target\n * @param Array\t path\n * @param Function\t receiver\n * @param Function\t final\n * @param Object\t params\n * \n * @example reduce( object, [ segement1, segement2 ], observe, ( value, flags ) => {}, params );\n *\n * @return Any\n */\nexport function reduce( target, path, receiver, final = x => x, params = {} ) {\n const _isSubtree = path instanceof Subtree;\n if ( !_isSubtree && !path?.length ) return;\n return ( function eat( target, path, $params, $isSubtree ) {\n const isSubtree = $isSubtree || path[ $params.level ] instanceof Subtree;\n const segment = isSubtree ? Infinity : path[ $params.level ];\n const isLastSegment = isSubtree ? false : $params.level === path.length - 1;\n if ( target instanceof Descriptor && target.operation !== 'get' ) {\n // Always probe event-generated trees\n $params = { ...$params, probe: 'always' };\n } else if ( $params.probe !== 'always' ) {\n // Probe until (before) last segment\n $params = { ...$params, probe: !isLastSegment };\n }\n // ---------------\n return receiver( target, segment, ( result, ...args ) => {\n // -----------\n const addTrail = ( desc ) => {\n if ( !( desc instanceof Descriptor ) ) return;\n desc.path = 'key' in desc ? [ desc.key ] : [];\n if ( target instanceof Descriptor ) {\n desc.path = 'key' in desc ? target.path.concat( desc.key ) : target.path.slice( 0 );\n Object.defineProperty( desc, 'context', { get: () => target, configurable: true } );\n }\n };\n const flags = args[ 0 ] || {};\n const advance = ( result ) => {\n if ( result instanceof Descriptor && 'argumentsList' in result ) {\n return;\n }\n const $value = resolveObj( result/* a Descriptor who's value could be proxied */, false );\n return _await( $value/* could be a promise */, $value => {\n if ( result instanceof Descriptor ) {\n result.value = $value; // Update to (fulfilled), unproxied, value\n } else {\n result = $value;\n }\n return eat( result, path, { ...$params, ...flags, keyInParent: result.key, level: $params.level + 1, }, isSubtree );\n } );\n };\n // -----------\n if ( isPropsList( segment ) && Array.isArray( result ) ) {\n result.forEach( addTrail );\n if ( isLastSegment ) {\n return final( result, ...args );\n }\n if ( isSubtree && result[ 0 ] instanceof Descriptor && ( result[ 0 ].operation !== 'get' || params.asGet ) ) {\n final( result, ...args );\n }\n for ( const entry of result ) {\n advance( entry );\n }\n return;\n }\n // -----------\n addTrail( result );\n if ( isLastSegment ) {\n return final( result, ...args );\n }\n return advance( result );\n // -----------\n }, $params );\n } )( target, path.slice( 0 ), { ...params, level: 0 }, _isSubtree );\n}\n\n/**\n * Adds an observer to a target's registry.\n *\n * @param Array|Object\t target\n * @param String|Object\t prop\n * @param Function\t receiver\n * @param Object\t\t params\n *\n * @return AbortController\n */\nexport function observe( target, prop, receiver, params = {} ) {\n // ---------------\n const originalTarget = resolveObj( target, !params.level );\n\tif ( _isFunction( arguments[ 1 ] ) ) {\n [ , receiver, params = {} ] = arguments;\n prop = Infinity;\n\t}\n\tif ( !_isFunction( receiver ) ) throw new Error( `Handler must be a function; \"${ _getType( receiver ) }\" given!` );\n if ( prop instanceof Path || prop instanceof Subtree ) return reduce( originalTarget, prop, observe, receiver, params );\n // ---------------\n params = { ...params, descripted: true };\n delete params.live;\n if ( !_isTypeObject( originalTarget ) ) return params.probe && get( originalTarget, prop, receiver, params ) || undefined;\n // ---------------\n const emit = bind( originalTarget, prop, receiver, params );\n if ( params.probe ) {\n return get( originalTarget, prop, emit, params );\n }\n return emit();\n}\n\n/**\n * Adds an interceptor object to a target's registry.\n *\n * @param Array|Object\t target\n * @param Object\t traps\n * @param Object\t\t params\n *\n * @return AbortRegistry\n */\nexport function intercept( target, traps, params = {} ) {\n // ---------------\n const originalTarget = resolveObj( target );\n if ( !_isObject( traps ) ) {\n [ /*target*/, /*operation*/, /*handler*/, params = {} ] = arguments;\n traps = { [ arguments[ 1 ] ]: arguments[ 2 ] };\n }\n // ---------------\n return TrapsRegistry.getInstance( originalTarget, true, params.namespace ).addRegistration( { traps, params } );\n}\n\n/* ---------------QUERY APIs--------------- */\n\n/**\n * Performs a \"getOwnPropertyDescriptor\" operation.\n *\n * @param Array|Object\t target\n * @param String|Number\t prop\n * @param Function\t receiver\n * @param Object\t\t params\n *\n * @return Any\n */\nexport function getOwnPropertyDescriptor( target, prop, receiver = x => x, params = {} ) {\n return exec( target, 'getOwnPropertyDescriptor', { key: prop }, receiver, params );\n}\n\n/**\n * Performs a \"getOwnPropertyDescriptors\" operation.\n * @note this isn't part of the standard Reflect API.\n *\n * @param Array|Object\t target\n * @param String|Number\t prop\n * @param Function\t receiver\n * @param Object\t\t params\n *\n * @return Any\n */\nexport function getOwnPropertyDescriptors( target, prop, receiver = x => x, params = {} ) {\n return exec( target, 'getOwnPropertyDescriptors', { key: prop }, receiver, params );\n}\n\n/**\n * Performs a \"getPrototypeOf\" operation.\n *\n * @param Array|Object\t target\n * @param Function\t receiver\n * @param Object\t\t params\n *\n * @return Any\n */\nexport function getPrototypeOf( target, receiver = x => x, params = {} ) {\n return exec( target, 'getPrototypeOf', {}, receiver, params );\n}\n\n/**\n * Performs a \"isExtensible\" operation.\n *\n * @param Array|Object\t target\n * @param Function\t receiver\n * @param Object\t\t params\n *\n * @return Any\n */\nexport function isExtensible( target, receiver = x => x, params = {} ) {\n return exec( target, 'isExtensible', {}, receiver, params );\n}\n\n/**\n * Performs a \"ownKeys\" operation.\n *\n * @param Array|Object\t target\n * @param Function\t receiver\n * @param Object\t\t params\n *\n * @return Any\n */\nexport function ownKeys( target, receiver = x => x, params = {} ) {\n return exec( target, 'ownKeys', {}, receiver, params );\n}\n\n/**\n * Performs an operation of the given \"type\".\n *\n * @param Array|Object\t target\n * @param String|Number\t prop\n * @param Function\t receiver\n * @param Object\t\t params\n *\n * @return Any\n */\nexport function has( target, prop, receiver = x => x, params = {} ) {\n return exec( target, 'has', { key: prop }, receiver, params );\n}\n\n/**\n * Performs a get operation.\n *\n * @param Array|Object\t target\n * @param String|Number\t prop\n * @param Function\t receiver\n * @param Object\t params\n *\n * @return Any\n */\nexport function get( target, prop, receiver = x => x, params = {} ) {\n // ---------------\n let isLive;\n const originalTarget = resolveObj( target, !params.level );\n if ( _isObject( receiver ) ) {\n [ params, receiver ] = [ receiver, x => x ];\n } else if ( params.live ) { isLive = true; }\n if ( prop instanceof Path || prop instanceof Subtree ) return reduce( originalTarget, prop, get, receiver, { ...params, asGet: true } );\n // ---------------\n return resolveProps( originalTarget, prop, props => {\n const related = [ ...props ];\n return ( function next( results, _props, _done ) {\n if ( !_props.length ) return _done( results );\n const prop = _props.shift();\n if ( ![ 'string', 'number', 'symbol' ].includes( typeof prop ) ) {\n throw new Error( `Property name/key ${ prop } invalid.` );\n }\n // ---------\n function defaultGet( descriptor, value = undefined ) {\n const _next = value => ( descriptor.value = value, next( [ ...results, params.live || params.descripted ? descriptor : value ]/** not using concat() as value may be an array */, _props, _done ) );\n if ( arguments.length > 1 ) return _next( value );\n if ( !_isTypeObject( originalTarget ) ) return _next( originalTarget?.[ descriptor.key ] );\n const accessorizedProps = _wq( originalTarget, 'accessorizedProps', false );\n const accessorization = accessorizedProps && accessorizedProps.get( descriptor.key );\n if ( accessorization && accessorization.intact() ) {\n return _next( accessorization.getValue( params.withPropertyDescriptors ) );\n }\n if ( params.withPropertyDescriptors ) {\n const desc = Object.getOwnPropertyDescriptor( originalTarget, descriptor.key );\n return _next( desc );\n }\n return _next( Reflect.get( originalTarget, descriptor.key/*, ...( params.receiver ? [ params.receiver ] : [] )*//*Throws Illegal invocation error ffor DOM nodes, e.g.*/ ) );\n }\n // ---------\n const descriptor = new Descriptor( originalTarget, {\n type: 'get',\n key: prop,\n value: undefined,\n operation: 'get',\n related,\n } );\n if ( !_isTypeObject( originalTarget ) ) return defaultGet( descriptor );\n const trapsRegistry = TrapsRegistry.getInstance( originalTarget, false, params.namespace );\n if ( trapsRegistry ) {\n return trapsRegistry.emit( descriptor, defaultGet );\n }\n return defaultGet( descriptor );\n } )( [], props.slice( 0 ), results => {\n const result_s = isPropsList( prop/*original*/ ) ? results : results[ 0 ];\n if ( isLive && _isTypeObject( originalTarget ) ) {\n const emit = bind( originalTarget, prop, receiver, params, target.key );\n return emit( result_s );\n }\n return receiver( result_s );\n } );\n }, params );\n}\n\n/* ---------------MUTATION APIs--------------- */\n\n/**\n * Performs a batch operation.\n * \n * @param Object\t target\n * @param Function\t callback\n * @param Object\t params\n *\n * @return Void\n */\nexport function batch( target, callback, params = {} ) {\n const originalTarget = resolveObj( target );\n return ListenerRegistry.getInstance( originalTarget, true, params.namespace ).batch( callback, params );\n}\n\n/**\n * Performs a mirror operation.\n * \n * @param Object\t source\n * @param Object\t target\n * @param Object\t params\n *\n * @return Void\n */\nexport function map( source, target, params = {} ) {\n target = resolveObj( target );\n source = resolveObj( source );\n const only = ( params.only || [] ).slice( 0 ), except = ( params.except || [] ).slice( 0 );\n const sourceKeys = Object.keys( params.spread ? [ ...source ] : source ).map( k => !isNaN( k ) ? parseInt( k ) : k );\n const filteredKeys = only.length ? only.filter( k => sourceKeys.includes( k ) ) : sourceKeys.filter( k => !except.includes( k ) );\n const resolveKey = k => { \n if ( !Array.isArray( target ) || isNaN( k ) ) return k;\n return k - except.filter( i => i < k ).length;\n };\n const doSet = key => {\n const descriptor = getOwnPropertyDescriptor( source, key, params );\n if ( ( 'value' in descriptor ) && descriptor.writable && descriptor.enumerable && descriptor.configurable ) {\n set( target, resolveKey( key ), descriptor.value, params );\n } else if ( descriptor.enumerable || params.onlyEnumerable === false ) { defineProperty( target, key, { ...descriptor, configurable: true }, params ); }\n };\n batch( target, () => {\n filteredKeys.forEach( doSet );\n } );\n return observe( source, mutations => {\n //batch( target, () => {\n mutations.filter( m => only.length ? only.includes( m.key ) : !except.includes( m.key ) ).forEach( m => {\n if ( m.type === 'delete' ) return deleteProperty( target, resolveKey( m.key ), params );\n if ( m.type === 'def' ) {\n if ( m.value.enumerable || params.onlyEnumerable === false ) {\n defineProperty( target, resolveKey( m.key ), { ...m.value, configurable: true }, params );\n }\n return;\n }\n doSet( m.key );\n } );\n //}, params );\n }, { ...params, withPropertyDescriptors: true } );\n}\n\n/**\n * Performs a set operation.\n * \n * @param Object\t target\n * @param String|Number\t prop\n * @param Any\t value\n * @param Function\t receiver\n * @param Object\t params\n * @param Bool\t def\n *\n * @return Any\n */\nexport function set( target, prop, value, receiver = x => x, params = {}, def = false ) {\n // ---------------\n const originalTarget = resolveObj( target );\n let entries = [ [ prop, value ] ];\n if ( _isObject( prop ) ) {\n [ /*target*/, /*hash*/, receiver = x => x, params = {}, def = false ] = arguments;\n entries = Object.entries( prop );\n }\n if ( _isObject( receiver ) ) { [ def, params, receiver ] = [ typeof params === 'boolean' ? params : def, receiver, x => x ]; }\n // ---------------\n const related = entries.map( ( [ prop ] ) => prop );\n return ( function next( descriptors, entries, _done ) {\n if ( !entries.length ) return _done( descriptors );\n const [ prop, value ] = entries.shift();\n // ---------\n function defaultSet( descriptor, status = undefined ) {\n const _next = status => ( descriptor.status = status, next( descriptors.concat( descriptor ), entries, _done ) );\n if ( arguments.length > 1 ) return _next( descriptor, status );\n const accessorizedProps = _wq( originalTarget, 'accessorizedProps', false );\n const accessorization = accessorizedProps && accessorizedProps.get( descriptor.key );\n if ( descriptor.type === 'def' ) {\n if ( accessorization && !accessorization.restore() ) _next( false );\n Object.defineProperty( originalTarget, descriptor.key, descriptor.value );\n return _next( true );\n }\n if ( accessorization && accessorization.intact() ) {\n return _next( accessorization.setValue( descriptor.value ) );\n }\n return _next( Reflect.set( originalTarget, descriptor.key, descriptor.value ) );\n }\n // ---------\n function exec( isUpdate, oldValue ) {\n if ( params.diff && value === oldValue ) return next( descriptors, entries, _done );\n const descriptor = new Descriptor( originalTarget, {\n type: def ? 'def' : 'set',\n key: prop,\n value,\n isUpdate,\n oldValue,\n related: [ ...related ],\n operation: def ? 'defineProperty' : 'set',\n detail: params.detail,\n } );\n const trapsRegistry = TrapsRegistry.getInstance( originalTarget, false, params.namespace );\n return trapsRegistry \n ? trapsRegistry.emit( descriptor, defaultSet ) \n : defaultSet( descriptor );\n }\n // ---------\n return has( originalTarget, prop, exists => {\n if ( !exists ) return exec( exists );\n if ( prop === 'length' && Array.isArray( originalTarget ) && _wq( originalTarget ).has( '$length' ) ) {\n return exec( true, _wq( originalTarget ).get( '$length' ) );\n }\n const $params = { ...params, withPropertyDescriptors: def };\n return get( originalTarget, prop, oldValue => exec( exists, oldValue ), $params );\n }, params );\n // ---------\n } )( [], entries.slice( 0 ), descriptors => {\n const listenerRegistry = ListenerRegistry.getInstance( originalTarget, false, params.namespace );\n if ( listenerRegistry ) listenerRegistry.emit( descriptors, { eventsArePropertyDescriptors: !!def } );\n return receiver(\n isPropsList( prop/*original*/ ) ? descriptors.map( opr => opr.status ) : descriptors[ 0 ]?.status\n );\n } );\n}\n\n/**\n * Performs a defineProperty operation.\n * \n * @param Object\t target\n * @param String|Number\t prop\n * @param Object\t descriptor\n * @param Function\t receiver\n * @param Object\t params\n *\n * @return Any\n */\nexport function defineProperty( target, prop, descriptor, receiver = x => x, params = {} ) {\n return set( target, prop, descriptor, receiver, params, true/*def*/ );\n}\n\n/**\n * Performs a defineProperties operation.\n * @note this isn't part of the standard Reflect API.\n * \n * @param Object\t target\n * @param Object\t descriptors\n * @param Function\t receiver\n * @param Object\t params\n *\n * @return Any\n */\nexport function defineProperties( target, descriptors, receiver = x => x, params = {} ) {\n return set( target, descriptors, receiver, params, true/*def*/ );\n}\n\n/**\n * Performs a delete operation.\n * \n * @param Object\t target\n * @param String|Number\t prop\n * @param Function\t receiver\n * @param Object\t params\n *\n * @return Any\n */\nexport function deleteProperty( target, prop, receiver = x => x, params = {} ) {\n // ---------------\n const originalTarget = resolveObj( target );\n if ( _isObject( receiver ) ) { [ params, receiver ] = [ receiver, x => x ]; }\n // ---------------\n const props = _arrFrom( prop, false ), related = [ ...props ];\n return ( function next( descriptors, props, _done ) {\n if ( !props.length ) return _done( descriptors );\n const prop = props.shift();\n // ---------\n function defaultDel( descriptor, status = undefined ) {\n const _next = status => ( descriptor.status = status, next( descriptors.concat( descriptor ), props, _done ) );\n if ( arguments.length > 1 ) return _next( descriptor, status );\n const accessorizedProps = _wq( originalTarget, 'accessorizedProps', false );\n const accessorization = accessorizedProps && accessorizedProps.get( descriptor.key );\n if ( accessorization && !accessorization.restore() ) _next( false );\n return _next( Reflect.deleteProperty( originalTarget, descriptor.key ) );\n }\n // ---------\n function exec( oldValue ) {\n const descriptor = new Descriptor( originalTarget, {\n type: 'delete',\n key: prop,\n oldValue,\n related: [ ...related ],\n operation: 'deleteProperty',\n detail: params.detail,\n } );\n const trapsRegistry = TrapsRegistry.getInstance( originalTarget, false, params.namespace );\n return trapsRegistry \n ? trapsRegistry.emit( descriptor, defaultDel ) \n : defaultDel( descriptor );\n }\n // ---------\n return get( originalTarget, prop, exec, params );\n // ---------\n } )( [], props.slice( 0 ), descriptors => {\n const listenerRegistry = ListenerRegistry.getInstance( originalTarget, false, params.namespace );\n if ( listenerRegistry ) listenerRegistry.emit( descriptors );\n return receiver(\n isPropsList( prop/*original*/ ) ? descriptors.map( opr => opr.status ) : descriptors[ 0 ].status\n );\n } );\n}\n\n/**\n * @alias deleteProperty()\n */\nexport function deleteProperties( target, props, receiver = x => x, params = {} ) {\n return deleteProperty( ...arguments );\n}\n\n/* ---------------EFFECT APIs--------------- */\n\n/**\n * Performs a \"construct\" operation.\n *\n * @param Array|Object\t target\n * @param Array\t\t\t argumentsList\n * @param Object\t\t newTarget\n * @param Function\t receiver\n * @param Object\t\t params\n *\n * @return Any\n */\nexport function construct( target, argumentsList, newTarget = null, receiver = x => x, params = {} ) {\n return exec( target, 'construct', arguments.length > 2 ? { argumentsList, newTarget } : { argumentsList }, receiver, params );\n}\n\n/**\n * Performs an \"apply\" operation.\n *\n * @param Array|Object\t target\n * @param Any\t thisArgument\n * @param Array\t argumentsList\n * @param Function\t receiver\n * @param Object\t\t params\n *\n * @return Any\n */\nexport function apply( target, thisArgument, argumentsList, receiver = x => x, params = {} ) {\n const originalThis = unproxy( thisArgument );\n let returnValue;\n if ( Array.isArray( thisArgument ) ) {\n if ( params.arrayMethodName ) {\n const descriptor = new Descriptor( originalThis, {\n operation: params.arrayMethodName,\n argumentsList\n } );\n const listenerRegistry = ListenerRegistry.getInstance( originalThis, false, params.namespace );\n listenerRegistry?.emit( [ descriptor ], { eventIsArrayMethodDescriptor: true } );\n }\n _wq( originalThis ).set( '$length', originalThis.length );\n returnValue = batch(\n originalThis,\n () => exec( target, 'apply', { thisArgument/*proxy wrappers allowed; in fact is why it works*/, argumentsList }, receiver, params ),\n params\n );\n _wq( originalThis ).delete( '$length' );\n } else {\n returnValue = exec( target, 'apply', { thisArgument: originalThis, argumentsList }, receiver, params );\n }\n return returnValue;\n}\n\n/**\n * Performs a \"setPrototypeOf\" operation.\n *\n * @param Array|Object\t target\n * @param Anyr\t proto\n * @param Function\t receiver\n * @param Object\t\t params\n *\n * @return Any\n */\nexport function setPrototypeOf( target, proto, receiver = x => x, params = {} ) {\n return exec( target, 'setPrototypeOf', { proto }, receiver, params );\n}\n\n/**\n * Performs a \"preventExtension\" operation.\n *\n * @param Array|Object\t target\n * @param Function\t receiver\n * @param Object\t\t params\n *\n * @return Any\n */\nexport function preventExtensions( target, receiver = x => x, params = {} ) {\n return exec( target, 'preventExtensions', {}, receiver, params );\n}\n\n/* ---------------HELPER APIs--------------- */\n\n/**\n * Adds an observer to a target's registry.\n *\n * @param Array|Object\t target\n * @param String|Object\t prop\n * @param Function\t receiver\n * @param Object\t\t params\n *\n * @return Function: AbortController\n */\nfunction bind( target, prop, receiver, params = {} ) {\n const controller = new AbortController;\n env.setMaxListeners?.( 0, controller.signal );\n if ( params.signal ) { params.signal.addEventListener( 'abort', () => controller.abort() ); }\n const $params = { ...params, signal: controller.signal };\n const listenerRegistry = ListenerRegistry.getInstance( target, true, $params.namespace );\n const childRegistrations = new Map;\n return function emit( descriptor_s = [], prevRegistration = null ) {\n let flags, registrationNext, isExisting;\n if ( isPropsList( prop ) ) {\n if ( prevRegistration ) {\n isExisting = true;\n registrationNext = prevRegistration;\n for ( const descriptor of descriptor_s ) {\n childRegistrations.get( descriptor.key )?.remove();\n childRegistrations.delete( descriptor.key );\n }\n } else {\n registrationNext = listenerRegistry.addRegistration( prop, emit, $params );\n }\n flags = { signal: registrationNext.signal, childRegistrations };\n } else {\n prevRegistration?.remove();\n registrationNext = listenerRegistry.addRegistration( prop, emit, $params );\n flags = { signal: registrationNext.signal };\n }\n // ------------------\n if ( $params.childRegistrations && $params.keyInParent ) {\n $params.childRegistrations.set( $params.keyInParent, registrationNext );\n }\n // ------------------\n if ( arguments.length ) {\n const handlerReturnValue = receiver( descriptor_s, flags );\n if ( arguments.length > 1 ) return handlerReturnValue;\n }\n return controller;\n };\n}\n\n/**\n * Performs an operation of the given \"type\".\n *\n * @param Array|Object\t target\n * @param String\t\t operation\n * @param Object\t\t payload\n * @param Function\t receiver\n * @param Object\t\t params\n *\n * @return Any\n */\nfunction exec( target, operation, payload = {}, receiver = x => x, params = {} ) {\n // ---------\n target = resolveObj( target );\n if ( _isObject( receiver ) ) { [ params, receiver ] = [ receiver, x => x ]; } \n // ---------\n function defaultExec( descriptor, result ) {\n if ( arguments.length > 1 ) return receiver( result );\n return receiver( ( Reflect[ operation ] || Object[ operation ] )( target, ...Object.values( payload ) ) );\n }\n // ---------\n const descriptor = new Descriptor( target, { operation, ...payload } );\n const trapsRegistry = TrapsRegistry.getInstance( target, false, params.namespace );\n if ( trapsRegistry ) {\n return trapsRegistry.emit( descriptor, defaultExec );\n }\n return defaultExec( descriptor );\n}\n\n// Asks if prop is a multi-result field\nfunction isPropsList( prop ) {\n return prop === Infinity || Array.isArray( prop );\n}\n\n// Resolves obj down to it's self\nfunction resolveObj( obj, assert = true, probePropertyDescriptors = true ) {\n\tif ( ( !obj || !_isTypeObject( obj ) ) && assert ) throw new Error( `Object must be of type object or array! \"${ _getType( obj ) }\" given.` );\n if ( obj instanceof Descriptor ) {\n if ( obj.type === 'def' && probePropertyDescriptors ) {\n obj = typeof obj.value.get === 'function' ? obj.value.get() : obj.value.value;\n } else {\n obj = obj.value;\n }\n }\n\treturn obj && unproxy( obj );\n}\n\n// Resolves prop down to actual keys\nfunction resolveProps( obj, prop, receiver, params = {} ) {\n if ( prop === Infinity ) {\n if ( params.level && !_isTypeObject( obj ) ) return receiver( [] );\n return receiver( Object.entries( Object.getOwnPropertyDescriptors( obj ) ).filter( ( [ , p ] ) => p.writable !== false && !p.get && !p.set ).map( ( [ name ] ) => name ) );\n }\n return receiver( _arrFrom( prop, false ) );\n}\n", "\n/**\n * @imports\n */\nimport _isArray from '../js/isArray.js';\nimport _isTypeArray from '../js/isTypeArray.js';\nimport _isEmpty from '../js/isEmpty.js';\nimport _isObject from '../js/isObject.js';\n\n/**\n * Casts an array-like object to an array.\n *\n * @param mixed \tval\n * @param bool\t \tcastObject\n *\n * @return array\n */\nexport default function(val, castObject = true) {\n\tif (_isArray(val)) {\n\t\treturn val;\n\t};\n\tif (!castObject && _isObject(val)) {\n\t\treturn [val];\n\t};\n\tif (val !== false && val !== 0 && _isEmpty(val)) {\n\t\treturn [];\n\t};\n\tif (_isTypeArray(val)) {\n\t\treturn Array.prototype.slice.call(val);\n\t};\n\tif (_isObject(val)) {\n\t\treturn Object.values(val);\n\t};\n\treturn [val];\n};\n", "\n/**\n * @imports\n */\nimport { _wq as __wq } from '@webqit/util/js/index.js';\n\nexport const _wq = ( target, ...args ) => __wq( target, 'observerAPI', ...args );\n\nexport const _await = ( value, callback ) => value instanceof Promise ? value.then( callback ) : callback( value );\n\nexport const env = {};\n", "\n/**\n * ---------------------------\n * The Registration class\n * ---------------------------\n */\n\nexport default class Registration {\n\t\n\t/**\n\t * Initializes the instance.\n\t *\n\t * @param Registry\t\t\tregistry\n\t * @param object\t\t\tdfn\n\t *\n\t * @return void\n\t */\n\tconstructor( registry, dfn ) {\n\t\tthis.registry = registry;\n\t\tObject.assign( this, { ...dfn, target: registry.target } );\n\t\tif ( this.params.signal ) {\n\t\t\tthis.params.signal.addEventListener( 'abort', () => this.remove() );\n\t\t}\n\t}\n\n\t/**\n\t * Sets a \"disconnected\" flag on the Registration.\n\t *\n\t * @return void\n\t */\n\tremove() {\n\t\tthis.removed = true;\n\t\treturn this.registry.removeRegistration( this );\n\t}\n}", "\n/**\n * @imports\n */\nimport { _from as _arrFrom } from '@webqit/util/arr/index.js';\nimport Registration from './Registration.js';\nimport { _await, env } from '../util.js';\n\n/**\n * ---------------------------\n * The ListenerRegistration class\n * ---------------------------\n */\n\nexport default class ListenerRegistration extends Registration {\n\t\n\t/**\n\t * @constructor\n\t */\n\tconstructor() {\n\t\tsuper( ...arguments );\n\t\tthis.emit.currentRegistration = this;\n\t\tObject.defineProperty( this, 'abortController', { value: new AbortController } );\n\t\tObject.defineProperty( this, 'signal', { value: this.abortController.signal } );\n\t\tenv.setMaxListeners?.( 0, this.signal );\n\t}\n\n\t/**\n\t * De-registers the instance.\n\t * \n\t * @return Void\n\t */\n\tremove() {\n\t\tthis.abortController.abort();\n\t\tsuper.remove();\n\t}\n\n\t/**\n\t * Calls the observer's handler function\n\t * on matching with the event's fields.\n\t *\n\t * @param Array\t\t\t \t\tevents\n\t *\n\t * @return Any\n\t */\n\tfire( events ) {\n\t\tif ( this.emit.recursionTarget && ![ 'inject', 'force-async', 'force-sync' ].includes( this.params.recursions ) ) return;\n\t\tlet matches = events, filter = this.filter;\n\t\tif ( filter !== Infinity && ( filter = _arrFrom( filter, false ) ) ) {\n\t\t\tmatches = events.filter( event => filter.includes( event.key ) );\n\t\t}\n\t\tif ( this.params.diff ) {\n\t\t\tmatches = matches.filter( event => event.type !== 'set' || event.value !== event.oldValue );\n\t\t}\n\t\tif ( !matches.length ) return;\n\t\tif ( [ 'inject', 'defer' ].includes( this.params.recursions ) ) {\n\t\t\tif ( this.emit.recursionTarget ) {\n\t\t\t\tthis.emit.recursionTarget.push( ...matches );\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.emit.recursionTarget = this.params.recursions === 'inject' ? matches : [];\n\t\t}\n\t\tconst $ret = this.filter === Infinity || Array.isArray( this.filter )\n\t\t\t? this.emit( matches, this )\n\t\t\t: this.emit( matches[ 0 ], this );\n\t\t// NOTEL: on calling emit(), this registration has expired and a new one active!!!\n\t\treturn _await( $ret, ret => {\n\t\t\tconst recursions = this.emit.recursionTarget;\n\t\t\tdelete this.emit.recursionTarget;\n\t\t\tif ( this.params.recursions === 'defer' ) {\n\t\t\t\tif ( recursions?.length ) return this.emit.currentRegistration.fire( recursions );\n\t\t\t}\n\t\t\treturn ret;\n\t\t} );\n\t}\n}\n", "\n/**\n * @imports\n */\nimport { _isTypeObject, _getType } from '@webqit/util/js/index.js';\nimport { _from as _arrFrom, _intersect, _equals as _arrEquals } from '@webqit/util/arr/index.js';\nimport { _wq } from '../util.js';\n\n/**\n * ---------------------------\n * The Registry class\n * ---------------------------\n */\n\nexport default class Registry {\n\t\n\t/**\n\t * Initializes the instance.\n\t *\n\t * @param object\ttarget\n\t * \n\t * @return void\n\t */\n\tconstructor( target ) {\n\t\tthis.target = target;\n\t\tthis.entries = [];\n\t}\n\t\n\t/**\n\t * Adds an Registration instance\n\t * with optional tags.\n\t *\n\t * @param Registration\t\tregistration\n\t *\n\t * @return Registration\n\t */\n\taddRegistration( registration ) {\n\t\tthis.entries.push( registration );\n\t\treturn registration;\n\t}\n\t\n\t/**\n\t * Removes registrations by reference.\n\t *\n\t * @param Registration\t\tregistration\n\t *\n\t * @return void\n\t */\n\tremoveRegistration( registration ) {\n\t\tthis.entries = this.entries.filter( _entry => _entry !== registration );\n\t}\n\t\t\n\t/**\n\t * Returns a observer-specific object embedded on an element.\n\t *\n\t * @param string\t\ttype\n\t * @param array|object\ttarget\n\t * @param bool \tcreateIfNotExists\n\t * @param string \tnamespace\n\t *\n\t * @return Registry\n\t */\n\tstatic _getInstance( type, target, createIfNotExists = true, namespace = this.__namespace ) {\n\t\tif ( !_isTypeObject( target ) ) throw new Error( `Subject must be of type object; \"${ _getType( target ) }\" given!` );\n\t\tlet ImplementationClass = this;\n\t\tif ( namespace && _wq( globalThis, 'observerAPI', 'namespaces' ).has( type + '-' + namespace ) ) {\n\t\t\tImplementationClass = _wq( globalThis, 'observerAPI', 'namespaces' ).get( type + '-' + namespace );\n\t\t\ttype += '-' + namespace\n\t\t}\n\t\tif ( !_wq( target, 'registry' ).has( type ) && createIfNotExists ) {\n\t\t\t_wq( target, 'registry' ).set( type, new ImplementationClass( target ) );\n\t\t}\n\t\treturn _wq( target, 'registry' ).get( type );\n\t}\n\n\t/**\n\t * Extend a Fireable Class with a namespace.\n\t *\n\t * @param string\t\tnamespace\n\t * @param class \tImplementationClass\n\t *\n\t * @return void|class\n\t */\n\tstatic _namespace( type, namespace, ImplementationClass = null ) {\n\t\ttype += '-' + namespace;\n\t\tif ( arguments.length === 2 ) return _wq( globalThis, 'observerAPI', 'namespaces' ).get( type );\n\t\tif ( !( ImplementationClass.prototype instanceof this ) ) {\n\t\t\tthrow new Error( `The implementation of the namespace ${ this.name }.${ namespace } must be a subclass of ${ this.name }.` );\n\t\t}\n\t\t_wq( globalThis, 'observerAPI', 'namespaces' ).set( type, ImplementationClass );\n\t\tImplementationClass.__namespace = namespace;\n\t}\n}", "\n/**\n * ---------------------------\n * The Descriptor class\n * ---------------------------\n */\n\nexport default class Descriptor {\n\n\t/**\n\t * Initializes the instance.\n\t *\n\t * @param array|object\ttarget\n\t * @param object\t\tdfn\n\t *\n\t * @return void\n\t */\n\tconstructor(target, dfn) {\n\t\tthis.target = target;\n\t\tif (!(dfn.operation)) throw new Error('Descriptor operation must be given in definition!');\n\t\tObject.assign(this, dfn);\n\t}\n\n\tget [Symbol.toStringTag]() {\n\t\treturn 'Descriptor';\n\t}\n\n\tstatic [Symbol.hasInstance](instance) {\n\t\treturn instance?.[Symbol.toStringTag] === 'Descriptor'\n\t\t\t&& instance.operation\n\t}\n}", "\n/**\n * @imports\n */\nimport ListenerRegistration from './ListenerRegistration.js';\nimport Registry from './Registry.js';\nimport { _await } from '../util.js';\nimport Descriptor from './Descriptor.js';\n\n/**\n * ---------------------------\n * The ListenerRegistry class\n * ---------------------------\n */\n\nexport default class ListenerRegistry extends Registry {\n\n\tstatic getInstance( target, createIfNotExists = true, namespace = null ) {\n\t\treturn super._getInstance( 'listeners', ...arguments );\n\t}\n\n\tstatic namespace( namespace, ImplementationClass = null ) {\n\t\treturn super._namespace( 'listeners', ...arguments );\n\t}\n\n\t/**\n\t * @constructor\n\t */\n\tconstructor( target ) {\n\t\tsuper( target );\n\t\tthis.batches = [];\n\t}\n\t\n\t/**\n\t * @addRegistration\n\t */\n\taddRegistration( filter, emit, params ) {\n\t\treturn super.addRegistration( new ListenerRegistration( this, { filter, emit, params } ) );\n\t}\n\t\n\t/**\n\t * Fires all observers with the given evt (change).\n\t *\n\t * @param Arrayn events\n\t *\n\t * @return Void\n\t */\n\temit( events, { eventsArePropertyDescriptors = false, eventIsArrayMethodDescriptor = false } = {} ) {\n\t\tif ( this.batches.length ) {\n\t\t\tconst arrayMethodName = this.batches[ 0 ].params.arrayMethodName;\n\t\t\tthis.batches[ 0 ].snapshots.push( {\n\t\t\t\tevents: [ ...events ],\n\t\t\t\tarrayMethodName, // Typically from array operations\n\t\t\t\teventsArePropertyDescriptors, // Typically from defineProperty() operations\n\t\t\t\teventIsArrayMethodDescriptor // Typically from array method operations\n\t\t\t} );\n\t\t\treturn\n\t\t}\n\t\tthis.$emit( this.entries, [ {\n\t\t\tevents, \n\t\t\teventsArePropertyDescriptors, // Typically from defineProperty() operations\n\t\t\teventIsArrayMethodDescriptor // Typically from array method operations\n\t\t} ] );\n\t}\n\n\t$emit( listeners, snapshots ) {\n\t\t// Analyse listener modes\n\t\tlet listenersLength = 0,\n\t\tlistenersAskingEventsWithPropertyDescriptors = 0,\n\t\tlistenersAskingArrayMethodDescriptors = 0;\n\t\tfor ( const listener of listeners ) {\n\t\t\tlistenersLength += 1;\n\t\t\tif ( listener.params.withPropertyDescriptors ) {\n\t\t\t\tlistenersAskingEventsWithPropertyDescriptors += 1;\n\t\t\t}\n\t\t\tif ( listener.params.withArrayMethodDescriptors ) {\n\t\t\t\tlistenersAskingArrayMethodDescriptors += 1;\n\t\t\t}\n\t\t}\n\t\t// Sort events\n\t\tconst events_with_PropertyDescriptors_with_ArrayMethodDescriptors = [], events_with_PropertyDescriptors_without_ArrayMethodDescriptors = [];\n\t\tconst events_without_PropertyDescriptors_with_ArrayMethodDescriptors = [], events_without_PropertyDescriptors_without_ArrayMethodDescriptors = [];\n\t\tfor ( const snapshot of snapshots ) {\n\t\t\tconst arrayMethodName = snapshot.arrayMethodName;\n\t\t\tconst eventsArePropertyDescriptors = snapshot.eventsArePropertyDescriptors;\n\t\t\tconst eventIsArrayMethodDescriptor = snapshot.eventIsArrayMethodDescriptor;\n\t\t\tfor ( const event of snapshot.events ) {\n\t\t\t\tif ( arrayMethodName ) {\n\t\t\t\t\tevent.operation = arrayMethodName;\n\t\t\t\t}\n\t\t\t\t// Some opting in to PropertyDescriptors\n\t\t\t\tif ( listenersAskingEventsWithPropertyDescriptors ) {\n\t\t\t\t\t//if ( !arrayMethodName ) { }\n\t\t\t\t\tlistenersAskingArrayMethodDescriptors && // Some opting in to ArrayMethodDescriptors\n\t\t\t\t\tevents_with_PropertyDescriptors_with_ArrayMethodDescriptors.push( event );\n\t\t\t\t\tif ( !eventIsArrayMethodDescriptor ) {\n\t\t\t\t\t\tlistenersAskingArrayMethodDescriptors !== listenersLength && // Some opting out of ArrayMethodDescriptors\n\t\t\t\t\t\tevents_with_PropertyDescriptors_without_ArrayMethodDescriptors.push( event );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// Some opting out of PropertyDescriptors\n\t\t\t\tif ( listenersAskingEventsWithPropertyDescriptors !== listenersLength ) {\n\t\t\t\t\tlet $event = event;\n\t\t\t\t\tif ( eventsArePropertyDescriptors ) {\n\t\t\t\t\t\tconst { target, type, ...details } = event;\n\t\t\t\t\t\t$event = new Descriptor( target, { type: 'set', ...details } );\n\t\t\t\t\t\tObject.defineProperty( $event, 'value', 'get' in details.value ? { get: () => details.value.get() } : { value: details.value.value } )\n\t\t\t\t\t\tif ( details.oldValue ) {\n\t\t\t\t\t\t\tObject.defineProperty( $event, 'oldValue', 'get' in details.oldValue ? { get: () => details.oldValue.get() } : { value: details.oldValue.value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t//if ( !arrayMethodName/*Although eedless as is typically mutually exclusive to eventsArePropertyDescriptors*/ ) { }\n\t\t\t\t\tlistenersAskingArrayMethodDescriptors && // Some opting in to ArrayMethodDescriptors\n\t\t\t\t\tevents_without_PropertyDescriptors_with_ArrayMethodDescriptors.push( $event );\n\t\t\t\t\tif ( !eventIsArrayMethodDescriptor ) { // Although eedless as is typically already implied by eventsArePropertyDescriptors\n\t\t\t\t\t\tlistenersAskingArrayMethodDescriptors !== listenersLength && // Some opting out of ArrayMethodDescriptors\n\t\t\t\t\t\tevents_without_PropertyDescriptors_without_ArrayMethodDescriptors.push( $event );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// Dispatch\n\t\tfor ( const listener of listeners ) {\n\t\t\tif ( listener.params.withPropertyDescriptors ) {\n\t\t\t\tif ( listener.params.withArrayMethodDescriptors ) {\n\t\t\t\t\tevents_with_PropertyDescriptors_with_ArrayMethodDescriptors.length &&\n\t\t\t\t\tlistener.fire( events_with_PropertyDescriptors_with_ArrayMethodDescriptors );\n\t\t\t\t} else {\n\t\t\t\t\tevents_with_PropertyDescriptors_without_ArrayMethodDescriptors.length &&\n\t\t\t\t\tlistener.fire( events_with_PropertyDescriptors_without_ArrayMethodDescriptors );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ( listener.params.withArrayMethodDescriptors ) {\n\t\t\t\t\tevents_without_PropertyDescriptors_with_ArrayMethodDescriptors.length &&\n\t\t\t\t\tlistener.fire( events_without_PropertyDescriptors_with_ArrayMethodDescriptors );\n\t\t\t\t} else {\n\t\t\t\t\tevents_without_PropertyDescriptors_without_ArrayMethodDescriptors.length &&\n\t\t\t\t\tlistener.fire( events_without_PropertyDescriptors_without_ArrayMethodDescriptors );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Fires all observers with the given evt (change).\n\t *\n\t * @param Arrayn events\n\t *\n\t * @return Void\n\t */\n\tbatch( callback, params = {} ) {\n\t\tthis.batches.unshift( { entries: [ ...this.entries ], snapshots: [], params } );\n\t\tconst returnValue = callback();\n\t\treturn _await( returnValue, returnValue => {\n\t\t\tconst batch = this.batches.shift();\n\t\t\tif ( !batch.snapshots.length ) return returnValue;\n\t\t\tthis.$emit( batch.entries, batch.snapshots );\n\t\t\treturn returnValue;\n\t\t} );\n\t}\n\n}\n", "\n/**\n * @imports\n */\nimport Registration from './Registration.js';\n\n/**\n * ---------------------------\n * The TrapsRegistration class\n * ---------------------------\n */\n\nexport default class TrapsRegistration extends Registration {\n\t\n\t/**\n\t * Calls the observer's handler function\n\t * on matching with the descriptor's fields.\n\t *\n\t * @param Descriptor\t\t\t \tdescriptor\n\t * @param function\t\t\t\t\tnext\n\t * @param mixed\t\t\t\t\t \trecieved\n\t *\n\t * @return void\n\t */\n\texec( descriptor, next, recieved ) {\n\t\tif ( this.running || !this.traps[ descriptor.operation ] ) {\n\t\t\treturn next( ...Array.prototype.slice.call( arguments, 2 ) );\n\t\t}\n\t\tthis.running = true;\n\t\treturn this.traps[ descriptor.operation ]( descriptor, recieved, ( ...args ) => {\n\t\t\tthis.running = false;\n\t\t\treturn next( ...args );\n\t\t} );\n\t}\n}", "\n/**\n * @imports\n */\nimport TrapsRegistration from './TrapsRegistration.js';\nimport Registry from './Registry.js';\n\n/**\n * ---------------------------\n * The TrapsRegistry class\n * ---------------------------\n */\n\nexport default class TrapsRegistry extends Registry {\n\n\tstatic getInstance( target, createIfNotExists = true, namespace = null ) {\n\t\treturn super._getInstance( 'traps', ...arguments );\n\t}\n\n\tstatic namespace( namespace, ImplementationClass = null ) {\n\t\treturn super._namespace( 'traps', ...arguments );\n\t}\n\t\n\t/**\n\t * @inheritdoc\n\t */\n\taddRegistration( dfn ) {\n\t\treturn super.addRegistration( new TrapsRegistration( this, dfn ) );\n\t}\n\n\t/**\n\t * Fires all interceptors with the given action.\n\t *\n\t * @param Descriptor\t\tdescriptor\n\t * @param function\t\t\tdefaultHandler\n\t *\n\t * @return mixed\n\t */\n\temit( descriptor, defaultHandler = null ) {\n\t\tconst $this = this;\n\t\treturn ( function next( index, ..._args ) {\n\t\t\tconst registration = $this.entries[ index ];\n\t\t\tif ( registration ) {\n\t\t\t\treturn registration.exec( descriptor, ( ...args ) => {\n\t\t\t\t\treturn next( index + 1, ...args );\n\t\t\t\t}/*next*/, ..._args );\n\t\t\t}\n\t\t\treturn defaultHandler ? defaultHandler( descriptor, ..._args ) : _args[ 0 ];\n\t\t} )( 0 );\n\t}\n}", "\n/**\n * @imports\n */\nimport { _from as _arrFrom } from '@webqit/util/arr/index.js';\nimport { _isClass, _isFunction, _isTypeObject, _getType } from '@webqit/util/js/index.js';\nimport { set, deleteProperty, has, get, ownKeys, defineProperty, getOwnPropertyDescriptor } from \"./main.js\";\nimport { apply, construct, getPrototypeOf, setPrototypeOf, isExtensible, preventExtensions } from \"./main.js\";\nimport { _wq } from './util.js';\n\n/* ---------------ACCESSORIZE METHODS--------------- */\n\n/**\n * Accessorizes props.\n *\n * @param Array|Object\ttarget\n * @param String|Array\tprops\n * @param Object\t\tparams\n *\n * @return Array\n */\nconst symWQOriginal = Symbol('wqOriginal');\nexport function accessorize( target, props, params = {} ) {\n target = resolveTarget( target );\n const accessorizedProps = _wq( target, 'accessorizedProps' );\n // ---------\n function getDescriptorDeep( prop ) {\n let descriptor, proto = target;\n do {\n descriptor = Object.getOwnPropertyDescriptor( proto, prop );\n } while ( !descriptor && ( proto = Object.getPrototypeOf( proto ) ) );\n return descriptor \n ? { proto, descriptor } \n : { descriptor: { value: undefined, configurable: true, enumerable: true, writable: true } };\n }\n // ---------\n function accessorizeProp( prop ) {\n if ( accessorizedProps.has( prop + '' ) ) return true;\n // ------------------\n // Current Descriptor Record\n const currentDescriptorRecord = getDescriptorDeep( prop );\n currentDescriptorRecord.getValue = function( withPropertyDescriptors = false ) {\n if ( withPropertyDescriptors ) return this.descriptor;\n return this.descriptor.get ? this.descriptor.get() : this.descriptor.value;\n };\n currentDescriptorRecord.setValue = function( value, withPropertyDescriptors = false ) {\n this.dirty = true;\n if ( withPropertyDescriptors ) { this.descriptor = value; return; }\n return this.descriptor.set ? this.descriptor.set( value ) !== false : ( this.descriptor.value = value, true );\n };\n currentDescriptorRecord.intact = function() {\n const currentDescriptor = Object.getOwnPropertyDescriptor( target, prop );\n return currentDescriptor?.get === accessorization.get \n && currentDescriptor?.set === accessorization.set\n && accessorizedProps.get( prop + '' ) === this;\n };\n currentDescriptorRecord.restore = function() {\n if ( !this.intact() ) return false;\n if ( ( this.proto && this.proto !== target ) || ( !this.proto && !this.dirty ) ) { delete target[ prop ]; }\n else { Object.defineProperty( target, prop, this.descriptor ); }\n accessorizedProps.delete( prop + '' );\n return true;\n };\n accessorizedProps.set( !isNaN( prop ) ? parseInt( prop ) : prop, currentDescriptorRecord );\n // ------------------\n // enumerable, configurable\n const { enumerable = true } = currentDescriptorRecord.descriptor;\n const accessorization = { enumerable, configurable: true };\n // set, get\n if ( ( 'value' in currentDescriptorRecord.descriptor ) || currentDescriptorRecord.descriptor.set ) {\n accessorization.set = function ( value ) { return set( this, prop, value, params ); };\n }\n if ( ( 'value' in currentDescriptorRecord.descriptor ) || currentDescriptorRecord.descriptor.get ) {\n accessorization.get = function () { return get( this, prop, params ); };\n }\n try {\n Object.defineProperty( target, prop, accessorization );\n return true;\n } catch( e ) {\n accessorizedProps.delete( prop + '' );\n return false;\n }\n }\n const _props = Array.isArray( props ) ? props : (\n props === undefined ? Object.keys( target ) : [ props ]\n );\n const statuses = _props.map( accessorizeProp );\n return props === undefined || Array.isArray( props ) \n ? statuses \n : statuses[ 0 ];\n}\n\n/**\n * Unaccessorizes previously accessorized props.\n *\n * @param Array|Object\ttarget\n * @param String|Array\tprops\n * @param Object\t\tparams\n *\n * @return Array\n */\nexport function unaccessorize( target, props, params = {} ) {\n target = resolveTarget( target );\n const accessorizedProps = _wq( target, 'accessorizedProps' );\n function unaccessorizeProp( prop ) {\n if ( !accessorizedProps.has( prop + '' ) ) return true;\n return accessorizedProps.get( prop + '' ).restore();\n }\n const _props = Array.isArray( props ) ? props : (\n props === undefined ? Object.keys( target ) : [ props ]\n );\n const statuses = _props.map( unaccessorizeProp );\n return props === undefined || Array.isArray( props ) \n ? statuses \n : statuses[ 0 ];\n}\n\n/* ---------------PROXY METHODS--------------- */\n\n/**\n * Returns an object as a proxy and binds all instance methods\n * to the proxy instead of the object itself.\n *\n * @param Array|Object\t\ttarget\n * @param Object\t\t params\n * @param Function\t\t extendCallback\n *\n * @return Proxy\n */\nexport function proxy( target, params = {}, extendCallback = undefined ) {\n // Resolve target\n const originalTarget = resolveTarget( target );\n // Return same proxy instance?\n if ( typeof params.membrane === 'boolean' ) throw new Error( `The params.membrane parameter cannot be of type boolean.` );\n if ( params.membrane && _wq( originalTarget, 'membraneRef' ).has( params.membrane ) ) { return _wq( originalTarget, 'membraneRef' ).get( params.membrane ); }\n const traps = {\n apply: ( target, thisArgument, argumentsList ) => apply( target, thisArgument, argumentsList, undefined, params ),\n construct: ( target, argumentsList, newTarget = null ) => construct( target, argumentsList, newTarget, params ),\n defineProperty: ( target, propertyKey, attributes ) => defineProperty( target, propertyKey, attributes, params ),\n deleteProperty: ( target, propertyKey ) => deleteProperty( target, propertyKey, params ),\n get: ( target, propertyKey, receiver = null ) => {\n if ( propertyKey === symWQOriginal ) {\n return originalTarget;\n }\n const $params = { ...params, receiver };\n const returnValue = get( target, propertyKey, $params );\n // Auto-wrap array methods\n if ( Array.isArray( target ) && typeof returnValue === 'function' && !/^class\\s?/.test(Function.prototype.toString.call( returnValue ) ) ) {\n return proxy( returnValue, { ...params, arrayMethodName: propertyKey, membrane: receiver/* the instance obj that will be the thisArgument at apply(). Much like function.bind() */ }, extendCallback );\n }\n // Auto-wrap others if so specified\n if ( params.chainable && _isTypeObject( returnValue ) && propertyKey !== 'prototype' && !( typeof returnValue === 'function' && /^class\\s?|\\{\\s\\[native\\scode\\]\\s\\}$/.test(Function.prototype.toString.call( returnValue ) ) ) ) {\n return proxy( returnValue, params, extendCallback );\n }\n return returnValue;\n },\n getOwnPropertyDescriptor: ( target, propertyKey ) => getOwnPropertyDescriptor( target, propertyKey, params ),\n getPrototypeOf: target => getPrototypeOf( target, params ),\n has: ( target, propertyKey ) => has( target, propertyKey, params ),\n isExtensible: target => isExtensible( target, params ),\n ownKeys: target => ownKeys( target, params ),\n preventExtensions: target => preventExtensions( target, params ),\n set: ( target, propertyKey, value, receiver = null ) => set( target, propertyKey, value, { ...params, receiver } ),\n setPrototypeOf: ( target, prototype ) => setPrototypeOf( target, prototype, params ),\n };\n // Extend...\n const $traps = extendCallback?.( traps ) || traps;\n // Create proxy\n const $proxy = new Proxy( originalTarget, $traps );\n if ( params.membrane ) { _wq( originalTarget, 'membraneRef' ).set( params.membrane, $proxy ); }\n\treturn $proxy;\n}\n\n/**\n * Returns the original object earlier proxied by proxy().\n *\n * @param Proxy|Any\t\ttarget\n *\n * @return Any\n */\nexport function unproxy( target ) {\n // Proxy targets are mapped to their own instances internally\n return target && target[ symWQOriginal ] || target;\n}\n\n/* ---------------HELPERS--------------- */\n\n/** \n * Ensures target object is an object or array.\n *\n * @param Array|Object\ttarget\n *\n * @return Array|Object\n */\nfunction resolveTarget( target ) {\n\tif ( !target || !_isTypeObject( target ) ) throw new Error('Target must be of type object!');\n\treturn unproxy( target );\n}\n", "\n/**\n * @imports\n */\nimport * as main from './main.js';\nimport * as actors from './actors.js';\n\nexport const Observer = { ...main, ...actors };\n\nexport { default as ListenerRegistry } from './core/ListenerRegistry.js';\nexport { default as TrapsRegistry } from './core/TrapsRegistry.js';\nexport { default as Descriptor } from './core/Descriptor.js';\n\nexport default Observer;", "import { _isString, _isNumeric, _isObject, _isTypeObject } from '@webqit/util/js/index.js';\nimport { Observer } from '@webqit/observer';\n\nexport class URLSearchParamsPlus extends URLSearchParams {\n\n #tree;\n\n #compatMode;\n get compatMode() { return this.#compatMode; }\n #compatModeKeys = new Set;\n #prettyPrint;\n\n #sorted = false;\n #changeCallback;\n _changeCallbackGC;\n\n constructor(init = {}, { compatMode = true, prettyPrint = false, changeCallback = null } = {}) {\n super();\n this.#compatMode = compatMode;\n this.#prettyPrint = prettyPrint;\n\n let tree;\n if (init instanceof URLSearchParamsPlus) {\n tree = structuredClone(init.json());\n if (compatMode) {\n this.#compatModeKeys = new Set(init.keys());\n }\n } else if (init instanceof URLSearchParams\n || init instanceof FormData) {\n tree = Object.fromEntries(init);\n if (compatMode) {\n this.#compatModeKeys = new Set(init.keys());\n }\n } else if (_isString(init)) {\n init = decodeURIComponent(init.replace(/^\\?/, ''));\n tree = this.constructor.parse(init, compatMode ? false : true);\n if (compatMode) {\n this.#compatModeKeys = new Set(\n init.split('&').map((q) => q.split('=')[0])\n );\n }\n } else if (Array.isArray(init)) {\n tree = this.constructor.fromEntries(init);\n if (compatMode) {\n this.#compatModeKeys = new Set(init.map(([k]) => k));\n }\n } else if (_isObject(init)) {\n tree = init;\n if (compatMode) {\n this.constructor.reduceValue(init, '', (v, path, next) => {\n if (next) return next;\n if (/\\[\\d+\\]$/.test(path)) {\n // Remove the trailing sqaure brackets\n [, path] = /^(.*)\\[\\d+\\]$/.exec(path);\n }\n this.#compatModeKeys.add(path);\n });\n }\n } else {\n tree = {};\n }\n\n this._changeCallback = changeCallback;\n this._resetJson(tree);\n }\n\n _resetJson(tree) {\n this.#tree = Observer.proxy(tree);\n if (this.#changeCallback) {\n this._changeCallbackGC?.abort();\n this._changeCallbackGC = Observer.observe(this.#tree, Observer.subtree(), this.#changeCallback);\n }\n }\n\n /* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Instance API \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n get(path) {\n const value = this.#get(path);\n if (this.#compatMode\n && Array.isArray(value)) return value[0];\n return value;\n }\n\n #get(path, all = false) {\n if (this.#compatMode\n && !this.#compatModeKeys.has(path)) {\n return null;\n }\n const value = this.constructor.get(this.#tree, path, all);\n if (value === undefined) return null;\n\n if (Array.isArray(value)) {\n if (this.#compatMode) {\n return value.map((v) => typeof v === 'number' ? v + '' : v);\n }\n return value.map(v =>\n _isObject(v) ? new URLSearchParamsPlus(v, { compatMode: this.#compatMode }) : v\n );\n }\n\n if (!this.#compatMode && _isObject(value)) {\n return new URLSearchParamsPlus(value, { compatMode: this.#compatMode });\n }\n\n if (this.#compatMode && typeof value === 'number') {\n return value + '';\n }\n\n return value;\n }\n\n getAll(path) {\n const value = this.#get(path, true);\n if (value === null) return [];\n return Array.isArray(value) ? value : [value];\n }\n\n set(path, value) {\n if (this.#compatMode) {\n this.#compatModeKeys.add(path);\n }\n this.constructor.set(this.#tree, path, value);\n return this;\n }\n\n append(path, value) {\n if (this.#compatMode) {\n this.#compatModeKeys.add(path);\n }\n this.constructor.set(this.#tree, path, value, true/* appendIfExists */);\n return this;\n }\n\n has(path) {\n if (this.#compatMode\n && !this.#compatModeKeys.has(path)) {\n return false;\n }\n return this.constructor.get(this.#tree, path) !== undefined;\n }\n\n delete(path) {\n if (this.#compatMode\n && !this.#compatModeKeys.has(path)) {\n return;\n }\n const parts = this.constructor.parsePath(path);\n const key = parts.pop();\n const parent = parts.length\n ? this.constructor.get(this.#tree, parts)\n : this.#tree;\n\n if (_isObject(parent)) {\n Observer.deleteProperty(parent, key);\n }\n }\n\n sort() {\n this.#sorted = true;\n return this;\n }\n\n json() { return Observer.unproxy(this.#tree); }\n\n stringify({ prettyPrint = this.#prettyPrint } = {}) {\n return this.constructor.stringify(this.#tree, {\n only: this.#compatMode && this.#compatModeKeys,\n sorted: this.#sorted,\n prettyPrint,\n });\n }\n\n toString() { return this.stringify(); }\n\n entries() {\n const out = [];\n this.constructor.reduceValue(this.#tree, '', (v, path, next) => {\n if (next) return next;\n if (this.#compatMode && !this.#compatModeKeys.has(path)) {\n if (/\\[\\d+\\]$/.test(path)) {\n // Try without the trailing sqaure brackets\n [, path] = /^(.*)\\[\\d+\\]$/.exec(path);\n if (!this.#compatModeKeys.has(path)\n && !this.#compatModeKeys.has(path = `${path}[]`)) return;\n } else return;\n }\n if (this.#compatMode && typeof v === 'number') {\n v = v + '';\n }\n out.push([path, v]);\n });\n return out[Symbol.iterator]();\n }\n\n keys() {\n return Array.from(this.entries(), ([k]) => k)[Symbol.iterator]();\n }\n\n values() {\n return Array.from(this.entries(), ([, v]) => v)[Symbol.iterator]();\n }\n\n forEach(cb, thisArg) {\n for (const [k, v] of this.entries()) {\n cb.call(thisArg, v, k, this);\n }\n }\n\n [Symbol.iterator]() {\n return this.entries();\n }\n\n get size() {\n let c = 0;\n this.forEach(() => c++);\n return c;\n }\n\n /* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Static utilities \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n static parse(str, parseNums = false, delim = '&') {\n const tree = {};\n (str.startsWith('?') ? str.slice(1) : str)\n .split(delim)\n .filter(Boolean)\n .forEach(q => {\n const i = q.indexOf('=');\n const key = i === -1 ? q : q.slice(0, i);\n const val = i === -1 ? '' : q.slice(i + 1);\n this.set(tree, key, val, true/* appendIfExists */, parseNums);\n });\n return tree;\n }\n\n static fromEntries(entries) {\n const tree = {};\n for (const [k, v] of entries) {\n this.set(tree, k, v, true/* appendIfExists */);\n }\n return tree;\n }\n\n static stringify(tree, { sorted = false, only = null, prettyPrint = false, delim = '&' } = {}) {\n const q = [];\n const keys = Object.keys(tree);\n if (sorted) keys.sort();\n\n keys.forEach(k => {\n this.reduceValue(tree[k], k, (v, path, suggested) => {\n if (suggested) return sorted ? [...suggested].sort() : suggested;\n if (only && !only.has(path)) {\n if (/\\[\\d+\\]$/.test(path)) {\n // Try without the trailing sqaure brackets\n [, path] = /^(.*)\\[\\d+\\]$/.exec(path);\n if (!only.has(path)\n && !only.has(path = `${path}[]`)) return;\n } else return;\n }\n if (!prettyPrint) {\n path = encodeURIComponent(path);\n }\n q.push(path + '=' + encodeURIComponent(v));\n }, (prettyPrint ? true : false)/* encodeOffsets */);\n });\n\n return q.join(delim);\n }\n\n static get(tree, path, allowGetAll = false) {\n return this.reducePath(path, tree, (k, t, branch) => {\n if (branch) return branch;\n if (k === '') {\n if (allowGetAll) return t;\n return t?.[0];\n }\n return t?.[k];\n });\n }\n\n static set(tree, path, value, appendIfExists = false, parseNums = false) {\n this.reducePath(path, tree, (k, t, branch) => {\n let v = branch ?? value;\n if (parseNums && /^-?\\d+(\\.\\d+)?$/.test(v + '')) {\n v = parseFloat(v);\n }\n if (k === '' && Array.isArray(t)) Observer.proxy(t).push(v);\n else if (appendIfExists && t?.[k]) {\n if (Array.isArray(t[k])) Observer.proxy(t[k]).push(v);\n else Observer.set(t, k, [t[k], v]);\n } else Observer.set(t, k, v);\n return v;\n });\n }\n\n static reduceValue(value, ctx, cb, encodeOffsets = false) {\n if (_isTypeObject(value)) {\n const keys = Object.keys(value);\n const next = cb(value, ctx, keys);\n if (Array.isArray(next)) {\n next.forEach(k => {\n if (encodeOffsets) {\n k = encodeURIComponent(k);\n }\n this.reduceValue(value[k], ctx ? `${ctx}[${k}]` : k, cb, encodeOffsets)\n });\n return;\n }\n }\n cb(value, ctx);\n }\n\n static reducePath(path, ctx, cb) {\n const parts = this.parsePath(path);\n let t = ctx;\n\n for (let i = 0; i < parts.length; i++) {\n let k = parts[i];\n if (_isNumeric(k)) k = +k;\n\n if (i === parts.length - 1) return cb(k, t);\n\n if (!_isTypeObject(t)) return;\n if (!_isTypeObject(t[k])) {\n const next = parts[i + 1];\n t[k] = cb(k, t, _isNumeric(next) || next === '' ? [] : {});\n }\n t = t[k];\n }\n }\n\n static parsePath(path) {\n if (Array.isArray(path)) return path;\n if (!_isString(path)) return [];\n\n const out = [];\n path.replace(/\\[([^\\]]*)\\]|([^[\\]]+)/g, (_, b, p) => {\n out.push(b ?? p);\n });\n\n return out;\n }\n}\n", "import { _before } from '@webqit/util/str/index.js';\nimport { _isNumeric } from '@webqit/util/js/index.js';\nimport { URLSearchParamsPlus } from '@webqit/url-plus';\nimport { dataType, _meta, _wq } from './messageParserMixin.js';\n\nexport class FormDataPlus extends FormData {\n\n static upgradeInPlace(formData) {\n if (formData instanceof FormDataPlus) return formData;\n return Object.setPrototypeOf(formData, FormDataPlus.prototype);\n }\n\n static json(data = {}, { encodeLiterals = true, meta = false } = {}) {\n const formData = new FormDataPlus;\n let isDirectlySerializable = true;\n\n URLSearchParamsPlus.reduceValue(data, '', (value, contextPath, suggestedKeys = undefined) => {\n if (suggestedKeys) {\n const isJson = dataType(value) === 'json';\n isDirectlySerializable = isDirectlySerializable && isJson;\n return isJson && suggestedKeys;\n }\n\n if (encodeLiterals && [true, false, null].includes(value)) {\n value = new Blob([value + ''], { type: 'application/json' });\n }\n\n formData.append(contextPath, value);\n });\n\n if (meta) return { result: formData, isDirectlySerializable };\n return formData;\n }\n\n async json({ decodeLiterals = true, meta = false } = {}) {\n let isDirectlySerializable = true;\n let json;\n\n for (let [name, value] of this.entries()) {\n if (!json) json = _isNumeric(_before(name, '[')) ? [] : {};\n\n let type = dataType(value);\n if (decodeLiterals\n && ['Blob', 'File'].includes(type)\n && value.type === 'application/json'\n && [4, 5].includes(value.size)) {\n let _value = JSON.parse(await value.text());\n if ([null, true, false].includes(_value)) {\n value = _value;\n type = 'json';\n }\n }\n\n isDirectlySerializable = isDirectlySerializable && type === 'json';\n if (/^[+-]?(?:\\d+\\.?\\d*|\\.\\d+)(?:[eE][+-]?\\d+)?$/.test(value)) {\n value = Number(value);\n }\n URLSearchParamsPlus.set(json, name, value);\n }\n\n if (meta) return { result: json, isDirectlySerializable };\n return json;\n }\n}\n\n\n", "import { _isString, _isObject, _isTypeObject, _isNumber, _isBoolean, _isPlainObject, _isPlainArray } from '@webqit/util/js/index.js';\nimport { _wq as $wq } from '@webqit/util/js/index.js';\nimport { FormDataPlus } from './FormDataPlus.js';\n\nexport const _wq = (target, ...args) => $wq(target, 'fetch+', ...args);\nexport const _meta = (target, ...args) => $wq(target, 'fetch+', 'meta', ...args);\n\nexport function messageParserMixin(superClass) {\n return class extends superClass {\n\n static from(httpMessageInit) {\n const headers = (httpMessageInit.headers instanceof Headers)\n\n ? [...httpMessageInit.headers.entries()].reduce((_headers, [name, value]) => {\n const key = name.toLowerCase();\n _headers[key] = _headers[key] ? [].concat(_headers[key], value) : value;\n return _headers;\n }, {})\n\n : Object.keys(httpMessageInit.headers || {}).reduce((_headers, name) => {\n _headers[name.toLowerCase()] = httpMessageInit.headers[name];\n return _headers;\n }, {});\n\n // Process body\n let body = httpMessageInit.body;\n let type = [null, undefined].includes(body) ? null : dataType(body);\n\n // Binary bodies\n if (['Blob', 'File'].includes(type)) {\n\n headers['content-type'] ??= body.type;\n headers['content-length'] ??= body.size;\n\n } else if (['Uint8Array', 'Uint16Array', 'Uint32Array', 'ArrayBuffer'].includes(type)) {\n headers['content-length'] ??= body.byteLength;\n }\n\n // JSON objects\n else if (type === 'json' && _isTypeObject(body)) {\n const { result: _body, isDirectlySerializable } = FormDataPlus.json(body, { encodeLiterals: true, meta: true });\n if (isDirectlySerializable) {\n\n body = JSON.stringify(body, (k, v) => v instanceof Error ? { ...v, message: v.message } : v);\n headers['content-type'] = 'application/json';\n headers['content-length'] = (new Blob([body])).size;\n\n } else {\n body = _body;\n type = 'FormData';\n }\n }\n\n // Strings\n else if (['text', 'json'].includes(type) && !headers['content-length']) {\n headers['content-length'] = (new Blob([body])).size;\n }\n\n if (!['FormData', null].includes(type)\n && !['function'].includes(typeof body)\n && !headers['content-type']) {\n headers['content-type'] = 'application/octet-stream';\n }\n\n // Return canonical init object with type info\n return { body, headers: new Headers(headers), $type: type };\n }\n\n async formData() {\n const fd = await super.formData();\n FormDataPlus.upgradeInPlace(fd);\n return fd;\n }\n\n async any({ to = null, memo = false } = {}) {\n if (to && ![\n 'blob', 'text', 'json', 'arrayBuffer', 'bytes', 'formData'\n ].includes(to)) throw new Error(`Invalid target type specified: ${to}`);\n\n if (this.body === null) return null;\n\n const cache = _meta(this, 'cache');\n const readAs = async (type) => {\n // 1. Direct parsing\n if (!memo) return await this[type || 'bytes']();\n\n const byValue = (x) => {\n if (x instanceof FormData) {\n const clone = new FormDataPlus;\n for (const [k, v] of x.entries()) clone.append(k, v);\n return clone;\n }\n if ((!type || type === 'json')\n && (_isPlainObject(x) || _isPlainArray(x))) {\n return structuredClone(x);\n }\n return x;\n };\n\n // 2. Direct original\n if (!type && cache.has('original')) return byValue(cache.has('original'));\n\n // Default type\n type ??= 'bytes';\n\n // 3. Direct cache matching\n if (cache.has(type)) return byValue(cache.get(type));\n\n // 4. Clone + parse\n let result;\n if (cache.has('memo')) {\n result = cache.get('memo').clone()[type]();\n } else {\n cache.set('memo', this.clone());\n result = await this[type]();\n }\n\n cache.set(type, result);\n\n return byValue(result);\n };\n\n const contentType = (this.headers.get('Content-Type') || '').split(';')[0].trim();\n let result;\n if ((!to || ['formData', 'json'].includes(to))\n && ['multipart/form-data', 'application/x-www-form-urlencoded'].includes(contentType)) {\n let fd = await readAs('formData');\n FormDataPlus.upgradeInPlace(fd);\n\n if (to === 'json') {\n fd = await fd.json({ decodeLiterals: true });\n }\n\n result = fd;\n } else if ((!to || ['formData', 'json'].includes(to))\n && contentType === 'application/json') {\n let json = await readAs('json');\n\n if (to === 'formData') {\n json = FormDataPlus.json(json, { encodeLiterals: true });\n }\n\n result = json;\n } else if (!to && (\n contentType.startsWith('image/') ||\n contentType.startsWith('video/') ||\n contentType.startsWith('audio/') ||\n (contentType.startsWith('application/')\n && !['xml', 'json', 'javascript', 'x-www-form-urlencoded'].some(t => contentType.includes(t)))\n )) {\n result = await readAs('blob');\n } else if (!to && (\n contentType.startsWith('text/') ||\n (contentType.startsWith('application/')\n && ['xml', 'javascript'].some((t) => contentType.includes(t))\n ))) {\n result = await readAs('text');\n } else {\n if (['json', 'formData'].includes(to)) {\n throw new Error(`Cannot convert body of type ${contentType} to ${to}`);\n }\n result = await readAs(to);\n }\n\n return result;\n }\n\n forget() {\n const cache = _meta(this, 'cache');\n cache.clear();\n }\n };\n}\n\n// ------ Util\n\nexport function dataType(value) {\n if (value instanceof FormData) {\n return 'FormData';\n }\n if (value === null || _isNumber(value) || _isBoolean(value)) {\n return 'json';\n }\n if (_isString(value)) {\n return 'text';\n }\n\n if (_isTypeObject(value)) {\n const toStringTag = value[Symbol.toStringTag];\n const type = [\n 'Uint8Array', 'Uint16Array', 'Uint32Array', 'ArrayBuffer', 'Blob', 'File', 'FormData', 'Stream', 'ReadableStream'\n ].reduce((_toStringTag, type) => _toStringTag || (toStringTag === type ? type : null), null);\n\n if (type) return type;\n\n if (_isObject(value) || Array.isArray(value)) {\n return 'json';\n }\n\n if ('toString' in value) return 'text';\n }\n\n return null;\n}\n\nexport function isTypeReadable(obj) {\n return (\n obj !== null &&\n typeof obj === 'object' &&\n typeof obj.read === 'function' && // streams have .read()\n typeof obj.pipe === 'function' && // streams have .pipe()\n typeof obj.on === 'function' // streams have event listeners\n );\n}\n\nexport function isTypeStream(obj) {\n return obj instanceof ReadableStream\n || isTypeReadable(obj);\n}\n", "import { _isObject, _isTypeObject } from '@webqit/util/js/index.js';\nimport { _from as _arrFrom } from '@webqit/util/arr/index.js';\nimport { _after } from '@webqit/util/str/index.js';\n\nexport class HeadersPlus extends Headers {\n\n static upgradeInPlace(headers) {\n if (headers instanceof HeadersPlus) return headers;\n return Object.setPrototypeOf(headers, HeadersPlus.prototype);\n }\n\n set(name, value) {\n // Format \"Set-Cookie\" response header\n if (/^Set-Cookie$/i.test(name)) {\n if (Array.isArray(value)) {\n this.delete(name); // IMPORTANT\n for (const v of value) this.append(name, v);\n return;\n }\n if (_isObject(value)) {\n value = renderCookieObjToString(value);\n }\n }\n\n // Format \"Cookie\" request header\n if (/Cookie/i.test(name)) {\n value = renderCookieInput(value);\n }\n\n // Format \"Content-Range\" response header?\n if (/^Content-Range$/i.test(name)) {\n value = renderContentRangeInput(value);\n }\n\n // Format \"Range\" request header?\n if (/^Range$/i.test(name)) {\n value = renderRangeInput(value);\n }\n\n // Format \"Accept\" request header?\n if (/^Accept$/i.test(name)) {\n value = renderAcceptInput(value);\n }\n\n return super.set(name, value);\n }\n\n append(name, value) {\n // Format \"Set-Cookie\" response header\n if (/^Set-Cookie$/i.test(name)) {\n if (Array.isArray(value)) {\n for (const v of value) this.append(name, v);\n return;\n }\n if (_isObject(value)) {\n value = renderCookieObjToString(value);\n }\n }\n\n // Format \"Cookie\" request header\n if (/Cookie/i.test(name)) {\n value = renderCookieInput(value);\n }\n\n // Format \"Content-Range\" response header?\n if (/^Content-Range$/i.test(name)) {\n value = renderContentRangeInput(value);\n }\n\n // Format \"Range\" request header?\n if (/^Range$/i.test(name)) {\n value = renderRangeInput(value);\n }\n\n // Format \"Accept\" request header?\n if (/^Accept$/i.test(name)) {\n value = renderAcceptInput(value);\n }\n\n return super.append(name, value);\n }\n\n get(name, structured = false) {\n let value = super.get(name);\n\n // Parse \"Set-Cookie\" response header\n if (/^Set-Cookie$/i.test(name) && structured) {\n value = this.getSetCookie()/*IMPORTANT*/.map((str) => {\n const [cookieDefinition, ...attrs] = str.split(';');\n const [name, value] = cookieDefinition.split('=').map((s) => s.trim());\n const cookieObj = { name, value: /*decodeURIComponent*/(value), };\n attrs.map((attrStr) => attrStr.trim().split('=')).forEach(attrsArr => {\n cookieObj[attrsArr[0][0].toLowerCase() + attrsArr[0].substring(1).replace('-', '')] = attrsArr.length === 1 ? true : attrsArr[1];\n });\n return cookieObj;\n });\n }\n\n // Parse \"Cookie\" request header\n if (/^Cookie$/i.test(name) && structured) {\n value = value?.split(';').map((str) => {\n const [name, value] = str.split('=').map((s) => s.trim());\n return { name, value: /*decodeURIComponent*/(value), };\n }) || [];\n }\n\n // Parse \"Content-Range\" response header?\n if (/^Content-Range$/i.test(name) && value && structured) {\n value = _after(value, 'bytes ').split('/');\n }\n\n // Parse \"Range\" request header?\n if (/^Range$/i.test(name) && structured) {\n value = !value ? [] : _after(value, 'bytes=').split(',').map((rangeStr) => {\n const range = rangeStr.trim().split('-').map((s) => s ? parseInt(s, 10) : null);\n range.resolveAgainst = (totalLength) => {\n const offsets = [...range];\n if (offsets[1] === null) {\n offsets[1] = totalLength - 1;\n } else {\n offsets[1] = Math.min(offsets[1], totalLength) - 1;\n }\n if (offsets[0] === null) {\n offsets[0] = offsets[1] ? totalLength - offsets[1] - 1 : 0;\n }\n return offsets;\n };\n range.canResolveAgainst = (currentStart, totalLength) => {\n const offsets = [\n typeof range[0] === 'number' ? range[0] : currentStart,\n typeof range[1] === 'number' ? range[1] : totalLength - 1\n ];\n // Start higher than end or vice versa?\n if (offsets[0] > offsets[1]) return false;\n // Stretching beyond valid start/end?\n if (offsets[0] < currentStart || offsets[1] >= totalLength) return false;\n return true;\n };\n range.toString = () => {\n return rangeStr;\n };\n return range;\n });\n }\n\n // Parse \"Accept\" request header?\n if (/^Accept$/i.test(name) && value && structured) {\n const parseSpec = (spec) => {\n const [mime, q] = spec.trim().split(';').map((s) => s.trim());\n return [mime, parseFloat((q || 'q=1').replace('q=', ''))];\n };\n const $value = value;\n value = value.split(',')\n .map((spec) => parseSpec(spec))\n .sort((a, b) => a[1] > b[1] ? -1 : 1) || [];\n value.match = (mime) => {\n if (!mime) return 0;\n const splitMime = (mime) => mime.split('/').map((s) => s.trim());\n const $mime = splitMime(mime + '');\n return value.reduce((prev, [entry, q]) => {\n if (prev) return prev;\n const $entry = splitMime(entry);\n return [0, 1].every((i) => (($mime[i] === $entry[i]) || $mime[i] === '*' || $entry[i] === '*')) ? q : 0;\n }, 0);\n };\n value.toString = () => {\n return $value;\n };\n }\n\n return value;\n }\n}\n\nexport function renderCookieObjToString(cookieObj) {\n const attrsArr = [`${cookieObj.name}=${/*encodeURIComponent*/(cookieObj.value)}`];\n for (const attrName in cookieObj) {\n if (['name', 'value'].includes(attrName)) continue;\n let _attrName = attrName[0].toUpperCase() + attrName.substring(1);\n if (_attrName === 'MaxAge') { _attrName = 'Max-Age' };\n attrsArr.push(cookieObj[attrName] === true ? _attrName : `${_attrName}=${cookieObj[attrName]}`);\n }\n return attrsArr.join('; ');\n}\n\nfunction renderCookieInput(value) {\n if (_isTypeObject(value)) {\n value = [].concat(value).map(renderCookieObjToString).join('; ');\n }\n return value;\n}\n\nfunction renderRangeInput(value) {\n let rangeArr = [];\n _arrFrom(value).forEach((range, i) => {\n let rangeStr = Array.isArray(range) ? range.map((n) => [null, undefined].includes(n) ? '' : n).join('-') : range + '';\n if (i === 0 && !rangeStr.includes('bytes=')) {\n rangeStr = `bytes=${rangeStr}`;\n }\n rangeArr.push(rangeStr);\n });\n return rangeArr.join(', ');\n}\n\nfunction renderContentRangeInput(value) {\n if (Array.isArray(value)) {\n if (value.length < 2 || !value[0].includes('-')) {\n throw new Error(`A Content-Range array must be in the format: [ 'start-end', 'total' ]`);\n }\n value = `bytes ${value.join('/')}`;\n }\n return value;\n}\n\nfunction renderAcceptInput(value) {\n if (Array.isArray(value)) {\n value = value.map(\n (s) => Array.isArray(s) ? s.map(\n (s, i) => i === 1 && (s = parseFloat(s), true) ? (s === 1 ? '' : `;q=${s}`) : s.trim()\n ).join('') : s.trim()\n ).join(',');\n }\n return value;\n}\n\n", "import { messageParserMixin, _meta, _wq } from './messageParserMixin.js';\nimport { HeadersPlus } from './HeadersPlus.js';\n\nexport class ResponsePlus extends messageParserMixin(Response) {\n\n constructor(body, init = {}) {\n super(body, init);\n HeadersPlus.upgradeInPlace(this.headers);\n }\n\n static upgradeInPlace(response) {\n if (response instanceof ResponsePlus) return response;\n Object.setPrototypeOf(response, ResponsePlus.prototype);\n HeadersPlus.upgradeInPlace(response.headers);\n return response;\n }\n\n static from(body, { memoize = false, ...init } = {}) {\n if (body instanceof Response) return body;\n\n let $type;\n if (typeof body !== 'undefined') {\n let headers;\n ({ body, headers, $type } = super.from({ body, headers: init.headers }));\n init = { ...init, headers };\n }\n\n const instance = new this(body, init);\n\n if (memoize) {\n const cache = _meta(instance, 'cache');\n const typeMap = { json: 'json', FormData: 'formData', text: 'text', ArrayBuffer: 'arrayBuffer', Blob: 'blob', Bytes: 'bytes' };\n cache.set(typeMap[$type] || 'original', body);\n }\n\n return instance;\n }\n\n get status() {\n return this.headers.has('X-Redirect-Code') ? 200 : super.status;\n }\n\n clone() {\n const clone = super.clone();\n ResponsePlus.upgradeInPlace(clone);\n\n const responseMeta = _meta(this);\n _wq(clone).set('meta', new Map(responseMeta));\n if (_meta(clone).has('cache')) {\n _meta(clone).set('cache', new Map(responseMeta.get('cache')));\n }\n\n return clone;\n }\n}\n\n\n", "import { ResponsePlus } from './ResponsePlus.js';\n\nexport async function fetchPlus(url, options = {}) {\n const response = await fetch(url, options);\n ResponsePlus.upgradeInPlace(response);\n return response;\n}", "import { messageParserMixin, _meta, _wq } from './messageParserMixin.js';\nimport { HeadersPlus } from './HeadersPlus.js';\n\nexport class RequestPlus extends messageParserMixin(Request) {\n\n constructor(url, init = {}) {\n super(url, init);\n HeadersPlus.upgradeInPlace(this.headers);\n }\n\n static upgradeInPlace(request) {\n if (request instanceof RequestPlus) return request;\n Object.setPrototypeOf(request, RequestPlus.prototype);\n HeadersPlus.upgradeInPlace(request.headers);\n return request;\n }\n\n static from(url, { memoize = false, ...init } = {}) {\n if (url instanceof Request) return url;\n\n let $type, $$body = init.body;\n if ('body' in init) {\n const { body, headers, $type: $$type } = super.from(init);\n init = { ...init, body, headers };\n $type = $$type;\n }\n\n const instance = new this(url, init);\n\n if (memoize) {\n const cache = _meta(instance, 'cache');\n const typeMap = { json: 'json', FormData: 'formData', text: 'text', ArrayBuffer: 'arrayBuffer', Blob: 'blob', Bytes: 'bytes' };\n cache.set(typeMap[$type] || 'original', $$body);\n }\n\n return instance;\n }\n\n static async copy(request, init = {}) {\n const attrs = ['method', 'headers', 'mode', 'credentials', 'cache', 'redirect', 'referrer', 'integrity'];\n const requestInit = attrs.reduce(($init, prop) => (\n {\n ...$init,\n [prop]: prop in init\n ? init[prop]\n : (prop === 'headers'\n ? new Headers(request[prop])\n : request[prop])\n }\n ), {});\n if (!['GET', 'HEAD'].includes(requestInit.method.toUpperCase())) {\n if ('body' in init) {\n requestInit.body = init.body\n if (!('headers' in init)) {\n requestInit.headers.delete('Content-Type');\n requestInit.headers.delete('Content-Length');\n }\n } else {\n requestInit.body = await request.clone().arrayBuffer();\n }\n } else {\n requestInit.body = null;\n }\n if (requestInit.mode === 'navigate') {\n requestInit.mode = 'cors';\n }\n return { url: init.url || request.url, ...requestInit };\n }\n\n clone() {\n const clone = super.clone();\n RequestPlus.upgradeInPlace(clone);\n\n const requestMeta = _meta(this);\n _wq(clone).set('meta', new Map(requestMeta));\n if (_meta(clone).has('cache')) {\n _meta(clone).set('cache', new Map(requestMeta.get('cache')));\n }\n\n return clone;\n }\n}\n\n\n", "import { _isTypeObject } from '@webqit/util/js/index.js';\nimport { MessagePortPlus, applyMutations, _options } from './MessagePortPlus.js';\n\nexport class MessageEventPlus extends MessageEvent {\n\n #originalTarget;\n get originalTarget() { return this.#originalTarget; }\n\n #eventID;\n get eventID() { return this.#eventID; }\n\n #data;\n get data() { return this.#data; }\n\n #live;\n get live() { return this.#live; }\n\n #bubbles;\n get bubbles() { return this.#bubbles; }\n\n #forwarded;\n get forwarded() { return this.#forwarded; }\n\n #honourDoneMutationFlags;\n get honourDoneMutationFlags() { return this.#honourDoneMutationFlags; }\n\n #ports = [];\n get ports() { return this.#ports; }\n\n constructor(data, {\n originalTarget = null,\n type = 'message',\n eventID,\n live = false,\n honourDoneMutationFlags = false,\n bubbles = false,\n forwarded = false,\n ports = []\n } = {}) {\n if (type && typeof type !== 'string') {\n throw new TypeError('Where specified, wqEventOptions.type must be a string');\n }\n super(type);\n this.#data = data;\n this.#originalTarget = originalTarget;\n this.#eventID = eventID;\n this.#live = live;\n this.#bubbles = bubbles;\n this.#forwarded = forwarded;\n this.#honourDoneMutationFlags = honourDoneMutationFlags;\n\n this.#ports = ports;\n this.#ports.forEach((port) => MessagePortPlus.upgradeInPlace(port));\n\n if (_isTypeObject(this.#data) && this.#live) {\n if (typeof eventID !== 'string') {\n throw new TypeError('eventID must be a non-empty string');\n }\n applyMutations.call(originalTarget, this.#data, this.#eventID, { honourDoneMutationFlags: this.#honourDoneMutationFlags });\n }\n }\n\n #immediatePropagationStopped = false;\n get immediatePropagationStopped() { return this.#immediatePropagationStopped; }\n\n stopImmediatePropagation() {\n this.#immediatePropagationStopped = true;\n this.#propagationStopped = true;\n super.stopImmediatePropagation();\n }\n\n #propagationStopped = false;\n get propagationStopped() { return this.#propagationStopped; }\n\n stopPropagation() {\n this.#propagationStopped = true;\n super.stopPropagation();\n }\n\n #defaultPrevented = false;\n get defaultPrevented() { return this.#defaultPrevented; }\n\n preventDefault() {\n this.#defaultPrevented = true;\n super.preventDefault();\n }\n\n respondWith(data, transferOrOptions = []) {\n for (const port of this.#ports) {\n port.postMessage(data, transferOrOptions);\n }\n return !!this.#ports.length;\n }\n}\n", "import { _isObject } from '@webqit/util/js/index.js';\nimport {\n _meta,\n MessagePortPlusMockPortsMixin,\n} from './MessagePortPlus.js';\n\nexport class WebSocketPort extends MessagePortPlusMockPortsMixin(EventTarget) {\n\n #ws;\n #wsReady;\n\n constructor(ws, { handshake = 0, postAwaitsOpen = false } = {}) {\n super();\n\n if (typeof handshake !== 'number') {\n throw new Error('handshake must be a number');\n }\n if (handshake < 0 || handshake > 2) {\n throw new Error('handshake must be between 0 and 2');\n }\n\n const portPlusMeta = _meta(this);\n portPlusMeta.set('options', { handshake, postAwaitsOpen });\n // Must come before upgradeEvents()\n\n this.#ws = typeof ws === 'string' ? new WebSocket(ws) : ws;\n\n this.constructor/* IMPORTANT */.upgradeEvents(this.#ws, this);\n\n this.#wsReady = new Promise((resolve) => {\n if (this.#ws.readyState === WebSocket.OPEN) {\n resolve();\n } else {\n this.#ws.addEventListener('open', () => resolve(), { once: true });\n }\n });\n\n if (handshake === 0) {\n this.#wsReady.then(() => this.start());\n }\n\n if (this.#ws.readyState === WebSocket.CLOSED) {\n try { this.close(); } catch (e) { }\n } else {\n this.#ws.addEventListener('close', () => {\n try { this.close(); } catch (e) { }\n }, { once: true });\n }\n }\n\n static _hydrateMessage(portPlus, event) {\n try {\n let data;\n if (typeof event.data === 'string'\n && _isObject(data = JSON.parse(event.data))\n && data['.wq']) {\n Object.defineProperty(event, 'data', { value: data, configurable: true });\n return super._hydrateMessage(portPlus, event);\n }\n } catch (e) { }\n return event;\n }\n\n __postMessage(payload, portOptions) {\n this.#wsReady.then(() => {\n this.#ws.send(JSON.stringify(payload), portOptions);\n });\n }\n\n _close() {\n this.#ws.close();\n }\n}\n", "import { _wq as $wq } from '@webqit/util/js/index.js';\nimport { _isObject, _isTypeObject } from '@webqit/util/js/index.js';\nimport { MessageEventPlus } from './MessageEventPlus.js';\nimport { Observer } from '@webqit/observer';\nimport { WebSocketPort } from './WebSocketPort.js';\n\nexport const _wq = (target, ...args) => $wq(target, 'port+', ...args);\nexport const _meta = (target, ...args) => $wq(target, 'port+', 'meta', ...args);\nexport const _options = (target) => $wq(target, 'port+', 'meta').get('options') || {};\n\nconst portPlusMethods = [\n 'addEventListener',\n 'addRequestListener',\n 'postMessage',\n 'postRequest',\n 'dispatchEvent',\n 'relay',\n 'start',\n 'readyStateChange',\n 'removeEventListener',\n 'close',\n];\nconst portPlusProps = [\n 'options',\n 'readyState',\n 'onmessage',\n 'onmessageerror',\n];\n\nexport class MessagePortPlus extends MessagePortPlusMixin(EventTarget) {\n\n constructor({ handshake = 0, postAwaitsOpen = false, ...options } = {}) {\n if (typeof handshake !== 'number') {\n throw new Error('handshake must be a number');\n }\n if (handshake < 0 || handshake > 2) {\n throw new Error('handshake must be between 0 and 2');\n }\n\n super();\n\n const portPlusMeta = _wq(this, 'meta');\n portPlusMeta.set('options', { handshake, postAwaitsOpen, ...options });\n }\n\n static [Symbol.hasInstance](instance) {\n // Direct subclass?\n if (Function.prototype[Symbol.hasInstance].call(this, instance)) return true;\n // Duct-type checking\n return portPlusMethods.every((m) => typeof instance[m] === 'function')\n || portPlusProps.every((m) => m in instance);\n }\n}\n\nexport function MessagePortPlusMixin(superClass) {\n return class extends superClass {\n\n static upgradeInPlace(port, { handshake = 0, postAwaitsOpen = false } = {}) {\n if (port instanceof MessagePortPlus) {\n return port;\n }\n\n if (typeof handshake !== 'number') {\n throw new Error('handshake must be a number');\n }\n if (handshake < 0 || handshake > 2) {\n throw new Error('handshake must be between 0 and 2');\n }\n\n const proto = this.prototype;\n\n for (const prop of portPlusMethods.concat('_autoStart')) {\n const original = port[prop];\n const plus = proto[prop];\n\n if (original) Object.defineProperty(port, `_${prop}`, { value: original.bind(port), configurable: true });\n Object.defineProperty(port, prop, { value: plus.bind(port), configurable: true });\n }\n\n for (const prop of portPlusProps) {\n const original = Object.getOwnPropertyDescriptor(Object.getPrototypeOf(port), prop);\n const plus = Object.getOwnPropertyDescriptor(Object.getPrototypeOf(proto), prop);\n\n if (original) Object.defineProperty(port, `_${prop}`, { ...original, configurable: true });\n Object.defineProperty(port, prop, { ...plus, configurable: true });\n }\n\n const portPlusMeta = _wq(port, 'meta');\n portPlusMeta.set('options', { handshake, postAwaitsOpen });\n\n this.upgradeEvents(port);\n\n if (handshake === 0) port.start();\n\n return port;\n }\n\n static upgradeEvents(port, portPlus = null) {\n if (!portPlus) portPlus = port;\n\n const rawPortMeta = _meta(port);\n if (rawPortMeta.get('events+')) return; // Already wrapped\n\n const portPlusMeta = _meta(portPlus);\n const options = _options(portPlus);\n\n const garbageCollection = getGarbageCollection.call(portPlus);\n const readyStateInternals = getReadyStateInternals.call(portPlus);\n\n // ------------- SETUP\n\n if (port instanceof BroadcastChannel) {\n if (options.clientServerMode === 'server') {\n portPlusMeta.set('clients', new Set);\n } else if (options.clientServerMode === 'client') {\n portPlusMeta.set('client_id', `client-${(0 | Math.random() * 9e6).toString(36)}`);\n }\n }\n\n // ------------- MESSAGE\n\n const messageHandler = (e) => {\n if (e instanceof MessageEventPlus) return;\n // Stop propagation if the event for portPlus\n // since we'll repost it there\n if (port === portPlus) e.stopImmediatePropagation?.();\n // Hydrate event. Typically a WebSocket-specific feature\n e = this._hydrateMessage?.(portPlus, e) || e;\n\n /*\n * Handle lifecycle events from the other end\n */\n\n if (e.data.ping === 'connect'\n && typeof e.data?.['.wq']?.eventID === 'string'\n && (!(port instanceof WebSocket) || options.handshake)) {\n // This is a special ping from a MessagePort or BroadcastChannel instance\n // that helps us simulate an \"open\" event\n // If options.handshake !== 0, WebSockets too\n\n const nowOpen = options.handshake === 0\n || portPlusMeta.get('start.called');\n\n const reply = { isOpen: nowOpen };\n\n if (port instanceof BroadcastChannel) {\n if (options.clientServerMode === 'server'\n && typeof e.data.id === 'string') {\n portPlusMeta.get('clients').add(e.data.id);\n reply.id = 'server';\n } else if (e.data.id === 'server'\n && portPlusMeta.has('client_id')) {\n reply.id = portPlusMeta.get('client_id');\n }\n }\n\n e.ports?.forEach((p) => p.postMessage(reply));\n\n if (nowOpen) {\n portPlusMeta.set('remote.open.called', true);\n portPlus.start();\n }\n\n return;\n }\n\n if (e.data.ping === 'disconnect'\n && typeof e.data?.['.wq']?.eventID === 'string') {\n // This is a special ping from a BroadcastChannel instance\n // that helps us simulate a \"close\" event\n // WebSockets naturally fire a close event\n // In nodejs only, MessagePort naturally fire a close event\n // so we need to support simulated closing for when in the browser\n\n const close = () => {\n portPlusMeta.set('remote.close.called', true);\n portPlus.close();\n };\n\n if (port instanceof BroadcastChannel) {\n if (options.clientServerMode === 'server'\n && typeof e.data.id === 'string') {\n // Expel a client\n portPlusMeta.get('clients').delete(e.data.id);\n // Declare closed if no clients remain\n if (!portPlusMeta.get('clients').size\n && options.autoClose\n && !readyStateInternals.close.state) {\n close();\n }\n } else if (options.clientServerMode === 'client'\n && e.data.id === 'server') {\n // Server has closed\n close();\n }\n } else if (port instanceof MessagePort) {\n close();\n }\n\n return;\n }\n\n /*\n * Do event rewrites and the Webflo live object magic\n */\n\n let message = e.data;\n let wqOptions = {};\n if (typeof e.data?.['.wq']?.eventID === 'string') {\n ({ message, ['.wq']: wqOptions } = e.data);\n }\n\n const eventPlus = new MessageEventPlus(message, {\n originalTarget: port,\n ...wqOptions,\n ports: e.ports,\n });\n\n portPlus.dispatchEvent(eventPlus);\n };\n\n const errorHandler = (e) => {\n };\n\n rawPortMeta.set('internal_call', true);\n port.addEventListener('message', messageHandler);\n port.addEventListener('error', errorHandler);\n rawPortMeta.delete('internal_call');\n\n garbageCollection.add(() => {\n port.removeEventListener('message', messageHandler);\n port.removeEventListener('error', errorHandler);\n\n rawPortMeta.set('events+', false);\n });\n\n rawPortMeta.set('events+', true);\n }\n\n get options() { return { ..._options(this) }; }\n\n // Messages\n\n get onmessageerror() {\n if (typeof super.onmessageerror !== 'undefined') {\n return super.onmessageerror;\n }\n if (typeof this._onmessageerror !== 'undefined') {\n return this._onmessageerror;\n }\n return null;\n }\n\n set onmessageerror(v) {\n if (typeof super.onmessageerror !== 'undefined') {\n super.onmessageerror = v;\n return;\n }\n\n if (v !== null && typeof v !== 'function') {\n throw new TypeError('onmessageerror must be a function');\n }\n\n if (Object.getOwnPropertyDescriptor(this, '_onmessageerror')?.set) {\n this._onmessageerror = v;\n return;\n }\n\n if (this._onmessageerror) this.removeEventListener('messageerror', this._onmessageerror);\n this.addEventListener('messageerror', v);\n this._onmessageerror = v;\n }\n\n get onmessage() {\n if (typeof super.onmessage !== 'undefined') {\n return super.onmessage;\n }\n if (typeof this._onmessage !== 'undefined') {\n return this._onmessage;\n }\n return null;\n }\n\n set onmessage(v) {\n if (typeof super.onmessage !== 'undefined') {\n super.onmessage = v;\n this._autoStart();\n return;\n }\n\n if (v !== null && typeof v !== 'function') {\n throw new TypeError('onmessage must be a function');\n }\n\n if (Object.getOwnPropertyDescriptor(this, '_onmessage')?.set) {\n this._onmessage = v;\n this._autoStart();\n return;\n }\n\n if (this._onmessage) this.removeEventListener('message', this._onmessage);\n this.addEventListener('message', v);\n this._onmessage = v;\n this._autoStart();\n }\n\n addEventListener(...args) {\n // Add to registry \n const garbageCollection = getGarbageCollection.call(this);\n garbageCollection.add(() => {\n this._removeEventListener\n ? this._removeEventListener(...args)\n : super.removeEventListener(...args);\n });\n\n // Execute addEventListener()\n const returnValue = this._addEventListener\n ? this._addEventListener(...args)\n : super.addEventListener(...args);\n this._autoStart();\n return returnValue;\n }\n\n dispatchEvent(event) {\n const returnValue = this._dispatchEvent\n ? this._dispatchEvent(event)\n : super.dispatchEvent(event);\n if (event instanceof MessageEventPlus) {\n // Bubble semantics\n propagateEvent.call(this, event);\n }\n return returnValue;\n }\n\n postMessage(message, transferOrOptions = {}) {\n this._autoStart();\n\n let portPlusIgnore; // From starPort\n if (transferOrOptions?.portPlusIgnore) {\n ({ portPlusIgnore, ...transferOrOptions } = transferOrOptions);\n }\n\n // Update readyState\n const readyStateInternals = getReadyStateInternals.call(this);\n readyStateInternals.messaging.state = true;\n readyStateInternals.messaging.resolve(this);\n\n let _relayedFrom;\n\n if (!portPlusIgnore) {\n // Format payload if not yet in the ['.wq'] format\n const { portOptions, wqOptions: { relayedFrom, ...wqOptions } } = preProcessPostMessage.call(this, message, transferOrOptions);\n if (wqOptions.type !== 'message'\n || wqOptions.live\n || wqOptions.bubbles\n || portOptions.transfer?.length && (this instanceof BroadcastChannel || this instanceof WebSocketPort)) {\n message = { message, ['.wq']: wqOptions };\n }\n transferOrOptions = portOptions;\n _relayedFrom = relayedFrom;\n }\n\n // Exec\n const post = () => {\n this._postMessage\n ? this._postMessage(message, transferOrOptions, _relayedFrom)\n : super.postMessage(message, transferOrOptions);\n };\n\n // If client-server mode, wait for open ready state\n const options = _options(this);\n if (options.postAwaitsOpen) readyStateInternals.open.promise.then(post);\n else post();\n }\n\n // Requests\n\n addRequestListener(type, handler, options = {}) {\n const handle = async (e) => {\n const response = await handler(e);\n for (const port of e.ports) {\n port.postMessage(response);\n }\n };\n this.addEventListener(type, handle, options);\n }\n\n postRequest(data, callback, options = {}) {\n let returnValue;\n\n if (_isObject(callback)) {\n options = { once: true, ...callback };\n returnValue = new Promise((resolve) => {\n callback = resolve;\n });\n }\n\n const messageChannel = new MessageChannel;\n MessagePortPlus.upgradeInPlace(messageChannel.port1);\n messageChannel.port1.start();\n\n const { signal, once = false, transfer = [], ..._options } = options;\n\n messageChannel.port1.addEventListener('message', (e) => callback(e), { signal: signal || undefined/* NO NULLS */, once });\n signal?.addEventListener('abort', () => {\n messageChannel.port1.close();\n messageChannel.port2.close();\n });\n\n this.postMessage(data, { ..._options, transfer: [messageChannel.port2].concat(transfer) });\n return returnValue;\n }\n\n // Forwarding\n\n relay({ to: targetPort, from: sourcePort, types = '*', channel = null, resolveMessage = null, bidirectional = false } = {}) {\n if (targetPort && sourcePort) {\n throw new Error('Only one of \"to\" and \"from\" may be specified');\n }\n\n if (sourcePort) {\n targetPort = this;\n } else sourcePort = this;\n\n if (targetPort === sourcePort) {\n throw new Error('Source and target ports cannot be the same');\n }\n\n if (!(sourcePort instanceof MessagePortPlus) || !(targetPort instanceof MessagePortPlus)) {\n throw new Error('Both source and target ports must be instance of MessagePortPlus.');\n }\n\n if (typeof types !== 'function' && !(types = [].concat(types)).length) {\n throw new Error('Event types must be specified.');\n }\n\n if (typeof channel === 'string') {\n channel = { from: channel };\n } else if (_isObject(channel)) {\n if (Object.keys(channel).filter((k) => !['from', 'to'].includes(k)).length) {\n throw new Error('Channel must be a string or an object of \"from\"/\"to\" members');\n }\n } else if (channel) {\n throw new Error('Invalid channel parameter');\n }\n\n const downstreamRegistry = getDownstreamRegistry.call(sourcePort);\n const registration = { targetPort, types, channel, resolveMessage };\n downstreamRegistry.add(registration);\n\n let cleanup2;\n if (bidirectional) {\n cleanup2 = targetPort.relay(\n { to: sourcePort, types, channel: channel && { to: channel.from, from: channel.to }, resolveMessage, bidirectional: false }\n );\n }\n\n return () => {\n downstreamRegistry.delete(registration);\n cleanup2?.();\n };\n }\n\n channel(channelSpec, resolveMessage = null, { handshake = 0, postAwaitsOpen = false } = {}) {\n const channel = new MessageChannel;\n\n MessagePortPlus.upgradeInPlace(channel.port1, { handshake, postAwaitsOpen });\n MessagePortPlus.upgradeInPlace(channel.port2, { handshake, postAwaitsOpen });\n\n const garbageCollection = getGarbageCollection.call(this);\n garbageCollection.add(this.relay({ channel: channelSpec, to: channel.port2, bidirectional: true, resolveMessage }));\n\n channel.port2.start();\n this.readyStateChange('close').then(() => {\n channel.port2.close();\n });\n\n return channel.port1;\n }\n\n projectMutations({ from, to, ...options }) {\n if (!from || !to\n || typeof from === 'string' && typeof to === 'string'\n || _isTypeObject(from) && _isTypeObject(to)) {\n throw new Error('Invalid \"from\"/\"to\" parameters');\n }\n if (typeof from === 'string') {\n if (!_isTypeObject(to)) throw new Error('Invalid \"to\" parameter. Object/array expected');\n return applyMutations.call(this, to, from, options);\n }\n if (typeof to === 'string') {\n if (!_isTypeObject(from)) throw new Error('Invalid \"from\" parameter. Object/array expected');\n return publishMutations.call(this, from, to, options);\n }\n throw new Error('Invalid \"from\"/\"to\" parameters');\n }\n\n // Lifecycle\n\n get readyState() {\n const readyStateInternals = getReadyStateInternals.call(this);\n return readyStateInternals.close.state ? 'closed'\n : (readyStateInternals.open.state ? 'open' : 'connecting');\n }\n\n readyStateChange(query) {\n if (!['open', 'messaging', 'close'].includes(query)) {\n throw new Error(`Invalid readyState query \"${query}\"`);\n }\n const readyStateInternals = getReadyStateInternals.call(this);\n return readyStateInternals[query].promise;\n }\n\n _autoStart() {\n const portPlusMeta = _meta(this);\n const options = _options(this);\n if (!portPlusMeta.get('internal_call')\n && options.handshake === 1) {\n this.start();\n }\n }\n\n start() {\n const readyStateInternals = getReadyStateInternals.call(this);\n if (readyStateInternals.open.state) return;\n\n const portPlusMeta = _meta(this);\n const options = _options(this);\n\n const readyStateOpen = (nowOpen) => {\n if (nowOpen) {\n readyStateInternals.open.state = true;\n readyStateInternals.open.resolve(this);\n }\n const handshakeChannel = portPlusMeta.get('handshake_channel');\n setTimeout(() => {\n handshakeChannel?.port1.close();\n handshakeChannel?.port2.close();\n portPlusMeta.delete('handshake_channel');\n }, 100);\n };\n\n // A peer ping triggered us to open\n if (portPlusMeta.get('remote.open.called')) {\n readyStateOpen(true);\n return;\n }\n\n // Start was explicitly called\n if (portPlusMeta.get('start.called')) return;\n portPlusMeta.set('start.called', true);\n\n this._start\n ? this._start()\n : super.start?.();\n\n // No handshake?\n if (options.handshake === 0) {\n readyStateOpen(true);\n return;\n }\n\n const handshakeChannel = new MessageChannel;\n portPlusMeta.set('handshake_channel', handshakeChannel);\n\n handshakeChannel.port1.onmessage = (e) => {\n if (this instanceof BroadcastChannel\n && options.clientServerMode === 'server'\n && typeof e.data?.id === 'string') {\n // Register clients that replied\n portPlusMeta.get('clients').add(e.data.id);\n }\n if (typeof e.data?.isOpen) {\n // This peer is ready to start messaging\n readyStateOpen(true);\n } else readyStateOpen(false);\n };\n\n const { wqOptions } = preProcessPostMessage.call(this);\n const id = options.clientServerMode === 'server' ? 'server'\n : (options.clientServerMode === 'client' ? portPlusMeta.get('client_id') : null);\n const pingData = { ['.wq']: wqOptions, ping: 'connect', id };\n\n this._postMessage\n ? this._postMessage(pingData, { transfer: [handshakeChannel.port2] })\n : super.postMessage(pingData, { transfer: [handshakeChannel.port2] });\n }\n\n close(...args) {\n const readyStateInternals = getReadyStateInternals.call(this);\n\n if (readyStateInternals.close.state) return;\n readyStateInternals.close.state = true;\n\n const portPlusMeta = _meta(this);\n const options = _options(this);\n\n if (options.handshake > 0\n && !portPlusMeta.get('remote.close.called')\n && (this instanceof BroadcastChannel || this instanceof MessagePort)) {\n\n const { wqOptions } = preProcessPostMessage.call(this);\n const id = options.clientServerMode === 'server' ? 'server'\n : (options.clientServerMode === 'client' ? portPlusMeta.get('client_id') : null);\n const pingData = { ['.wq']: wqOptions, ping: 'disconnect', id };\n\n this._postMessage\n ? this._postMessage(pingData)\n : super.postMessage(pingData);\n }\n\n // This should come before event:\n // Nodejs natively sends a close event to other port (port2) for MessagePort\n // this ensures:\n // port2.ping() -> port2.close() -> port2.customCloseEvent()\n // -> port1.customCloseEvent()\n this._close\n ? this._close(...args)\n : super.close(...args);\n\n readyStateInternals.close.resolve(this);\n\n garbageCollect.call(this);\n }\n };\n}\n\nexport function MessagePortPlusMockPortsMixin(superClass) {\n return class extends MessagePortPlusMixin(superClass) {\n\n static _hydrateMessage(portPlus, event) {\n // But only one with ['.wq'].numPorts & ['.wq'].eventID is valid for port hydration\n if (typeof event.data?.['.wq']?.numPorts !== 'number' || typeof event.data['.wq'].eventID !== 'string') {\n return event;\n }\n\n const garbageCollection = getGarbageCollection.call(portPlus);\n const numPorts = event.data['.wq'].numPorts;\n Object.defineProperty(event, 'ports', { value: [], configurable: true });\n\n for (let i = 0; i < numPorts; i++) {\n const port = portPlus.channel(`${event.data['.wq'].eventID}:${i}`);\n event.ports.push(port);\n }\n\n return event;\n }\n\n _postMessage(payload, portOptions = {}) {\n const { transfer = [], ..._portOptions } = portOptions;\n\n if (typeof payload?.['.wq']?.eventID === 'string') {\n const garbageCollection = getGarbageCollection.call(this);\n\n const messagePorts = transfer.filter((t) => t instanceof MessagePort);\n const numPorts = messagePorts.length;\n\n for (let i = 0; i < numPorts; i++) {\n MessagePortPlus.upgradeInPlace(messagePorts[i]);\n\n garbageCollection.add(this.relay({ channel: `${payload['.wq'].eventID}:${i}`, to: messagePorts[i], bidirectional: true }));\n\n messagePorts[i].start();\n messagePorts[i].readyStateChange('close').then(() => {\n // Send a disconnect ping to port2\n const { wqOptions } = preProcessPostMessage.call(this);\n const pingData = { ['.wq']: wqOptions, ping: 'disconnect' };\n this.postMessage(pingData, { type: `${payload['.wq'].eventID}:${i}:message` });\n });\n }\n\n payload['.wq'].numPorts = numPorts; // IMPORTANT: numPorts must be set before ports are added\n }\n\n return this.__postMessage(payload, _portOptions);\n }\n };\n}\n\nexport function propagateEvent(event) {\n if (event.propagationStopped) return;\n const portMeta = _meta(this);\n\n if (portMeta.get('parentNode') instanceof EventTarget && (\n event.bubbles\n || portMeta.get('parentNode')?.findPort?.((port) => port === this) && event instanceof MessageEventPlus)\n ) {\n portMeta.get('parentNode').dispatchEvent(event);\n // \"parentNode\" is typically a StarPort feature\n // in case \"this\" is a RelayPort\n }\n\n const downstreamRegistry = getDownstreamRegistry.call(this);\n if (!downstreamRegistry.size) return;\n\n if (event instanceof MessageEventPlus) {\n const { type, eventID, data, live, bubbles, ports } = event;\n\n const called = new WeakSet;\n for (const { targetPort, types, channel, resolveMessage } of downstreamRegistry) {\n if (called.has(targetPort)) continue;\n\n let $type = type;\n if (channel.from) {\n [, $type] = (new RegExp(`^${channel.from.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')}:([^:]+)$`)).exec(type) || [];\n if (!$type) continue;\n }\n\n const matches = typeof types === 'function'\n ? types($type, this, targetPort, channel)\n : [].concat(types).find((t) => {\n return t === $type || t === '*';\n });\n\n if (!matches) continue;\n called.add(targetPort);\n\n targetPort.postMessage(resolveMessage ? resolveMessage(data, this, targetPort, channel) : data, {\n transfer: ports,\n type: channel.to ? `${channel.to}:${$type}` : $type,\n eventID,\n bubbles,\n live,\n forwarded: true,\n relayedFrom: this\n // \"relayedFrom\" is typically a RelayPort feature\n // in case targetPort is a RelayPort\n });\n }\n }\n}\n\nexport function getGarbageCollection() {\n const portPlusMeta = _meta(this);\n if (!portPlusMeta.has('garbage_collection')) {\n portPlusMeta.set('garbage_collection', new Set);\n }\n return portPlusMeta.get('garbage_collection');\n}\n\nexport function getDownstreamRegistry() {\n const portPlusMeta = _meta(this);\n if (!portPlusMeta.has('downstream_registry')) {\n portPlusMeta.set('downstream_registry', new Set);\n }\n return portPlusMeta.get('downstream_registry');\n}\n\nexport function getReadyStateInternals() {\n const portPlusMeta = _meta(this);\n if (!portPlusMeta.has('readystate_registry')) {\n const $ref = (o) => {\n o.promise = new Promise((res, rej) => (o.resolve = res, o.reject = rej));\n return o;\n };\n portPlusMeta.set('readystate_registry', {\n open: $ref({}),\n messaging: $ref({}),\n close: $ref({}),\n });\n }\n return portPlusMeta.get('readystate_registry');\n}\n\nexport function garbageCollect() {\n const portPlusMeta = _meta(this);\n\n for (const dispose of portPlusMeta.get('garbage_collection') || []) {\n if (dispose instanceof AbortController) {\n dispose.abort();\n } else if (typeof dispose === 'function') dispose();\n }\n portPlusMeta.get('garbage_collection')?.clear();\n portPlusMeta.get('downstream_registry')?.clear();\n}\n\nexport function preProcessPostMessage(message = undefined, transferOrOptions = {}) {\n if (Array.isArray(transferOrOptions)) {\n transferOrOptions = { transfer: transferOrOptions };\n } else if (!transferOrOptions\n || typeof transferOrOptions !== 'object') {\n throw new TypeError('transferOrOptions must be an array or an object');\n }\n\n let {\n type = 'message',\n eventID = null,\n live = false,\n observing = false,\n bubbles = false,\n forwarded = false,\n relayedFrom = null,\n signal = undefined,\n withArrayMethodDescriptors = false,\n honourDoneMutationFlags = false,\n ...portOptions\n } = transferOrOptions;\n\n if (!eventID) eventID = `${type}-${(0 | Math.random() * 9e6).toString(36)}`;\n\n if (!observing && !forwarded && _isTypeObject(message) && live && !type?.endsWith('.mutate')) {\n publishMutations.call(this, message, eventID, { signal: signal || undefined/* NO NULLS */, withArrayMethodDescriptors, honourDoneMutationFlags });\n observing = true;\n }\n\n return {\n portOptions,\n wqOptions: {\n type,\n eventID,\n live,\n observing,\n honourDoneMutationFlags,\n bubbles,\n forwarded,\n relayedFrom\n }\n };\n}\n\nexport function publishMutations(message, eventID, { signal, withArrayMethodDescriptors = true, honourDoneMutationFlags = false } = {}) {\n if (!_isTypeObject(message)) throw new TypeError('data must be a plain object and not a stream');\n if (typeof eventID !== 'string') throw new TypeError('eventID must be a non-empty string');\n\n const mutationHandler = (mutations) => {\n let mutationsDone;\n\n if (withArrayMethodDescriptors\n && Array.isArray(mutations[0].target)\n && !mutations[0].argumentsList\n && !['set', 'defineProperty', 'deleteProperty'].includes(mutations[0].operation)) return;\n\n this.postMessage(\n mutations.map((m) => {\n mutationsDone = !mutationsDone\n && honourDoneMutationFlags\n && m.detail?.done;\n return { ...m, target: undefined };\n }),\n { type: `${eventID}.mutate` }\n );\n\n if (mutationsDone) dispose.abort();\n };\n\n\n const dispose = Observer.observe(message, Observer.subtree(), mutationHandler, { signal: signal || undefined/* NO NULLS */, withArrayMethodDescriptors });\n const garbageCollection = getGarbageCollection.call(this);\n garbageCollection.add(dispose);\n\n return dispose;\n}\n\nexport function applyMutations(message, eventID, { signal, honourDoneMutationFlags = false } = {}) {\n if (!_isTypeObject(message)) throw new TypeError('data must be a plain object and not a stream');\n if (typeof eventID !== 'string') throw new TypeError('eventID must be a non-empty string');\n\n const messageHandler = (e) => {\n if (!e.data?.length) return;\n\n let mutationsDone;\n\n Observer.batch(message, () => {\n for (const mutation of e.data) {\n mutationsDone = !mutationsDone\n && honourDoneMutationFlags\n && mutation.detail?.done;\n\n if (mutation.argumentsList) {\n const target = !mutation.path.length ? message : Observer.get(message, Observer.path(...mutation.path));\n Observer.proxy(target)[mutation.operation](...mutation.argumentsList);\n continue;\n }\n\n if (mutation.key !== 'length'\n || ['set', 'defineProperty', 'deleteProperty'].includes(mutation.operation)) {\n const target = mutation.path.length === 1 ? message : Observer.get(message, Observer.path(...mutation.path.slice(0, -1)));\n if (mutation.type === 'delete') {\n Observer.deleteProperty(target, mutation.key);\n } else {\n Observer.set(target, mutation.key, mutation.value);\n }\n }\n }\n });\n\n if (mutationsDone) cleanup();\n };\n\n this.addEventListener(`${eventID}.mutate`, messageHandler, { signal: signal || undefined/* NO NULLS */ });\n const cleanup = () => this.removeEventListener(`${eventID}.mutate`, messageHandler);\n\n const garbageCollection = getGarbageCollection.call(this);\n garbageCollection.add(cleanup);\n\n return cleanup;\n}", "import {\n _meta,\n MessagePortPlusMockPortsMixin,\n} from './MessagePortPlus.js';\n\nexport class BroadcastChannelPlus extends MessagePortPlusMockPortsMixin(BroadcastChannel) {\n constructor(name, { handshake = 0, postAwaitsOpen = false, clientServerMode = null, autoClose = false } = {}) {\n super(name);\n\n const portPlusMeta = _meta(this);\n\n if (typeof handshake !== 'number') {\n throw new Error('handshake must be a number');\n }\n if (handshake < 0 || handshake > 2) {\n throw new Error('handshake must be between 0 and 2');\n }\n\n if (clientServerMode\n && !['server', 'client'].includes(clientServerMode)) {\n throw new Error('clientServerMode must be \"server\" or \"client\"');\n }\n\n portPlusMeta.set('options', { handshake, postAwaitsOpen, clientServerMode, autoClose });\n // Must come before upgradeEvents()\n\n this.constructor/* IMPORTANT */.upgradeEvents(this);\n\n if (handshake === 0) this.start();\n }\n\n __postMessage(payload, portOptions) {\n BroadcastChannel.prototype.postMessage.call(this, payload);\n }\n}\n", "import { _isObject, _isTypeObject } from '@webqit/util/js/index.js';\nimport { Observer, ListenerRegistry, Descriptor } from '@webqit/observer';\nimport { BroadcastChannelPlus, WebSocketPort, MessagePortPlus } from '@webqit/port-plus';\nimport { isTypeStream, _meta, _wq } from './messageParserMixin.js';\nimport { ResponsePlus } from './ResponsePlus.js';\n\nexport class LiveResponse extends EventTarget {\n\n get [Symbol.toStringTag]() {\n return 'LiveResponse';\n }\n\n static [Symbol.hasInstance](instance) {\n return instance instanceof EventTarget\n && instance?.[Symbol.toStringTag] === 'LiveResponse'\n && typeof instance.replaceWith === 'function'\n && typeof instance.now === 'function';\n }\n\n static get xHeaderName() {\n return 'X-Message-Port';\n }\n\n static test(unknown) {\n if (unknown instanceof LiveResponse) {\n return 'LiveResponse';\n }\n if (unknown instanceof LiveProgramHandleX) {\n return 'LiveProgramHandle';\n }\n if (unknown instanceof Response) {\n return 'Response';\n }\n if (isGenerator(unknown)) {\n return 'Generator';\n }\n return 'Default';\n }\n\n static hasPort(respone) {\n if (respone instanceof LiveResponse && respone.#port) {\n return true;\n }\n const responseMeta = _meta(respone);\n return !!responseMeta.get('port')\n || !!respone.headers?.get?.(this.xHeaderName)?.trim();\n }\n\n static getPort(respone, { handshake = 1 } = {}) {\n if (respone instanceof LiveResponse && respone.#port) {\n return respone.#port;\n }\n \n if (!(respone instanceof Response\n || respone instanceof LiveResponse)) {\n return;\n }\n\n const responseMeta = _meta(respone);\n\n if (!responseMeta.has('port')) {\n const value = respone.headers.get(this.xHeaderName)?.trim();\n if (!value) return;\n\n const [, scheme, portID] = /^(socket|channel):\\/\\/(.*)$/.exec(value) || [];\n if (!scheme || !portID) {\n throw new Error(`Unknown port messaging protocol: ${value}`);\n }\n\n const port = scheme === 'channel'\n ? new BroadcastChannelPlus(portID, { handshake, postAwaitsOpen: true, clientServerMode: 'client' })\n : new WebSocketPort(portID, { handshake, postAwaitsOpen: true });\n\n responseMeta.set('port', port);\n }\n\n return responseMeta.get('port');\n }\n\n static attachPort(respone, port) {\n if (port && !(port instanceof MessagePortPlus)) {\n throw new Error('Client must be a MessagePortPlus interface');\n }\n if (respone instanceof LiveResponse) {\n respone.#port = port;\n return;\n }\n const responseMeta = _meta(respone);\n responseMeta.set('port', port);\n }\n\n static from(data, ...args) {\n if (data instanceof LiveResponse) {\n return data.clone(...args);\n }\n return new this(data, ...args);\n }\n\n /* INSTANCE */\n\n #listenersRegistry;\n #readyStates;\n\n #abortController = new AbortController;\n #concurrencyAbortController = new AbortController;\n\n constructor(body, ...args) {\n super();\n this.#listenersRegistry = ListenerRegistry.getInstance(this, true);\n\n const $ref = (o) => {\n o.promise = new Promise((res, rej) => (o.resolve = res, o.reject = rej));\n return o;\n };\n this.#readyStates = {\n live: $ref({}),\n done: $ref({}),\n };\n const readyStates = this.#readyStates;\n (function refresh() {\n readyStates.now = $ref({});\n readyStates.now.refresh = refresh;\n return readyStates.now;\n })();\n\n const frame = this.#readyStates.now;\n this.#replaceWith(frame, body, ...args).catch((e) => {\n frame.reject(e);\n });\n }\n\n /* Level 1 props */\n\n #body = null;\n get body() { return this.#body; }\n\n #concurrent = false;\n get concurrent() { return this.#concurrent; }\n\n get bodyUsed() { return true; }\n\n #headers = new Headers;\n get headers() { return this.#headers; }\n\n #status = 200;\n get status() { return this.#status; }\n\n #statusText = '';\n get statusText() { return this.#statusText; }\n\n /* Level 2 props */\n\n #type = 'basic';\n get type() { return this.#type; }\n\n #redirected = false;\n get redirected() { return this.#redirected; }\n\n #url = null;\n get url() { return this.#url; }\n\n get ok() { return !!(this.#status >= 200 && this.#status < 299); }\n\n /* Level 3 props */\n\n #port;\n get port() { return this.#port; }\n\n // Lifecycle\n\n get readyState() {\n return this.#readyStates.done.state ? 'done'\n : (this.#readyStates.live.state ? 'live' : 'waiting');\n }\n\n readyStateChange(query) {\n if (!['live', 'now', 'done'].includes(query)) {\n throw new Error(`Invalid readyState query \"${query}\"`);\n }\n return this.#readyStates[query].promise;\n }\n\n disconnect(dispose = false) {\n this.#abortController.abort();\n this.#abortController = new AbortController;\n if (dispose) {\n this.#concurrencyAbortController.abort();\n this.#concurrencyAbortController = new AbortController;\n }\n }\n\n #currentFramePromise;\n #extendLifecycle(promise) {\n if (this.#readyStates.done.state) {\n throw new Error('Response already done.');\n }\n this.#currentFramePromise = promise;\n promise.then((value) => {\n if (this.#currentFramePromise === promise) {\n this.#currentFramePromise = null;\n this.#readyStates.done.state = true;\n this.#readyStates.done.resolve(value);\n }\n }).catch((e) => {\n if (this.#currentFramePromise === promise) {\n this.#currentFramePromise = null;\n this.#readyStates.done.state = true;\n this.#readyStates.done.reject(e);\n }\n });\n return promise;\n }\n\n async now() { return this.#readyStates.now.promise; }\n\n async replaceWith(body, ...args) {\n if (this.readyState === 'done') {\n throw new Error('Response already done.');\n }\n this.disconnect(); // Disconnect from existing source if any\n await this.#replaceWith(null, body, ...args);\n }\n\n async #replaceWith(__frame, body, ...args) {\n const frame = __frame || this.#readyStates.now.refresh();\n\n // ----------- Promise input\n\n if (body instanceof Promise) {\n return this.#extendLifecycle(new Promise((resolve, reject) => {\n this.#abortController.signal.addEventListener('abort', () => {\n frame.aborted = true;\n resolve();\n });\n\n body.then(async (resolveData) => {\n await this.#replaceWith(frame, resolveData, ...args);\n resolve();\n }).catch((e) => reject(e));\n }));\n }\n\n // ----------- Formatters\n\n const directReplaceWith = (__frame, responseFrame) => {\n responseFrame = Object.freeze({\n ...responseFrame,\n ok: !!(responseFrame.status >= 200 && responseFrame.status < 299),\n bodyUsed: true,\n });\n\n if (__frame?.aborted) {\n __frame.resolve(responseFrame);\n return;\n }\n\n const frame = __frame || this.#readyStates.now.refresh();\n\n const $body = responseFrame.body;\n\n this.#status = responseFrame.status;\n this.#statusText = responseFrame.statusText;\n\n for (const [name] of [/*IMPORTANT*/...this.#headers.entries()]) { // for some reason, some entries not produced when not spread\n this.#headers.delete(name);\n }\n for (const [name, value] of responseFrame.headers.entries()) {\n this.#headers.append(name, value);\n }\n\n this.#type = responseFrame.type;\n this.#redirected = responseFrame.redirected;\n this.#url = responseFrame.url;\n\n const bodyOld = this.#body;\n this.#body = $body;\n this.#concurrent = !!responseFrame.concurrent;\n\n this.#port = responseFrame.port;\n\n if (!this.#concurrent) {\n this.#concurrencyAbortController.abort();\n this.#concurrencyAbortController = new AbortController;\n }\n\n const descriptor = new Descriptor(this, {\n type: 'set',\n key: 'body',\n value: $body,\n oldValue: bodyOld,\n isUpdate: true,\n related: [],\n operation: 'set',\n detail: null,\n });\n\n // Must come first so that observers below here see this state\n\n this.#readyStates.live.state = true;\n this.#readyStates.live.resolve(this);\n\n // May trigger \"done\" ready state\n frame.resolve(responseFrame);\n\n // Must come after all property assignments above because it fires events\n this.#listenersRegistry.emit([descriptor]);\n this.dispatchEvent(new ReplaceEvent(responseFrame));\n };\n\n const wrapReplaceWith = (frame, body, options) => {\n directReplaceWith(frame, {\n body,\n status: 200,\n statusText: '',\n ...options,\n headers: options.headers instanceof Headers ? options.headers : new Headers(options.headers || {}),\n type: 'basic',\n redirected: false,\n url: null\n });\n };\n\n // ----------- \"Response\" handler\n\n const execReplaceWithResponse = async (frame, response, options) => {\n let body, port, jsonSuccess = true;\n if (response instanceof Response) {\n if (response.bodyUsed) {\n throw new Error('Response body already used');\n }\n try {\n body = await ResponsePlus.prototype.any.call(response, { to: 'json' });\n } catch (e) {\n jsonSuccess = false;\n body = await ResponsePlus.prototype.any.call(response);\n }\n port = this.constructor.getPort(response, { handshake: 2 });\n } else {\n body = (await response.readyStateChange('live')).body;\n port = response.port;\n }\n directReplaceWith(frame, {\n body,\n status: response.status,\n statusText: response.statusText,\n headers: response.headers,\n concurrent: response.concurrent, // for response === LiveResponse\n ...options,\n port,\n type: response.type,\n redirected: response.redirected,\n url: response.url,\n });\n\n if (response instanceof LiveResponse) {\n const replaceHandler = () => {\n wrapReplaceWith(null, response.body, response);\n };\n response.addEventListener('replace', replaceHandler, { signal: this.#abortController.signal });\n await response.readyStateChange('done');\n response.removeEventListener('replace', replaceHandler);\n return response;\n }\n\n if (port) {\n // Bind to upstream mutations\n if (jsonSuccess && body !== null) {\n port.projectMutations({\n from: 'initial_response',\n to: body,\n signal: this.#concurrencyAbortController.signal\n });\n }\n\n // Bind to replacements\n const returnValue = new Promise((resolve) => {\n const replaceHandler = (e) => {\n const { body, ...options } = e.data;\n wrapReplaceWith(null, body, { ...options });\n };\n port.addEventListener('response.replace', replaceHandler, { signal: this.#abortController.signal });\n port.addEventListener('response.done', () => {\n port.removeEventListener('response.replace', replaceHandler);\n resolve(this);\n }, { once: true });\n port.readyStateChange('close').then(resolve);\n });\n\n // Must come after having listened to events\n port.start();\n\n return returnValue;\n }\n };\n\n // ----------- \"Generator\" handler\n\n const execReplaceWithGenerator = async (frame, gen, options) => {\n const firstFrame = await gen.next();\n const firstValue = await firstFrame.value;\n\n await this.#replaceWith(frame, firstValue, { done: firstFrame.done, ...options });\n // this is the first time options has a chance to be applied\n\n let generatorFrame = firstFrame;\n let value = firstValue;\n\n while (!generatorFrame.done && !this.#abortController.signal.aborted) {\n generatorFrame = await gen.next();\n value = await generatorFrame.value;\n if (!this.#abortController.signal.aborted) {\n await this.#replaceWith(null, value, { concurrent: options.concurrent, done: options.done === false ? false : generatorFrame.done });\n // top-level false need to be respected: means keep instance alive even when done\n }\n }\n };\n\n // ----------- \"LiveProgramHandle\" handler\n\n const execReplaceWithLiveProgramHandle = async (frame, liveProgramHandle, options) => {\n await this.#replaceWith(frame, liveProgramHandle.value, options);\n // this is the first time options has a chance to be applied\n\n Observer.observe(\n liveProgramHandle,\n 'value',\n (e) => this.#replaceWith(null, e.value, { concurrent: options.concurrent, done: false }),\n // we're never done unless explicitly aborted\n { signal: this.#abortController.signal }\n );\n\n return new Promise(() => { });\n };\n\n // ----------- Procesing time\n\n const frameClosure = typeof args[0]/* !ORDER 1 */ === 'function' ? args.shift() : null;\n const frameOptions = _isObject(args[0]/* !ORDER 2 */) ? { ...args.shift() } : {};\n\n if ('status' in frameOptions) {\n frameOptions.status = parseInt(frameOptions.status);\n if (frameOptions.status < 200 || frameOptions.status > 599) {\n throw new Error(`The status provided (${frameOptions.status}) is outside the range [200, 599].`);\n }\n }\n if ('statusText' in frameOptions) {\n frameOptions.statusText = String(frameOptions.statusText);\n }\n if (frameOptions.headers && !(frameOptions.headers instanceof Headers)) {\n frameOptions.headers = new Headers(frameOptions.headers);\n }\n if ('concurrent' in frameOptions) {\n frameOptions.concurrent = Boolean(frameOptions.concurrent);\n }\n\n // ----------- Dispatch time\n\n if (body instanceof Response\n || body instanceof LiveResponse) {\n if (frameClosure) {\n throw new Error(`frameClosure is not supported for responses.`);\n }\n frame.donePromise = execReplaceWithResponse(frame, body, frameOptions);\n } else if (isGenerator(body)) {\n if (frameClosure) {\n throw new Error(`frameClosure is not supported for generators.`);\n }\n frame.donePromise = execReplaceWithGenerator(frame, body, frameOptions);\n } else if (body instanceof LiveProgramHandleX) {\n if (frameClosure) {\n throw new Error(`frameClosure is not supported for live program handles.`);\n }\n frame.donePromise = execReplaceWithLiveProgramHandle(frame, body, frameOptions);\n } else {\n frame.donePromise = Promise.resolve(wrapReplaceWith(frame, body, frameOptions));\n if (frameClosure) {\n const reactiveProxy = _isTypeObject(body) && !isTypeStream(body)\n ? Observer.proxy(body, { chainable: true, membrane: body })\n : body;\n frame.donePromise = Promise.resolve(frameClosure.call(this, reactiveProxy, this.#concurrencyAbortController.signal));\n }\n }\n\n // Lifecycle time\n\n this.#extendLifecycle(frameOptions.done === false ? new Promise(() => { }) : frame.donePromise);\n\n return await new Promise((resolve, reject) => {\n this.#abortController.signal.addEventListener('abort', () => resolve(false));\n frame.donePromise.then(() => resolve(true)).catch(reject);\n });\n }\n\n // ----------- Conversions\n\n toResponse({ port: clientPort, signal: abortSignal } = {}) {\n if (clientPort && !(clientPort instanceof MessagePortPlus)) {\n throw new Error('Client must be a MessagePortPlus interface');\n }\n\n const response = ResponsePlus.from(this.body, {\n status: this.#status,\n statusText: this.#statusText,\n headers: this.#headers,\n });\n\n const responseMeta = _meta(this);\n _wq(response).set('meta', new Map(responseMeta));\n\n if (!clientPort) return response;\n\n if (_isTypeObject(this.#body) && !isTypeStream(this.#body)) {\n clientPort.projectMutations({\n from: this.#body,\n to: 'initial_response',\n signal: AbortSignal.any([this.#concurrencyAbortController.signal].concat(abortSignal || []))/* stop observing mutations on body when we abort */\n });\n }\n\n const replaceHandler = () => {\n const headers = Object.fromEntries([...this.headers.entries()]);\n\n if (headers?.['set-cookie']) {\n delete headers['set-cookie'];\n console.warn('Warning: The \"set-cookie\" header is not supported for security reasons and has been removed from the response.');\n }\n\n clientPort.postMessage({\n body: this.#body,\n status: this.#status,\n statusText: this.#statusText,\n headers,\n type: this.type,\n url: this.url,\n redirect: this.redirect,\n concurrent: this.#concurrent,\n }, { type: 'response.replace', live: true/*gracefully ignored if not an object*/, signal: AbortSignal.any([this.#concurrencyAbortController.signal].concat(abortSignal || []))/* stop observing mutations on body a new body takes effect */ });\n };\n\n this.addEventListener('replace', replaceHandler, { signal: abortSignal || undefined/* NO NULLS stop listening when we abort */ });\n this.readyStateChange('done').then(() => {\n clientPort.postMessage(null, { type: 'response.done' });\n });\n\n return response;\n }\n\n async * toGenerator({ signal: abortSignal } = {}) {\n do {\n yield this.body;\n } while (await new Promise((resolve) => {\n this.addEventListener('replace', () => resolve(true), { once: true, signal: abortSignal || undefined/* NO NULLS */ });\n this.readyStateChange('done').then(() => resolve(false));\n }));\n }\n\n toLiveProgramHandle({ signal: abortSignal } = {}) {\n const handle = new LiveProgramHandleX;\n\n const replaceHandler = () => Observer.defineProperty(handle, 'value', { value: this.body, enumerable: false, configurable: true });\n this.addEventListener('replace', replaceHandler, { signal: abortSignal || undefined/* NO NULLS */ });\n replaceHandler();\n\n return handle;\n }\n\n clone(init = {}) {\n const clone = new this.constructor();\n\n const responseMeta = _meta(this);\n _wq(clone).set('meta', new Map(responseMeta));\n\n clone.replaceWith(this, init);\n return clone;\n }\n}\n\nexport const isGenerator = (obj) => {\n return typeof obj?.next === 'function' &&\n typeof obj?.throw === 'function' &&\n typeof obj?.return === 'function';\n};\n\nexport class ReplaceEvent extends Event {\n\n [Symbol.toStringTag] = 'ReplaceEvent';\n\n static [Symbol.hasInstance](instance) {\n return instance instanceof Event\n && instance[Symbol.toStringTag] === 'ReplaceEvent';\n }\n\n #data;\n get data() { return this.#data; }\n\n constructor(responseFrame) {\n super('replace');\n this.#data = responseFrame;\n }\n}\n\nexport class LiveProgramHandleX {\n [Symbol.toStringTag] = 'LiveProgramHandle';\n\n static [Symbol.hasInstance](instance) {\n return instance?.[Symbol.toStringTag] === 'LiveProgramHandle';\n }\n\n abort() { }\n}\n", "import * as FetchPlus from './index.js';\n\nif (!globalThis.webqit) globalThis.webqit = {}\nObject.assign(globalThis.webqit, FetchPlus);"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["Oe", "e", "t", "D", "c", "l", "a", "f", "s", "i", "Re", "Ee", "o", "F", "x", "u", "h", "p", "d", "g", "y", "A", "xe", "N", "H", "$", "M", "P", "X", "Z", "m", "S", "v", "k", "E", "be", "B", "q", "W", "T", "ee", "te", "ke", "_", "U", "re", "ne", "se", "ie", "K", "j", "ae", "oe", "ce", "le", "z", "G", "fe", "w", "he", "ue", "de", "pe", "ge", "me", "Se", "R", "I", "L", "Te", "Ae", "Pe", "b", "J", "Q", "C", "V", "O", "Y", "init_urlpattern", "__esmMin", "r", "n", "#i", "#n", "#t", "#e", "#l", "#o", "#d", "#p", "#g", "#b", "#f", "#r", "#h", "#u", "#A", "#T", "#P", "#C", "#E", "#S", "#O", "#y", "#w", "#k", "#c", "#R", "urlpattern_polyfill_exports", "__export", "Y", "init_urlpattern_polyfill", "__esmMin", "init_urlpattern", "src_exports", "__export", "FormDataPlus", "HeadersPlus", "LiveResponse", "src_default", "RequestPlus", "ResponsePlus", "fetchPlus", "isObject_default", "val", "getType_default", "val", "isArray_default", "val", "isBoolean_default", "val", "isTypeFunction_default", "val", "isNull_default", "val", "isUndefined_default", "val", "isTypeObject_default", "val", "isTypeFunction_default", "isEmpty_default", "val", "isNull_default", "isUndefined_default", "isTypeObject_default", "isFunction_default", "val", "isTypeFunction_default", "isNumber_default", "val", "isNumeric_default", "val", "isNumber_default", "isPlainArray_default", "obj", "isArray_default", "isPlainObject_default", "obj", "isObject_default", "isString_default", "val", "isTypeArray_default", "val", "isString_default", "isUndefined_default", "wq", "obj", "namespaces", "WQInternals", "_ns", "_wq", "after_default", "subject", "search", "afterLast", "pos", "before_default", "subject", "search", "beforeLast", "pos", "URLPatternPlus", "#inputUrl", "init", "baseURL", "hasUnescapedMeta", "str", "metaChars", "esc", "ch", "META", "url", "args", "result", "named", "component", "vars", "_", "token", "main_exports", "__export", "any", "apply", "batch", "construct", "defineProperties", "defineProperty", "deleteProperties", "deleteProperty", "get", "getOwnPropertyDescriptor", "getOwnPropertyDescriptors", "getPrototypeOf", "has", "intercept", "isExtensible", "map", "observe", "ownKeys", "path", "preventExtensions", "reduce", "set", "setPrototypeOf", "subtree", "from_default", "val", "castObject", "isArray_default", "isObject_default", "isEmpty_default", "isTypeArray_default", "_wq", "target", "args", "wq", "_await", "value", "callback", "env", "Registration", "registry", "dfn", "ListenerRegistration", "Registration", "env", "events", "matches", "filter", "from_default", "event", "$ret", "_await", "ret", "recursions", "Registry", "target", "registration", "_entry", "type", "createIfNotExists", "namespace", "isTypeObject_default", "getType_default", "ImplementationClass", "_wq", "Descriptor", "target", "dfn", "instance", "ListenerRegistry", "Registry", "target", "createIfNotExists", "namespace", "ImplementationClass", "filter", "emit", "params", "ListenerRegistration", "events", "eventsArePropertyDescriptors", "eventIsArrayMethodDescriptor", "arrayMethodName", "listeners", "snapshots", "listenersLength", "listenersAskingEventsWithPropertyDescriptors", "listenersAskingArrayMethodDescriptors", "listener", "events_with_PropertyDescriptors_with_ArrayMethodDescriptors", "events_with_PropertyDescriptors_without_ArrayMethodDescriptors", "events_without_PropertyDescriptors_with_ArrayMethodDescriptors", "events_without_PropertyDescriptors_without_ArrayMethodDescriptors", "snapshot", "event", "$event", "type", "details", "Descriptor", "callback", "returnValue", "_await", "batch", "TrapsRegistration", "Registration", "descriptor", "next", "recieved", "args", "TrapsRegistry", "Registry", "target", "createIfNotExists", "namespace", "ImplementationClass", "dfn", "TrapsRegistration", "descriptor", "defaultHandler", "$this", "next", "index", "_args", "registration", "args", "actors_exports", "__export", "accessorize", "proxy", "unaccessorize", "unproxy", "symWQOriginal", "accessorize", "target", "props", "params", "resolveTarget", "accessorizedProps", "_wq", "getDescriptorDeep", "prop", "descriptor", "proto", "accessorizeProp", "currentDescriptorRecord", "withPropertyDescriptors", "value", "currentDescriptor", "accessorization", "enumerable", "set", "get", "statuses", "unaccessorize", "unaccessorizeProp", "proxy", "extendCallback", "originalTarget", "traps", "thisArgument", "argumentsList", "apply", "newTarget", "construct", "propertyKey", "attributes", "defineProperty", "deleteProperty", "receiver", "$params", "returnValue", "isTypeObject_default", "getOwnPropertyDescriptor", "getPrototypeOf", "has", "isExtensible", "ownKeys", "preventExtensions", "prototype", "setPrototypeOf", "$traps", "$proxy", "unproxy", "Path", "instance", "path", "segments", "Subtree", "subtree", "any", "reduce", "target", "receiver", "final", "x", "params", "_isSubtree", "eat", "$params", "$isSubtree", "isSubtree", "segment", "isLastSegment", "Descriptor", "result", "args", "addTrail", "desc", "flags", "advance", "$value", "resolveObj", "_await", "isPropsList", "entry", "observe", "prop", "originalTarget", "isFunction_default", "getType_default", "isTypeObject_default", "get", "emit", "bind", "intercept", "traps", "isObject_default", "TrapsRegistry", "getOwnPropertyDescriptor", "exec", "getOwnPropertyDescriptors", "getPrototypeOf", "isExtensible", "ownKeys", "has", "isLive", "resolveProps", "props", "related", "next", "results", "_props", "_done", "defaultGet", "descriptor", "value", "_next", "accessorizedProps", "_wq", "accessorization", "trapsRegistry", "result_s", "batch", "callback", "ListenerRegistry", "map", "source", "only", "except", "sourceKeys", "k", "filteredKeys", "resolveKey", "i", "doSet", "key", "set", "defineProperty", "mutations", "m", "deleteProperty", "def", "entries", "descriptors", "defaultSet", "status", "isUpdate", "oldValue", "exists", "listenerRegistry", "opr", "defineProperties", "from_default", "defaultDel", "deleteProperties", "construct", "argumentsList", "newTarget", "apply", "thisArgument", "originalThis", "unproxy", "returnValue", "setPrototypeOf", "proto", "preventExtensions", "controller", "env", "childRegistrations", "descriptor_s", "prevRegistration", "registrationNext", "isExisting", "handlerReturnValue", "operation", "payload", "defaultExec", "obj", "assert", "probePropertyDescriptors", "p", "name", "Observer", "main_exports", "actors_exports", "src_default", "URLSearchParamsPlus", "_URLSearchParamsPlus", "#tree", "#compatMode", "#compatModeKeys", "#prettyPrint", "#sorted", "#changeCallback", "init", "compatMode", "prettyPrint", "changeCallback", "tree", "isString_default", "q", "k", "isObject_default", "v", "path", "next", "Observer", "value", "#get", "all", "parts", "key", "parent", "out", "cb", "thisArg", "c", "str", "parseNums", "delim", "i", "val", "entries", "sorted", "only", "keys", "suggested", "allowGetAll", "t", "branch", "appendIfExists", "ctx", "encodeOffsets", "isTypeObject_default", "isNumeric_default", "_", "b", "p", "FormDataPlus", "_FormDataPlus", "formData", "data", "encodeLiterals", "meta", "isDirectlySerializable", "URLSearchParamsPlus", "value", "contextPath", "suggestedKeys", "isJson", "dataType", "decodeLiterals", "json", "name", "isNumeric_default", "before_default", "type", "_value", "_wq", "target", "args", "wq", "_meta", "messageParserMixin", "superClass", "httpMessageInit", "headers", "_headers", "name", "value", "key", "body", "type", "dataType", "isTypeObject_default", "_body", "isDirectlySerializable", "FormDataPlus", "k", "v", "fd", "to", "memo", "cache", "readAs", "byValue", "x", "clone", "isPlainObject_default", "isPlainArray_default", "result", "contentType", "json", "t", "isNumber_default", "isBoolean_default", "isString_default", "toStringTag", "_toStringTag", "isObject_default", "isTypeReadable", "obj", "isTypeStream", "HeadersPlus", "_HeadersPlus", "headers", "name", "value", "v", "isObject_default", "renderCookieObjToString", "renderCookieInput", "renderContentRangeInput", "renderRangeInput", "renderAcceptInput", "structured", "str", "cookieDefinition", "attrs", "s", "cookieObj", "attrStr", "attrsArr", "after_default", "rangeStr", "range", "totalLength", "offsets", "currentStart", "parseSpec", "spec", "mime", "q", "$value", "b", "splitMime", "$mime", "prev", "entry", "$entry", "i", "attrName", "_attrName", "isTypeObject_default", "rangeArr", "from_default", "n", "ResponsePlus", "_ResponsePlus", "messageParserMixin", "body", "init", "HeadersPlus", "response", "memoize", "$type", "headers", "instance", "cache", "_meta", "typeMap", "clone", "responseMeta", "_wq", "fetchPlus", "url", "options", "response", "ResponsePlus", "RequestPlus", "_RequestPlus", "messageParserMixin", "url", "init", "HeadersPlus", "request", "memoize", "$type", "$$body", "body", "headers", "$$type", "instance", "cache", "_meta", "typeMap", "requestInit", "$init", "prop", "clone", "requestMeta", "_wq", "MessageEventPlus", "#originalTarget", "#eventID", "#data", "#live", "#bubbles", "#forwarded", "#honourDoneMutationFlags", "#ports", "data", "originalTarget", "type", "eventID", "live", "honourDoneMutationFlags", "bubbles", "forwarded", "ports", "port", "MessagePortPlus", "isTypeObject_default", "applyMutations", "#immediatePropagationStopped", "#propagationStopped", "#defaultPrevented", "transferOrOptions", "WebSocketPort", "MessagePortPlusMockPortsMixin", "#ws", "#wsReady", "ws", "handshake", "postAwaitsOpen", "_meta", "resolve", "portPlus", "event", "data", "isObject_default", "payload", "portOptions", "_wq", "target", "args", "wq", "_meta", "_options", "portPlusMethods", "portPlusProps", "MessagePortPlus", "MessagePortPlusMixin", "handshake", "postAwaitsOpen", "options", "instance", "m", "superClass", "port", "proto", "prop", "original", "plus", "portPlus", "rawPortMeta", "portPlusMeta", "garbageCollection", "getGarbageCollection", "readyStateInternals", "getReadyStateInternals", "messageHandler", "e", "MessageEventPlus", "nowOpen", "reply", "p", "close", "message", "wqOptions", "eventPlus", "errorHandler", "v", "returnValue", "event", "propagateEvent", "transferOrOptions", "portPlusIgnore", "_relayedFrom", "portOptions", "relayedFrom", "preProcessPostMessage", "WebSocketPort", "post", "type", "handler", "handle", "response", "data", "callback", "isObject_default", "resolve", "messageChannel", "signal", "once", "transfer", "targetPort", "sourcePort", "types", "channel", "resolveMessage", "bidirectional", "k", "downstreamRegistry", "getDownstreamRegistry", "registration", "cleanup2", "channelSpec", "from", "to", "isTypeObject_default", "applyMutations", "publishMutations", "query", "readyStateOpen", "handshakeChannel", "id", "pingData", "garbageCollect", "MessagePortPlusMockPortsMixin", "numPorts", "payload", "_portOptions", "messagePorts", "t", "i", "portMeta", "eventID", "live", "bubbles", "ports", "called", "$type", "$ref", "o", "res", "rej", "dispose", "observing", "forwarded", "withArrayMethodDescriptors", "honourDoneMutationFlags", "mutationHandler", "mutations", "mutationsDone", "Observer", "mutation", "cleanup", "BroadcastChannelPlus", "MessagePortPlusMockPortsMixin", "name", "handshake", "postAwaitsOpen", "clientServerMode", "autoClose", "portPlusMeta", "_meta", "payload", "portOptions", "LiveResponse", "_LiveResponse", "instance", "unknown", "LiveProgramHandleX", "isGenerator", "respone", "#port", "_meta", "handshake", "responseMeta", "value", "scheme", "portID", "port", "BroadcastChannelPlus", "WebSocketPort", "MessagePortPlus", "data", "args", "#listenersRegistry", "#readyStates", "#abortController", "#concurrencyAbortController", "body", "ListenerRegistry", "$ref", "o", "res", "rej", "readyStates", "refresh", "frame", "#replaceWith", "e", "#body", "#concurrent", "#headers", "#status", "#statusText", "#type", "#redirected", "#url", "query", "dispose", "#currentFramePromise", "#extendLifecycle", "promise", "__frame", "resolve", "reject", "resolveData", "directReplaceWith", "responseFrame", "$body", "name", "bodyOld", "descriptor", "Descriptor", "ReplaceEvent", "wrapReplaceWith", "options", "execReplaceWithResponse", "response", "jsonSuccess", "ResponsePlus", "replaceHandler", "returnValue", "execReplaceWithGenerator", "gen", "firstFrame", "firstValue", "generatorFrame", "execReplaceWithLiveProgramHandle", "liveProgramHandle", "Observer", "frameClosure", "frameOptions", "isObject_default", "reactiveProxy", "isTypeObject_default", "isTypeStream", "clientPort", "abortSignal", "_wq", "headers", "handle", "init", "clone", "obj", "#data", "src_exports"]
|
|
7
7
|
}
|