nv-buf-serde 1.0.4 → 1.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/DIST/nv-buf-serde-bw.js +2 -2
- package/TODO +473 -0
- package/misc.js +6 -1
- package/package.json +2 -3
- package/w.js +123 -123
package/DIST/nv-buf-serde-bw.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var v8serde=(()=>{var
|
|
1
|
+
var v8serde=(()=>{var y=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports);var I=y((Da,er)=>{var kn=e=>e===void 0,pn=e=>e===null,z=e=>e==null,An=e=>e===!0,Sn=e=>e===!1,Qe=e=>e===!0||e===!1,wn=e=>z(e)||Qe(e),mn=e=>z(e)?null:e,En=e=>z(e)?void 0:e;er.exports={_u:void 0,_n:null,_t:!0,_f:!1,is_untf:wn,is_unnu:z,is_un:kn,is_nu:pn,is_bl:Qe,is_tru:An,is_fls:Sn,unize:En,nuize:mn}});var nr=y((Fa,tr)=>{var{_u:La,_n:Ma,_t:rr,_f:Na}=I();tr.exports={treat_array_buffer_views_as_host_objects_:rr,suppress_deserialization_errors_:rr}});var or=y((Wa,sr)=>{sr.exports={kTheHole:"the hole element will be replaced by undefined",kSparseArray:`
|
|
2
2
|
NOT support. only dense/packed_smi/packed_double.
|
|
3
3
|
hard to explain this, refer to ./TEST/hole-tst.js
|
|
4
4
|
this script will make sparse-array
|
|
@@ -21,5 +21,5 @@ var v8serde=(()=>{var g=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);
|
|
|
21
21
|
`,JSMap:"extra attributes set On Map will be dropped, for compatible to current v8-impl",JSSet:"extra attributes set On Set will be dropped, for compatible to current v8-impl",RegExp:"extra attributes set On RegExp will be dropped, for compatible to current v8-impl",Date:"extra attributes set On Date will be dropped, for compatible to current v8-impl",PrimitiveWrapper:`
|
|
22
22
|
extra attributes set On PrimitiveWrapper will be dropped, for compatible to current v8-impl;
|
|
23
23
|
not support <new BigInt>, in c++ layer ,it can be done, in js-layer ,impossible
|
|
24
|
-
`,"Error'message":"Error'message treated as string","Error'stack":"Error'stack treated as string",kVerifyObjectCount:"no verify",throwDetachedArrayBufferError:"dont know how to get this state in js-layer",kArrayBufferTransfer:"hard to do this in js-layer",kSharedObject:"hard to do this in js-layer",kWasmModuleTransfer:"hard to do this in js-layer",kWasmMemoryTransfer:"hard to do this in js-layer",ITERATOR:"dont know how to get the iter cursor in js-layer, treated as a {}",ATOMICS:"dont know how to do this, treated as a {}",FPG:"function | lambda | promise| generator| all treated as a {}",Proxy:"hard to do this in browser, so treated as the-target-be-proxied"}});var V=g((Ta,nt)=>{var{_u:An,_n:Oa,_t:fe,_f:Ra}=j(),Sn={kVersion:255,kPadding:0,kVerifyObjectCount:63,kTheHole:45,kUndefined:95,kNull:48,kTrue:84,kFalse:70,kInt32:73,kUint32:85,kDouble:78,kBigInt:90,kUtf8String:83,kOneByteString:34,kTwoByteString:99,kObjectReference:94,kBeginJSObject:111,kEndJSObject:123,kBeginSparseJSArray:97,kEndSparseJSArray:64,kBeginDenseJSArray:65,kEndDenseJSArray:36,kDate:68,kTrueObject:121,kFalseObject:120,kNumberObject:110,kBigIntObject:122,kStringObject:115,kRegExp:82,kBeginJSMap:59,kEndJSMap:58,kBeginJSSet:39,kEndJSSet:44,kArrayBuffer:66,kResizableArrayBuffer:126,kArrayBufferTransfer:116,kArrayBufferView:86,kSharedArrayBuffer:117,kSharedObject:112,kWasmModuleTransfer:119,kHostObject:92,kWasmMemoryTransfer:109,kError:114,kLegacyReservedMessagePort:77,kLegacyReservedBlob:98,kLegacyReservedBlobIndex:105,kLegacyReservedFile:102,kLegacyReservedFileIndex:101,kLegacyReservedDOMFileSystem:100,kLegacyReservedFileList:108,kLegacyReservedFileListIndex:76,kLegacyReservedImageData:35,kLegacyReservedImageBitmap:103,kLegacyReservedImageBitmapTransfer:71,kLegacyReservedOffscreenCanvas:72,kLegacyReservedCryptoKey:75,kLegacyReservedRTCCertificate:107},rt={kInt8Array:98,kUint8Array:66,kUint8ClampedArray:67,kInt16Array:119,kUint16Array:87,kInt32Array:100,kUint32Array:68,kFloat32Array:102,kFloat64Array:70,kBigInt64Array:113,kBigUint64Array:81,kDataView:63};Object.defineProperty(rt,"UNUSED_",{get:function(){return fe}});var de=Symbol("#kNodeFastBuffer"),mn={kInt8Array:0,kUint8Array:1,kUint8ClampedArray:2,kInt16Array:3,kUint16Array:4,kInt32Array:5,kUint32Array:6,kFloat32Array:7,kFloat64Array:8,kDataView:9,kNodeFastBuffer:10,kBigInt64Array:11,kBigUint64Array:12},ue=class extends Uint8Array{[de]=fe},wn=e=>e[de]===fe,En=e=>Object.prototype.toString.call(e),Bn=e=>{let t=En(e);return t==="[object Int8Array]"?0:t==="[object Uint8Array]"?1:t==="[object Uint8ClampedArray]"?2:t==="[object Int16Array]"?3:t==="[object Uint16Array]"?4:t==="[object Int32Array]"?5:t==="[object Uint32Array]"?6:t==="[object Float32Array]"?7:t==="[object Float64Array]"?8:t==="[object DataView]"?9:t==="[object BigInt64Array]"?11:t==="[object BigUint64Array]"?12:-1},jn=[Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,DataView,ue,BigInt64Array,BigUint64Array],In={kEvalErrorPrototype:69,kRangeErrorPrototype:82,kReferenceErrorPrototype:70,kSyntaxErrorPrototype:83,kTypeErrorPrototype:84,kUriErrorPrototype:85,kMessage:109,kCause:99,kStack:115,kEnd:46},On="#___kCantBeSered___",Rn=(e,t)=>({id:e,kCantBeSered:t}),Tn="#___kUnknown___",Un=()=>({kUnknown:An}),vn="v8ser";nt.exports={CODEC_NAME:vn,kNodeFastBufferSym:de,IsNodeFastBuffer:wn,SerializationTag:Sn,V8_ArrayBufferViewTag:rt,ArrayBufferViewTag:mn,ArrayBufferViewIndexToCtor:jn,arrayBufferViewTypeToIndex:Bn,ErrorTag:In,kCantBeSered:On,CreatFakeCantBeSered:Rn,kUnknown:Tn,CreatUnknown:Un}});var z=g((Ua,ct)=>{var Dn=Object,T={un:"undefined",bl:"boolean",str:"string",num:"number",obj:"object",sym:"symbol",bi:"bigint",func_like:"function"},U=(e,t)=>typeof e===t,Nn=(e,t)=>e instanceof t,Ln=e=>U(e,T.str),Mn=e=>U(e,T.sym),Fn=e=>Symbol.keyFor(e)!==void 0,Jn=e=>Symbol.keyFor(e)===void 0,Wn=e=>U(e,T.bi),st=e=>U(e,T.num),ot=e=>Dn.is(e,NaN),at=e=>e===1/0,it=e=>e===-1/0,lt=e=>ot(e)||at(e)||it(e),qn=e=>!lt(e)&&st(e),Cn=e=>1/e===1/0,Pn=e=>1/e===-1/0,Vn=e=>U(e,T.func_like);ct.exports={TNAMED:T,typof:U,is_str:Ln,is_num:st,is_sym:Mn,is_glb_sym:Fn,is_non_glb_sym:Jn,is_bi:Wn,istof:Nn,is_abnormal_num:lt,is_nan:ot,is_pos_infi:at,is_neg_infi:it,is_normal_num:qn,is_pos_zero:Cn,is_neg_zero:Pn,is_func_like:Vn}});var x=g((va,St)=>{var ut=-(2n**31n),ft=2n**31n-1n,dt=e=>e>=-2147483648&&e<=2147483647,zn=e=>e>=ut&&e<=ft,be=e=>BigInt(e),ye=e=>Number(e),bt=-(2**30),yt=2**30-1,xn=-(2n**30n),Hn=2n**30n-1n,gt=e=>e>=bt&&e<=yt,ht=e=>e<<1^e>>31,ge=e=>e<<1n^e>>63n,kt=e=>ye(ge(be(e))),pt=e=>e>>1^-(e&1),he=e=>e>>1n^-(e&1n),At=e=>ye(he(be(e))),Xn=e=>typeof e=="bigint"?ge(e):gt(e)?ht(e):kt(e),Gn=e=>typeof e=="bigint"?he(e):dt(e)?pt(e):At(e);St.exports={MIN_SMI:-2147483648,MAX_SMI:2147483647,MIN_SMI_BI:ut,MAX_SMI_BI:ft,is_smi:dt,is_smi_bi:zn,_bi:be,_num:ye,_encd_smi:ht,_encd_bi:ge,_encd_between_smi_bi:kt,_decd_smi:pt,_decd_bi:he,_decd_between_smi_bi:At,MIN_SMI_CAN_BE_ENCDED:bt,MAX_SMI_CAN_BE_ENCDED:yt,MIN_SMI_BI_CAN_BE_ENCDED:xn,MAX_SMI_BI_CAN_BE_ENCDED:Hn,is_smi_can_be_encded:gt,encd:Xn,decd:Gn}});var ke=g((Da,mt)=>{var Kn=String,Yn=e=>Kn.fromCodePoint(e);mt.exports={cd2ch:Yn}});var D=g((Na,jt)=>{var wt=e=>(e>>8&252)===216,Et=e=>(e>>8&252)===220,$n=e=>!wt(e)&&!Et(e),Bt=(e,t)=>((e&1023)<<10)+(t&1023)+65536,Zn=(e,t)=>t===1?e[0]:Bt(e[0],e[1]);jt.exports={is_high_surrogate:wt,is_low_surrogate:Et,is_not_surrogate:$n,surrogate_to_code:Bt,b16arr_to_code:Zn}});var Ut=g((La,Tt)=>{var N=D(),Qn=0,It=2,Ot=5,Rt=["INIT","N","H","L","R","ERROR"],L={in_error_must_reset:"in_error_must_reset",fst_b16_invalid:"fst b16 cant be <0b1111_11xx_xxxx_xxxx>",low_invalid:"low must be <0b1111_11xx_xxxx_xxxx>"},es=e=>{e[0]=3,e[1]=e[1]&240;for(let t=2;t<5;t++)e[t]=0},pe=(e,t,r)=>{if(e.is_auto_recover_enabled()){e.reset();return}else throw e[1]=(e[1]&240)+Ot,e[2]=t,new Error(r)},I=class extends Uint16Array{constructor(t=!0){super(5),this[0]=3,this[1]=t?16:0,this[2]=0}get cursor_(){return this[0]}get state_code_(){return this[1]&15}get state_name_(){return Rt[this.state_code_]}is_init(){return this.state_code_===Qn}is_high(){return this.state_code_===It}is_err(){return this.state_code_===Ot}is_auto_recover_enabled(){return(this[1]&240)===1}enable_auto_recover(){this[1]=this[1]|16}disable_auto_recover(){this[1]=this[1]&15}get lefted_(){return Array.from(this).slice(3,this[0])}get err_b16_(){return this[2]}input(t){let r=t.charCodeAt(0);if(this.is_init())if(N.is_high_surrogate(r)){this[3]=r,this[1]=(this[1]&240)+It,this[0]++;return}else return N.is_low_surrogate(r)?pe(this,r,L.fst_b16_invalid):(this.reset(),r);else{if(this.is_high())return N.is_high_surrogate(r)?pe(this,r,L.low_invalid):N.is_low_surrogate(r)?(r=N.surrogate_to_code(this[3],r),this.reset(),r):pe(this,r,L.low_invalid);if(this.is_err())return new Error(L.in_error_must_reset)}}reset(){es(this)}dict(){return{cursor:this[0],state:this.state_name_,data:this.lefted_,err_b16:this.err_b16_}}get[Symbol.toStringTag](){return JSON.stringify(this.dict())}};I.ALGN_OFFSET=3;I.ALGN_SIZE=5;var ts=new I(!0),rs=new I(!1);Tt.exports={STATES:Rt,ERRORS:L,Mach:I,auto_recover_mach:ts,mach:rs}});var Dt=g((Ma,vt)=>{vt.exports={def:D(),mach:Ut()}});var Ft=g((Fa,Mt)=>{var{is_high_surrogate:Ae}=D(),Nt=(e,t)=>{let r=e.length,n=0,s=0,o=-1;for(;!(s>=r);)o=e[s].charCodeAt(0),Ae(o)?(++s,++s):(o===t&&++n,++s);return n},Lt=(e,t,r)=>{let n=e.length,s=0,o=0,a=-1;for(;!(o>=n);)a=e[o].charCodeAt(0),Ae(a)&&(a===t&&(a=e[o+1].charCodeAt(0),a===r&&++s),++o),++o;return s},ns=e=>{let t=e.charCodeAt(0);return Ae(t)?[t,e.charCodeAt(1)]:[t,-1]},ss=(e,t)=>{let[r,n]=_is_u16u16_char(t);return n!=-1?Lt(e,r,n):Nt(e,r)};Mt.exports={_char_freq_if_u16:Nt,_char_freq_if_u16u16:Lt,_parse_char:ns,char_freq:ss}});var Wt=g((Wa,Jt)=>{var{cd2ch:Ja}=ke(),{is_high_surrogate:os}=D(),H=(e,t,r)=>{let n=e[r].charCodeAt(0);return os(n)?[e.codePointAt(r),r,r+2]:[n,r,r+1]},Se=(e,t)=>t===0?[-1,-1,0]:H(e,t,0),as=(e,t=(cd,ci,offset))=>{let r=e.length,n=0,[s,o,a]=Se(e,r);for(t(s,n,o),++n,o=a;o<r;)[s,o,a]=H(e,r,o),t(s,n,o),++n,o=a},is=e=>{let t=e.length,r=Array.from({length:t}).map(h=>[-1,-1]),n=Array.from({length:t}).map(h=>-1),s=Array.from({length:t}).map(h=>-1),o=Array.from({length:t}).map(h=>-1),a=0,[c,l,u]=Se(e,t);for(r[a][0]=0,r[a][1]=0,s[a]=c,n[a]=l,o[a]=u-l,++a,l=u;l<t;){[c,l,u]=H(e,t,l);let h=r[a-1],A=s[h[0]];c===A?(r[a][0]=h[0]+1,r[a][1]=o[h[0]]):(r[a][0]=0,r[a][1]=0),s[a]=c,n[a]=l,o[a]=o[a-1]+(u-l),++a,l=u}return{mx:r,cd:s,of:n,sz:o}},ls=(e,t,r,n,s)=>r+s-e.mx[n-t-1][1];Jt.exports={_fst:Se,_next:H,_while:as,max_cmmn_psfix:is,mvto:ls}});var me=g((qa,Ct)=>{var qt=e=>{e=e-65536;let t=e&1023|56320;return[e>>10|55296,t]},cs=e=>{if(e<65536){let t=e&255,r=e>>8;return[t,r]}else{let[t,r]=qt(e),n=t&255,s=t>>8,o=r&255,a=r>>8;return[n,s,o,a]}};Ct.exports={MAX_CODE:1114111,_split_to_hilo:qt,split:cs}});var Vt=g((Ca,Pt)=>{var _s=me(),we=class{u8a;ei=0;cnt=0;constructor(t){this.u8a=new Uint8Array(t)}get view_(){return this.u8a.subarray(0,this.ei)}input(t){let r=_s.split(t);switch(++this.cnt,r.length){case 2:{this.u8a[this.ei]=r[0],++this.ei;break}case 4:{this.u8a[this.ei]=r[0],++this.ei,this.u8a[this.ei]=r[1],++this.ei,this.u8a[this.ei]=r[2],++this.ei,this.u8a[this.ei]=r[3],++this.ei;break}}return r}reset(){this.ei=0,this.cnt=0}};Pt.exports={Mach:we}});var xt=g((Pa,zt)=>{zt.exports={def:me(),mach:Vt()}});var X=g((Va,Ht)=>{var us=ke(),fs=Dt(),ds=Ft(),bs=Wt(),ys=xt();Ht.exports={cmmd:us,decd:fs,encd:ys,freq:ds,handle:bs}});var G=g((Ga,Yt)=>{var gs=Object.is,{istof:za,is_num:hs}=z(),{_u:xa,_n:Ha,_t:Be,_f:Ee}=j(),ks=x(),Xa=X(),ps=e=>{let t=0;do t++,e>>=7;while(e);return t},Xt=e=>{for(let t=0;t<e.length;++t)if(e.charCodeAt(t)>255)return!1;return!0},As=e=>!Xt(e),Ss=(e,t)=>{let n=new DataView(e.buffer).getFloat64(t,Be);return gs(n,NaN)},ms={PACKED_SMI_ELEMENTS:0,HOLEY_SMI_ELEMENTS:1,PACKED_DOUBLE_ELEMENTS:2,HOLEY_DOUBLE_ELEMENTS:3,PACKED_ELEMENTS:4,HOLEY_ELEMENTS:5},Gt=e=>{let t=0;return e.forEach(r=>{++t}),t},ws=e=>Gt(e)!==e.length,Kt=e=>Number.isInteger(e)&&!Object.is(e,-0)&&ks.is_smi(e),Es=e=>{let t=Be,r=Be,n=0;for(;n<e.length;){if(!(t&&Kt(e[n])))if(hs(e[n]))t=Ee;else{t=Ee,r=Ee;break}++n}return{is_packed_smi:t,is_packed_double:r}},Bs=new TextDecoder,js=(e,t,r,n)=>{let s=new Uint8Array(e.buffer,t,r);return n?n(s):Bs.decode(s)},Is=new TextDecoder("latin1"),Os=(e,t,r)=>Is.decode(e.subarray(t,t+r)),Rs=new TextDecoder("utf-16"),Ts=(e,t,r)=>Rs.decode(e.subarray(t,t+r));Yt.exports={BytesNeededForVarint:ps,IsOneByte:Xt,IsTwoByte:As,IsNaNAt:Ss,IsSmi:Kt,kFastElementsKindSequence:ms,GetArrayForEachLength:Gt,IsArrayHasHole:ws,GetArrayPackedInfo:Es,Utf8U8aToStr:js,Latin1U8aToStr:Os,JstrU8aToStr:Ts}});var Ie=g((Ka,Zt)=>{var $t=2**53-1,je=class extends Array{constructor(){super(),this[0]=0}get id(){return this[0]}next(){let t=this[0],r=this[0]+1;return r-1===$t&&(r=0),this[0]=r,t}},Us=()=>new je;Zt.exports={MAX_NID:$t,creat_nid:Us}});var Y=g(($a,tr)=>{var vs=Array,{_u:er,_n:Ya,_t:Ds,_f:Ns}=j(),{creat_nid:Ls}=Ie(),K=class extends WeakMap{#e=Ls();FindOrInsert(t){let r=this.get(t);if(r===er){let n=this.#e.next();return this.set(t,n),[Ns,n]}else return[Ds,r]}},Ms=()=>new K,Oe=class{idmap=new K},Fs=()=>new Oe,Re=class extends vs{HasObjectWithID(t){return this[t]!==er}GetObjectWithID(t){return this[t]}AddObjectWithID(t){this.push(t)}get nid_(){return this.length}},Qt=()=>new Re;tr.exports={creat_widmap:Ms,creat_wctx:Fs,creat_ridmap:Qt,creat_rctx:Qt}});var _r=g((Za,cr)=>{var Js=Object.prototype.toString,rr=e=>Js.call(e),b=e=>t=>rr(t)===e,$=b("[object Boolean]"),nr=b("[object Number]"),sr=b("[object String]"),or=b("[object BigInt]"),Ws=b("[object Date]"),qs=b("[object RegExp]"),Cs=b("[object ArrayBuffer]"),Ps=b("[object SharedArrayBuffer]"),Vs=b("[object DataView]"),zs=b("[object Uint8Array]"),xs=b("[object Uint8ClampedArray]"),Hs=b("[object Int8Array]"),Xs=b("[object Uint16Array]"),Gs=b("[object Int16Array]"),Ks=b("[object Uint32Array]"),Ys=b("[object Int32Array]"),$s=b("[object BigUint64Array]"),Zs=b("[object BigInt64Array]"),Qs=b("[object Float16Array]"),eo=b("[object Float32Array]"),to=b("[object Float64Array]"),ro=e=>ArrayBuffer.isView(e),no=Array.isArray,so=b("[object Set]"),oo=b("[object Map]"),ar=b("[object WeakSet]"),ir=b("[object WeakMap]"),lr=b("[object WeakRef]"),ao=e=>ar(e)||ir(e)||lr(e),io=e=>$(e)&&e.valueOf(),lo=e=>$(e)&&!e.valueOf(),co=e=>$(e)||nr(e)||sr(e)||or(e),_o=b("[object Error]"),uo=b("[object EvalError]"),fo=b("[object RangeError]"),bo=b("[object ReferenceError]"),yo=b("[object TypeError]"),go=b("[object URIError]"),ho=b("[object AggregateError]");cr.exports={tag:rr,is_dt:Ws,is_rgx:qs,is_ab:Cs,is_dv:Vs,is_sab:Ps,is_abvw:ro,is_u8a:zs,is_u8ca:xs,is_i8a:Hs,is_u16a:Xs,is_i16a:Gs,is_u32a:Ks,is_i32a:Ys,is_u64a:$s,is_i64a:Zs,is_f16a:Qs,is_f32a:eo,is_f64a:to,is_ary:no,is_st:so,is_mp:oo,is_weak:ao,is_wkst:ar,is_wkmp:ir,is_wkref:lr,is_prim_wrap:co,is_blo:$,is_truo:io,is_flso:lo,is_numo:nr,is_stro:sr,is_bio:or,is_err:_o,is_eval_err:uo,is_rng_err:fo,is_ref_err:bo,is_typ_err:yo,is_uri_err:go,is_agg_errs:ho}});var Te=g((Qa,dr)=>{var ur=["g","i","m","y","u","s","l","d","v"],fr={g:1,i:2,m:4,y:8,u:16,s:32,l:64,d:128,v:256},ko=e=>{let t=0;for(let r=0;r<e.length;++r){let n=e[r];fr[n]&&(t=t+fr[n])}return t},po=e=>{let t="";for(let r=0;r<ur.length;++r){let n=ur[r];e&1<<r&&(t=t+n)}return t};dr.exports={s2n:ko,n2s:po}});var yr=g((ei,br)=>{var ee=2n**64n-1n,Z=e=>{let t=0;for(;e;)e=e>>64n,++t;return t},Q=e=>8*Z(e),Ue=e=>{let t=0;e>=0n||(t=1,e=-e);let r=Q(e);return[t,r,e]},Ao=e=>{let[t,r,n]=Ue(e);return t|r<<1},So=e=>{let t=e&1,r=e>>1;return{sign:t,data_blen:r}},mo=function*(e){for(;e;)yield e&ee,e=e>>64n},wo=e=>e>=0n?Z(e):Z(-e),Eo=e=>e>=0n?Q(e):Q(-e),Bo=function*(e){for(e=e>=0?e:-e;e;)yield e&ee,e=e>>64n},jo=(e,t,r=0,n)=>{let[s,o,a]=Ue(e),c=s|o,l=r,u=n(c);for(let p=0;p<u.length;++p)t[r+p]=u[p];r=r+u.length;let h=r,A=new DataView(t.buffer);for(;a;)A.setBigUint64(a&ee,r,_t),r=r+8,a=a>>64n;return{sign:s,data:t,head_offset:l,body_offset:h,curr_offset:r}};br.exports={MASK:ee,count_if_pos:Z,data_byte_length_if_pos:Q,count:wo,data_byte_length:Eo,_get_head:Ue,get_encd_head:Ao,decd_encd_head:So,gen_body_if_pos:mo,gen_body:Bo,use_with_get_var_int:jo}});var Mr=g((oi,Lr)=>{var{_u:se,_n:hr,_t:kr,_f:oe,is_untf:Io}=j(),te=z(),re=_r(),Oo=e=>e[Symbol.toStringTag]==="Promise",Ro=e=>e[Symbol.toStringTag]==="Generator",To=e=>e[Symbol.toStringTag]==="AsyncGenerator",Uo=e=>Ro(e)||To(e),vo=e=>e[Symbol.toStringTag]?e[Symbol.toStringTag].includes("Iterator"):oe,pr=x(),Do=X(),No=Te(),gr=yr(),F=G(),{SerializationTag:f,ErrorTag:S,ArrayBufferViewTag:ti,IsNodeFastBuffer:ri,kNodeFastBufferSym:ni,ArrayBufferViewIndexToCtor:si,CreatFakeCantBeSered:Ar,arrayBufferViewTypeToIndex:Lo}=V(),Mo=Y(),Sr=(e,t=15,r)=>{e.push(f.kVersion),e.push(t)},d=(e,t,r)=>{e.push(t)},y=(e,t,r)=>{if(pr.is_smi_can_be_encded(t)){let n;do n=t&127|128,e.push(Number(n)),t=t>>7;while(t);return e[e.length-1]=e[e.length-1]&127,e}else{t=BigInt(t);let n;do n=t&0x7Fn|0x80n,e.push(Number(n)),t=t>>7n;while(t);return e[e.length-1]=e[e.length-1]&127,e}},mr=(e,t,r,n=pr.encd)=>(t=n(t),y(e,t),e),W=(e,t,r,n)=>{n=n??new Float64Array(1),n[0]=t;let s=new Uint8Array(n.buffer);for(let o=0;o<8;++o)e.push(s[o]);return e},wr=(e,t,r)=>{y(e,t.length);for(let n=0;n<t.length;++n)e.push(t.charCodeAt(n));return e},Er=(e,t,r,n)=>{n=n??new Do.encd.mach.Mach,y(e,t.length*2);for(let s=0;s<t.length;++s){let o=t.charCodeAt(s),[a,c]=n.input(o);e.push(a),e.push(c)}return e},ne=(e,t,r)=>{for(let n=0;n<t.length;++n)e.push(t[n]);return e},Br=(e,t,r)=>{let n=f.kUndefined;switch(t){case se:n=f.kUndefined;break;case oe:n=f.kFalse;break;case kr:n=f.kTrue;break;case hr:n=f.kNull;break}return d(e,n),e},ae=(e,t,r)=>(d(e,f.kInt32,r),mr(e,t,r),e),Ne=(e,t,r)=>(d(e,f.kDouble,r),W(e,t,r),e),O=(e,t,r)=>{if(t|0,F.IsOneByte(t))d(e,f.kOneByteString,r),wr(e,t,r);else{let n=t.length*2,s=F.BytesNeededForVarint(n);e.length+1+s&1&&d(e,f.kPadding,r),d(e,f.kTwoByteString,r),Er(e,t,r)}return e},jr=(e,t,r)=>(d(e,f.kDate,r),W(e,t.getTime(),r),e),Ir=(e,t,r)=>{d(e,f.kRegExp,r),O(e,t.source,r);let n=No.s2n(t.flags);return y(e,n,r),e},Le=(e,t,r)=>{let[n,s,o]=gr._get_head(t),a=n|s<<1;y(e,a,r);let c=new BigUint64Array(1),l=new Uint8Array(c.buffer);for(;o;)c[0]=o&gr.MASK,e.push(l[0],l[1],l[2],l[3],l[4],l[5],l[6],l[7]),o=o>>64n;return e},Me=(e,t,r)=>(d(e,f.kBigInt,r),Le(e,t,r),e),Fo=(e,t,r)=>(e.push(t),e),ve=(e,t,r)=>(y(e,t,r),e),M=(e,t,r)=>{var n=t.constructor.name;return n==="Boolean"?(t.valueOf()?d(e,f.kTrueObject,r):d(e,f.kFalseObject,r),e):n==="Number"?(d(e,f.kNumberObject,r),W(e,Number(t),r),e):n==="String"?(d(e,f.kStringObject,r),O(e,String(t),r),e):n==="BigInt"?(d(e,f.kBigIntObject,r),Le(e,BigInt(t),r),e):se},Or=(e,t,r)=>{switch(d(e,f.kError,r),t.name){case"EvalError":{y(e,S.kEvalErrorPrototype,r);break}case"RangeError":{y(e,S.kRangeErrorPrototype,r);break}case"ReferenceError":{y(e,S.kReferenceErrorPrototype,r);break}case"SyntaxError":{y(e,S.kSyntaxErrorPrototype,r);break}case"TypeError":{y(e,S.kTypeErrorPrototype,r);break}case"URIError":{y(e,S.kUriErrorPrototype,r);break}default:}let s=String(t.message);y(e,S.kMessage,r),O(e,s,r);let o=t.cause;o&&(y(e,S.kCause,r),m(e,o,r));let a=String(t.stack);return y(e,S.kStack,r),O(e,a,r),y(e,S.kEnd,r),e},m=(e,t,r)=>{if(te.is_num(t)&&F.IsSmi(t))ae(e,t,r);else if(t===se)d(e,f.kUndefined,r);else if(t===hr)d(e,f.kNull,r);else if(t===kr)d(e,f.kTrue,r);else if(t===oe)d(e,f.kFalse,r);else if(te.is_num(t))Ne(e,t,r);else if(te.is_bi(t))Me(e,t,r);else if(te.is_str(t))O(e,t,r);else{Fe(e,t,r);}return e},Rr=(e,t,r)=>{d(e,f.kBeginJSSet,r);let n=0;for(let s of t)m(e,s,r),++n;return d(e,f.kEndJSSet,r),y(e,n,r),e},Tr=(e,t,r)=>{d(e,f.kBeginJSMap,r);let n=t.size*2;for(let[s,o]of t)m(e,s,r),m(e,o,r);return d(e,f.kEndJSMap,r),y(e,n,r),e},Ur=(e,t,r)=>{let n=Lo(t);if(n>-1){d(e,f.kHostObject,r),ve(e,n,r),ve(e,t.byteLength,r);let s=new Uint8Array(t.buffer,t.byteOffset,t.byteLength);return ne(e,s,r),e}},vr=(e,t,r)=>Ur(e,t,r),De=(e,t,r)=>{let n=oe;re.is_sab(t)?n=!!t.growable:n=t.resizable;let s=n?t.maxByteLength:t.byteLength,o=t.byteLength;return n?(d(e,f.kResizableArrayBuffer,r),y(e,o,r),y(e,s,r),ne(e,new Uint8Array(t),r)):(d(e,f.kArrayBuffer,r),y(e,o,r),ne(e,new Uint8Array(t),r)),e},J=(e,t,r)=>{d(e,f.kBeginJSObject,r);let n=0;for(let s in t)m(e,s,r),m(e,t[s],r),n++;return d(e,f.kEndJSObject,r),y(e,n,r),e},Dr=(e,t,r)=>{let n=t.length,{is_packed_smi:s,is_packed_double:o}=F.GetArrayPackedInfo(t);if(s){d(e,f.kBeginDenseJSArray,r),y(e,n,r);for(let l=0;l<t.length;++l)ae(e,t[l],r)}else if(o){if(d(e,f.kBeginDenseJSArray,r),y(e,n,r),n!==0)for(let l=0;l<t.length;++l)d(e,f.kDouble,r),W(e,t[l],r)}else{d(e,f.kBeginDenseJSArray,r),y(e,n,r);for(let l=0;l<t.length;++l)m(e,t[l],r)}let a=Object.keys(t),c=0;for(let l=t.length;l<a.length;++l){let u=a[l];m(e,u,r),m(e,t[u],r),c++}return d(e,f.kEndDenseJSArray,r),y(e,c,r),y(e,n,r),e},Jo=(e,t,r)=>{let n=Ar("Symbol",t.description);J(e,n,r)},Wo=(e,t,r)=>{F.IsSmi(t)?ae(e,t,r):Ne(e,t,r)},Nr=(e,t,r)=>{let n=Ar(idx,String(t));J(e,n,r)},qo={string:O,bigint:Me,symbol:Jo,number:Wo,function:Nr},Co={"[object Date]":jr,"[object RegExp]":Ir,"[object Set]":Rr,"[object Map]":Tr,"[object ArrayBuffer]":De,"[object SharedArrayBuffer]":De,"[object Boolean]":M,"[object Number]":M,"[object String]":M,"[object BigInt]":M},Fe=(e,t,r)=>{if(re.is_ary(t))Dr(e,t,r);else if(re.is_abvw(t))vr(e,t,r)!==se||J(e,t,r);else if(Io(t))Br(e,t,r);else{var n=typeof t;let o=qo[n];if(o!==void 0)o(e,t,r);else{let[a,c]=r.idmap.FindOrInsert(t);if(a)d(e,f.kObjectReference,r),y(e,c,r);else{var s=re.tag(t);let l=Co[s];l!==void 0?l(e,t,r):s.includes("Error")?Or(e,t,r):Oo(t)||Uo(t)||vo(t)?Nr(e,t,r):J(e,t,r)}}}return e},Po=(e,t=15)=>{let r=[],n=Mo.creat_wctx();return Sr(r,t),Fe(r,e,n),new Uint8Array(r).buffer};Lr.exports={WriteHeader:Sr,WriteTag:d,WriteVarint:y,WriteZigZag:mr,WriteDouble:W,WriteOneByteString:wr,WriteTwoByteString:Er,WriteRawBytes:ne,WriteOddball:Br,WriteSmi:ae,WriteHeapNumber:Ne,WriteString:O,WriteJSDate:jr,WriteJSRegExp:Ir,WriteBigIntContents:Le,WriteBigInt:Me,WriteByte:Fo,WriteUint32:ve,WriteJSPrimitiveWrapper:M,WriteJSError:Or,WriteObject:m,WriteJSSet:Rr,WriteJSMap:Tr,WriteHostObject:Ur,WriteJSArrayBufferView:vr,WriteJSArrayBuffer:De,WriteJSObject:J,WriteJSArray:Dr,WriteJSReceiver:Fe,encd:Po}});var qr=g((ai,Wr)=>{var{istof:Vo}=z(),Je=Error,Fr=e=>new Je(e),Jr=e=>{throw Fr(e)},zo=e=>Vo(e,Je),xo=e=>Jr("unreachable");Wr.exports={_ERR:Je,creat_err:Fr,thrw_str:Jr,is_err:zo,unreachable:xo}});var Pr=g((ii,ie)=>{var Ho=(e,t=e.constructor)=>{for(var r=e.byteOffset,n=r+e.byteLength,s=new t(e.buffer),o=s.subarray(r/t.BYTES_PER_ELEMENT,n/t.BYTES_PER_ELEMENT),a="[",c=0;c<o.length-1;++c)typeof o[c]=="bigint"?a+=o[c]+"n,":a+=o[c]+",";return o.length===0||(typeof o[o.length-1]=="bigint"?a+=o[o.length-1]+"n":a+=o[o.length-1]),a+="]",a},Cr=e=>{var t=new Uint8Array(e),r=JSON.stringify(Array.from(t)),n;return e.resizable?n=`new ArrayBuffer(${e.byteLength},{maxByteLength:${e.maxByteLength}})`:n=`new ArrayBuffer(${e.byteLength})`,`(()=>{ var ab = ${n};(new Uint8Array(ab)).set(${r});return(ab);})()`};ie.exports=(e,t="",r)=>{var n=t;return r!==void 0&&(n+=`var ${t} = `),n+=Cr(e),n};ie.exports.ab=Cr;Object.defineProperty(ie.exports,"_creat_desc",{value:Ho,enumerable:!1})});var Xr=g((li,Hr)=>{var Xo=(e,t)=>{if(typeof e=="number")return t!==void 0?new ArrayBuffer(e,{maxByteLength:t}):new ArrayBuffer(e);if(e instanceof ArrayBuffer){var r;e.resizable?r=new ArrayBuffer(e.byteLength,{maxByteLength:e.maxByteLength}):r=new ArrayBuffer(e.byteLength);var n=new Uint8Array(e);return new Uint8Array(r).set(n),r}else if(e.buffer&&e.buffer instanceof ArrayBuffer){var s=e.byteOffset,o=s+e.byteLength;if(t!==void 0)return e.buffer.slice(s,o);var r=new ArrayBuffer(o-s,{maxByteLength:t}),n=new Uint8Array(e.buffer).subarray(s,o);return new Uint8Array(r).set(n),r}else{var a=e.length,r;e.resizable?r=new ArrayBuffer(a,{maxByteLength:e.maxByteLength}):r=new ArrayBuffer(a);for(var c=new Uint8Array(r),l=0;l<a;++l)c[l]=e[l];return r}},Go=Pr().ab,le=(e,t,r,n,s)=>{let o=new Uint8Array(e,t,r);return new Uint8Array(n).set(o,s),n},Vr=(e,t,r,n,s)=>(r=r??0,n=n??e.byteLength,s=s??0,le(e,r,n,t,s)),Ko=(e,t,r,n=0)=>Vr(e,t,0,r,n),Yo=(e,t,r=0)=>le(e,0,e.byteLength,t,r),$o=(e,t)=>le(e,0,e.byteLength,t,0),zr=(e,...t)=>{let r=t.length,n=new Uint8Array(e.length+r);for(let s=0;s<r;++s)n[e.length+s]=t[s];return n.set(e),e},xr=(e,...t)=>{let r=t.length,n=new Uint8Array(e.length+r);for(let s=0;s<r;++s)n[s]=t[s];return n.set(e,r),e},Zo=(e,...t)=>zr(new Uint8Array(e),...t).buffer,Qo=(e,...t)=>xr(new Uint8Array(e),...t).buffer;Hr.exports={creat:Xo,to_str:Go,_cp:le,cp:Vr,cp_from_src_start:Ko,cp_all_if_dst_is_enough:Yo,cp_all_if_same_blen:$o,dupe_u8a_and_push:zr,dupe_u8a_and_unshift:xr,dupe_and_push:Zo,dupe_and_unshift:Qo}});var ln=g((ui,an)=>{var{_u:q,_n:ea,_t:E,_f:R}=j(),{thrw_str:ta}=qr(),ra=Xr(),na=x(),_i=X(),sa=Te(),Ce=G(),{SerializationTag:_,ErrorTag:w,ArrayBufferViewIndexToCtor:oa,CreatUnknown:aa}=V(),{creat_rctx:ia}=Y(),Gr={must_be_str:"must_be_str"},la=(e,t,r)=>{let n=t,s=0,o=0,a=R;do{let c=e[t];if(a=c&128,o<32)s|=(c&127)<<o,o=o+7;else break;++t}while(a);return[s,t-n,t]},ca=(e,t,r)=>{let n=t,s=0n,o=0n,a=R;do{let c=BigInt(e[t]);if(a=c&0x80n,o<32n)s|=(c&0x7Fn)<<o,o=o+7n;else break;++t}while(a);return[Number(s),t-n,t]},k=ca,Kr=(e,t,r)=>{let n=t;++t;let s=e[t];return++t,[s,t-n,t]},v=(e,t,r)=>{let n=t,s;do s=e[t],++t;while(s===_.kPadding);return[s,t-n,t]},Yr=(e,t,r,n=na.decd)=>{let s=t,o=k(e,t,r),a=o[0];return t=o[2],[n(a),t-s,t]},ce=(e,t,r)=>{let s=new DataView(e.buffer,e.byteOffset,e.byteLength).getFloat64(t,E);return t=t+8,[s,8,t]},Pe=(e,t,r,n)=>{let s=t,o=new Uint8Array(e.buffer,e.byteOffset+t,r);return t=t+r,[o,r,t]},_a=(e,t,r)=>(++t,[e[i],1,t]),We=(e,t,r)=>k(e,t,r),$r=2n**64n,Ve=(e,t,r)=>{let n=t,s=k(e,t,r),o=s[0],a=o&1,c=o>>1;t=s[2],s=Pe(e,t,c,r);let l=s[0],u=new DataView(l.buffer,l.byteOffset,l.byteLength),h=0n,A=1n,p=c/8;for(let _e=0;_e<p;++_e){let fn=u.getBigUint64(8*_e,E);h=h+fn*A,A=A*$r}return a===1&&(h=-h),t=s[2],[h,t-n,t]},ze=(e,t,r)=>{let n=t,s=k(e,t,r),o=s[0];t=s[2];let a=Ce.Latin1U8aToStr(e,t,o);return t+=o,[a,t-n,t]},xe=(e,t,r)=>{let n=t,s=k(e,t,r),o=s[0];t=s[2];let a=Ce.JstrU8aToStr(e,t,o);return t+=o,[a,t-n,t]},He=(e,t,r)=>{let n=t,s=k(e,t,r),o=s[0];t=s[2];let a=Ce.Utf8U8aToStr(e,t,o);return t+=o,[a,t-n,t]},Zr=(e,t,r)=>{let n=t,s=ce(e,t,r),o=s[0],a=new Date(o);return t=s[2],r.AddObjectWithID(a),[a,t-n,t]},ua=(e,t,r,n)=>{let s=t,o;switch(r){case _.kTrueObject:{o=new Boolean(E);break}case _.kFalseObject:{o=new Boolean(R);break}case _.kNumberObject:{let a=ce(e,t,n),c=a[0];t=a[2],o=new Number(c);break}case _.kStringObject:{let a=C(e,t,n),c=a[0];t=a[2],o=new String(c);break}case _.kBigIntObject:{let a=Ve(e,t,n),c=a[0];t=a[2],o=CreatFakeCantBeSered("BigInt",c);break}default:}return n.AddObjectWithID(o),[o,t-s,t]},Qr=(e,t,r)=>{let n=t,s=q,o=q,a=q,c=R,l=Error;for(;!c;){let h=k(e,t,r),A=h[0];switch(t=h[2],A){case w.kEvalErrorPrototype:{l=EvalError;break}case w.kRangeErrorPrototype:{l=RangeError;break}case w.kReferenceErrorPrototype:{l=ReferenceError;break}case w.kSyntaxErrorPrototype:{l=SyntaxError;break}case w.kTypeErrorPrototype:{l=TypeError;break}case w.kUriErrorPrototype:{l=URIError;break}case w.kMessage:{let p=C(e,t,r);s=p[0],t=p[2];break}case w.kCause:{let p=B(e,t,r);a=p[0],t=p[2];break}case w.kStack:{let p=C(e,t,r);o=p[0],t=p[2];break}case w.kEnd:{c=E;break}default:}}let u;return a?u=new l(s,{cause:a}):u=new l(s),u.stack=o,r.AddObjectWithID(u),[u,t-n,t]},C=(e,t,r)=>{let n=t,s=v(e,t,r),o=s[0];switch(t=s[2],o){case _.kOneByteString:return s=ze(e,t,r),t=s[2],[s[0],t-n,t];case _.kTwoByteString:return s=xe(e,t,r),t=s[2],[s[0],t-n,t];case _.kUtf8String:return s=He(e,t,r),t=s[2],[s[0],t-n,t];default:ta(Gr.must_be_str)}},en=(e,t,r)=>{let n=t,s=C(e,t,r),o=s[0];t=s[2],s=k(e,t,r);let a=s[0];a=sa.n2s(a),t=s[2];let c=new RegExp(o,a);return r.AddObjectWithID(c),[c,t-n,t]},tn=(e,t,r)=>{let n=t,s=new Set;r.AddObjectWithID(s);let o=0;for(;E;){let c=t,l=v(e,t,r),u=l[0];if(t=l[2],u===_.kEndJSSet)break;t=c,l=B(e,t,r),s.add(l[0]),t=l[2],o++}let a=k(e,t,r);return t=a[2],[s,t-n,t,a[0]]},rn=(e,t,r)=>{let n=t,s=new Map;r.AddObjectWithID(s);let o=0;for(;E;){let c=t,l=v(e,t,r);if(t=l[2],l[0]===_.kEndJSMap)break;{t=c,l=B(e,t,r);let h=l[0];t=l[2],l=B(e,t,r);let A=l[0];t=l[2],s.set(h,A),o=o+2}}let a=k(e,t,r);return t=a[2],[s,t-n,t,a[0]]},Xe=(e,t,r)=>{let n=t,s=We(e,t,r),o=s[0],a=oa[o],c=a.BYTES_PER_ELEMENT;t=s[2],s=We(e,t,r);let l=s[0];t=s[2];let u=t;s=Pe(e,t,l,r);let h;return(e.byteOffset+t)%c===0?h=new a(s[0].buffer,e.byteOffset+t,l/c):h=new a(s[0].buffer.slice(t,t+l)),t=s[2],r.AddObjectWithID(h),[h,t-n,t]},fa=Xe,qe=(e,t,r,n)=>{let s=t,o=k(e,t,n),a=o[0];t=o[2];let c=a,l;if(r){let u=k(e,t,n);c=u[0],l=new ArrayBuffer(a,{maxByteLength:c}),t=u[2],ra._cp(e.buffer,e.byteOffset+t,a,l,0),t=t+a}else l=e.buffer.slice(e.byteOffset+t,e.byteOffset+t+a),t=t+a;return n.AddObjectWithID(l),[l,t-s,t]},Ge=(e,t,r,n,s,o)=>{let a=t,c=0;for(;E;){let l=t,u=v(e,t,o),h=u[0];if(t=u[2],h!==n){t=l,u=B(e,t,o);let A=u[0];t=u[2],u=B(e,t,o);let p=u[0];t=u[2],r[A]=p,++c}else return[c,t-a,t]}},nn=(e,t,r)=>{let n=t,s={};r.AddObjectWithID(s);let o=Ge(e,t,s,_.kEndJSObject,R,r),a=o[0];return t=o[2],o=k(e,t,r),t=o[2],[s,t-n,t]},sn=(e,t,r,n)=>{let s=t,o=k(e,t,n),a=o[0];t=o[2];let c=[];n.AddObjectWithID(c);for(let u=0;u<a;++u)o=B(e,t,n),c.push(o[0]),t=o[2];let l=r===_.kBeginDenseJSArray?_.kEndDenseJSArray:_.kEndSparseJSArray;return o=Ge(e,t,c,l,E,n),t=o[2],o=k(e,t,n),t=o[2],o=k(e,t,n),t=o[2],[c,t-s,t]},on=(e,t,r)=>{let n=t,s=v(e,t,r),o=s[0];switch(t=s[2],o){case _.kTheHole:return[q,t-n,t];case _.kUndefined:return[q,t-n,t];case _.kNull:return[ea,t-n,t];case _.kTrue:return[E,t-n,t];case _.kFalse:return[R,t-n,t];case _.kInt32:return s=Yr(e,t,r),t=s[2],[s[0],t-n,t];case _.kUint32:return s=k(e,t,r),t=s[2],[s[0],t-n,t];case _.kDouble:return s=ce(e,t,r),t=s[2],[s[0],t-n,t];case _.kBigInt:return s=Ve(e,t,r),t=s[2],[s[0],t-n,t];case _.kOneByteString:return s=ze(e,t,r),t=s[2],[s[0],t-n,t];case _.kTwoByteString:return s=xe(e,t,r),t=s[2],[s[0],t-n,t];case _.kUtf8String:return s=He(e,t,r),t=s[2],[s[0],t-n,t];case _.kBeginJSObject:return s=nn(e,t,r),t=s[2],[s[0],t-n,t];case _.kBeginDenseJSArray:case _.kBeginSparseJSArray:return s=sn(e,t,o,r),t=s[2],[s[0],t-n,t];case _.kDate:return s=Zr(e,t,r),t=s[2],[s[0],t-n,t];case _.kBeginJSMap:return s=rn(e,t,r),t=s[2],[s[0],t-n,t];case _.kBeginJSSet:return s=tn(e,t,r),t=s[2],[s[0],t-n,t];case _.kObjectReference:{s=k(e,t,r);let a=s[0];return t=s[2],[r.GetObjectWithID(a),t-n,t]}case _.kRegExp:return s=en(e,t,r),t=s[2],[s[0],t-n,t];case _.kSharedArrayBuffer:case _.kArrayBuffer:return s=qe(e,t,R,r),t=s[2],[s[0],t-n,t];case _.kResizableArrayBuffer:return s=qe(e,t,E,r),t=s[2],[s[0],t-n,t];case _.kError:return s=Qr(e,t,r),t=s[2],[s[0],t-n,t];case _.kArrayBufferView:case _.kHostObject:return s=Xe(e,t,r),t=s[2],[s[0],t-n,t];case _.kTrueObject:case _.kFalseObject:case _.kNumberObject:case _.kBigIntObject:case _.kStringObject:return s=ua(e,t,o,r),t=s[2],[s[0],t-n,t];default:return console.log("why unknown",o,t,e),[aa(),t-n,t]}},B=(e,t,r)=>on(e,t,r),da=e=>{let t=e.buffer!==void 0?e:new Uint8Array(e),r=ia(),n=0,s=Kr(t,n,r);return n=s[2],s=B(t,n,r),s[0]};an.exports={ERRD:Gr,ReadVarintLoopIfLshiftWork:la,ReadVarint:k,ReadHeader:Kr,ReadTag:v,ReadZigZag:Yr,ReadDouble:ce,ReadRawBytes:Pe,ReadByte:_a,ReadUint32:We,ReadBigInt:Ve,BI_MUL:$r,ReadOneByteString:ze,ReadTwoByteString:xe,ReadUtf8String:He,ReadJSDate:Zr,ReadString:C,ReadJSRegExp:en,ReadJSError:Qr,ReadJSSet:tn,ReadJSMap:rn,ReadHostObject:Xe,ReadJSArrayBufferView:fa,ReadJSArrayBuffer:qe,ReadJSObjectProperties:Ge,ReadObjectInternal:on,ReadObject:B,ReadJSObject:nn,ReadJSArray:sn,decd:da}});var Aa=g((fi,un)=>{var ba=Qe(),ya=tt(),ga=V(),ha=G(),ka=Ie(),pa=Y(),cn=Mr(),_n=ln();un.exports={fixed_cfg:ba,restrict:ya,const:ga,misc:ha,zero_nid:ka,ctx:pa,w:cn,r:_n,ser:cn.encd,der:_n.decd}});return Aa();})();
|
|
24
|
+
`,"Error'message":"Error'message treated as string","Error'stack":"Error'stack treated as string",kVerifyObjectCount:"no verify",throwDetachedArrayBufferError:"dont know how to get this state in js-layer",kArrayBufferTransfer:"hard to do this in js-layer",kSharedObject:"hard to do this in js-layer",kWasmModuleTransfer:"hard to do this in js-layer",kWasmMemoryTransfer:"hard to do this in js-layer",ITERATOR:"dont know how to get the iter cursor in js-layer, treated as a {}",ATOMICS:"dont know how to do this, treated as a {}",FPG:"function | lambda | promise| generator| all treated as a {}",Proxy:"hard to do this in browser, so treated as the-target-be-proxied"}});var x=y((qa,ir)=>{var{_u:Bn,_n:Ca,_t:fe,_f:Ja}=I(),jn={kVersion:255,kPadding:0,kVerifyObjectCount:63,kTheHole:45,kUndefined:95,kNull:48,kTrue:84,kFalse:70,kInt32:73,kUint32:85,kDouble:78,kBigInt:90,kUtf8String:83,kOneByteString:34,kTwoByteString:99,kObjectReference:94,kBeginJSObject:111,kEndJSObject:123,kBeginSparseJSArray:97,kEndSparseJSArray:64,kBeginDenseJSArray:65,kEndDenseJSArray:36,kDate:68,kTrueObject:121,kFalseObject:120,kNumberObject:110,kBigIntObject:122,kStringObject:115,kRegExp:82,kBeginJSMap:59,kEndJSMap:58,kBeginJSSet:39,kEndJSSet:44,kArrayBuffer:66,kResizableArrayBuffer:126,kArrayBufferTransfer:116,kArrayBufferView:86,kSharedArrayBuffer:117,kSharedObject:112,kWasmModuleTransfer:119,kHostObject:92,kWasmMemoryTransfer:109,kError:114,kLegacyReservedMessagePort:77,kLegacyReservedBlob:98,kLegacyReservedBlobIndex:105,kLegacyReservedFile:102,kLegacyReservedFileIndex:101,kLegacyReservedDOMFileSystem:100,kLegacyReservedFileList:108,kLegacyReservedFileListIndex:76,kLegacyReservedImageData:35,kLegacyReservedImageBitmap:103,kLegacyReservedImageBitmapTransfer:71,kLegacyReservedOffscreenCanvas:72,kLegacyReservedCryptoKey:75,kLegacyReservedRTCCertificate:107},ar={kInt8Array:98,kUint8Array:66,kUint8ClampedArray:67,kInt16Array:119,kUint16Array:87,kInt32Array:100,kUint32Array:68,kFloat32Array:102,kFloat64Array:70,kBigInt64Array:113,kBigUint64Array:81,kDataView:63};Object.defineProperty(ar,"UNUSED_",{get:function(){return fe}});var de=Symbol("#kNodeFastBuffer"),vn={kInt8Array:0,kUint8Array:1,kUint8ClampedArray:2,kInt16Array:3,kUint16Array:4,kInt32Array:5,kUint32Array:6,kFloat32Array:7,kFloat64Array:8,kDataView:9,kNodeFastBuffer:10,kBigInt64Array:11,kBigUint64Array:12},ue=class extends Uint8Array{[de]=fe},In=e=>e[de]===fe,On=e=>Object.prototype.toString.call(e),Rn=e=>{let r=On(e);return r==="[object Int8Array]"?0:r==="[object Uint8Array]"?1:r==="[object Uint8ClampedArray]"?2:r==="[object Int16Array]"?3:r==="[object Uint16Array]"?4:r==="[object Int32Array]"?5:r==="[object Uint32Array]"?6:r==="[object Float32Array]"?7:r==="[object Float64Array]"?8:r==="[object DataView]"?9:r==="[object BigInt64Array]"?11:r==="[object BigUint64Array]"?12:-1},Tn=[Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,DataView,ue,BigInt64Array,BigUint64Array],Un={kEvalErrorPrototype:69,kRangeErrorPrototype:82,kReferenceErrorPrototype:70,kSyntaxErrorPrototype:83,kTypeErrorPrototype:84,kUriErrorPrototype:85,kMessage:109,kCause:99,kStack:115,kEnd:46},Dn="#___kCantBeSered___",Ln=(e,r)=>({id:e,kCantBeSered:r}),Mn="#___kUnknown___",Nn=()=>({kUnknown:Bn}),Fn="v8ser";ir.exports={CODEC_NAME:Fn,kNodeFastBufferSym:de,IsNodeFastBuffer:In,SerializationTag:jn,V8_ArrayBufferViewTag:ar,ArrayBufferViewTag:vn,ArrayBufferViewIndexToCtor:Tn,arrayBufferViewTypeToIndex:Rn,ErrorTag:Un,kCantBeSered:Dn,CreatFakeCantBeSered:Ln,kUnknown:Mn,CreatUnknown:Nn}});var H=y((Pa,dr)=>{var Wn=Object,U={un:"undefined",bl:"boolean",str:"string",num:"number",obj:"object",sym:"symbol",bi:"bigint",func_like:"function"},D=(e,r)=>typeof e===r,Cn=(e,r)=>e instanceof r,Jn=e=>D(e,U.str),qn=e=>D(e,U.sym),Pn=e=>Symbol.keyFor(e)!==void 0,Vn=e=>Symbol.keyFor(e)===void 0,zn=e=>D(e,U.bi),lr=e=>D(e,U.num),cr=e=>Wn.is(e,NaN),_r=e=>e===1/0,ur=e=>e===-1/0,fr=e=>cr(e)||_r(e)||ur(e),xn=e=>!fr(e)&&lr(e),Hn=e=>1/e===1/0,Xn=e=>1/e===-1/0,Gn=e=>D(e,U.func_like);dr.exports={TNAMED:U,typof:D,is_str:Jn,is_num:lr,is_sym:qn,is_glb_sym:Pn,is_non_glb_sym:Vn,is_bi:zn,istof:Cn,is_abnormal_num:fr,is_nan:cr,is_pos_infi:_r,is_neg_infi:ur,is_normal_num:xn,is_pos_zero:Hn,is_neg_zero:Xn,is_func_like:Gn}});var X=y((Va,Er)=>{var br=-(2n**31n),yr=2n**31n-1n,gr=e=>e>=-2147483648&&e<=2147483647,Kn=e=>e>=br&&e<=yr,be=e=>BigInt(e),ye=e=>Number(e),hr=-(2**30),kr=2**30-1,Yn=-(2n**30n),Zn=2n**30n-1n,pr=e=>e>=hr&&e<=kr,Ar=e=>e<<1^e>>31,ge=e=>e<<1n^e>>63n,Sr=e=>ye(ge(be(e))),wr=e=>e>>1^-(e&1),he=e=>e>>1n^-(e&1n),mr=e=>ye(he(be(e))),$n=e=>typeof e=="bigint"?ge(e):pr(e)?Ar(e):Sr(e),Qn=e=>typeof e=="bigint"?he(e):gr(e)?wr(e):mr(e);Er.exports={MIN_SMI:-2147483648,MAX_SMI:2147483647,MIN_SMI_BI:br,MAX_SMI_BI:yr,is_smi:gr,is_smi_bi:Kn,_bi:be,_num:ye,_encd_smi:Ar,_encd_bi:ge,_encd_between_smi_bi:Sr,_decd_smi:wr,_decd_bi:he,_decd_between_smi_bi:mr,MIN_SMI_CAN_BE_ENCDED:hr,MAX_SMI_CAN_BE_ENCDED:kr,MIN_SMI_BI_CAN_BE_ENCDED:Yn,MAX_SMI_BI_CAN_BE_ENCDED:Zn,is_smi_can_be_encded:pr,encd:$n,decd:Qn}});var ke=y((za,Br)=>{var es=String,rs=e=>es.fromCodePoint(e);Br.exports={cd2ch:rs}});var M=y((xa,Or)=>{var jr=e=>(e>>8&252)===216,vr=e=>(e>>8&252)===220,ts=e=>!jr(e)&&!vr(e),Ir=(e,r)=>((e&1023)<<10)+(r&1023)+65536,ns=(e,r)=>r===1?e[0]:Ir(e[0],e[1]);Or.exports={is_high_surrogate:jr,is_low_surrogate:vr,is_not_surrogate:ts,surrogate_to_code:Ir,b16arr_to_code:ns}});var Lr=y((Ha,Dr)=>{var N=M(),ss=0,Rr=2,Tr=5,Ur=["INIT","N","H","L","R","ERROR"],F={in_error_must_reset:"in_error_must_reset",fst_b16_invalid:"fst b16 cant be <0b1111_11xx_xxxx_xxxx>",low_invalid:"low must be <0b1111_11xx_xxxx_xxxx>"},os=e=>{e[0]=3,e[1]=e[1]&240;for(let r=2;r<5;r++)e[r]=0},pe=(e,r,t)=>{if(e.is_auto_recover_enabled()){e.reset();return}else throw e[1]=(e[1]&240)+Tr,e[2]=r,new Error(t)},O=class extends Uint16Array{constructor(r=!0){super(5),this[0]=3,this[1]=r?16:0,this[2]=0}get cursor_(){return this[0]}get state_code_(){return this[1]&15}get state_name_(){return Ur[this.state_code_]}is_init(){return this.state_code_===ss}is_high(){return this.state_code_===Rr}is_err(){return this.state_code_===Tr}is_auto_recover_enabled(){return(this[1]&240)===1}enable_auto_recover(){this[1]=this[1]|16}disable_auto_recover(){this[1]=this[1]&15}get lefted_(){return Array.from(this).slice(3,this[0])}get err_b16_(){return this[2]}input(r){let t=r.charCodeAt(0);if(this.is_init())if(N.is_high_surrogate(t)){this[3]=t,this[1]=(this[1]&240)+Rr,this[0]++;return}else return N.is_low_surrogate(t)?pe(this,t,F.fst_b16_invalid):(this.reset(),t);else{if(this.is_high())return N.is_high_surrogate(t)?pe(this,t,F.low_invalid):N.is_low_surrogate(t)?(t=N.surrogate_to_code(this[3],t),this.reset(),t):pe(this,t,F.low_invalid);if(this.is_err())return new Error(F.in_error_must_reset)}}reset(){os(this)}dict(){return{cursor:this[0],state:this.state_name_,data:this.lefted_,err_b16:this.err_b16_}}get[Symbol.toStringTag](){return JSON.stringify(this.dict())}};O.ALGN_OFFSET=3;O.ALGN_SIZE=5;var as=new O(!0),is=new O(!1);Dr.exports={STATES:Ur,ERRORS:F,Mach:O,auto_recover_mach:as,mach:is}});var Nr=y((Xa,Mr)=>{Mr.exports={def:M(),mach:Lr()}});var Jr=y((Ga,Cr)=>{var{is_high_surrogate:Ae}=M(),Fr=(e,r)=>{let t=e.length,s=0,n=0,o=-1;for(;!(n>=t);)o=e[n].charCodeAt(0),Ae(o)?(++n,++n):(o===r&&++s,++n);return s},Wr=(e,r,t)=>{let s=e.length,n=0,o=0,a=-1;for(;!(o>=s);)a=e[o].charCodeAt(0),Ae(a)&&(a===r&&(a=e[o+1].charCodeAt(0),a===t&&++n),++o),++o;return n},ls=e=>{let r=e.charCodeAt(0);return Ae(r)?[r,e.charCodeAt(1)]:[r,-1]},cs=(e,r)=>{let[t,s]=_is_u16u16_char(r);return s!=-1?Wr(e,t,s):Fr(e,t)};Cr.exports={_char_freq_if_u16:Fr,_char_freq_if_u16u16:Wr,_parse_char:ls,char_freq:cs}});var Pr=y((Ya,qr)=>{var{cd2ch:Ka}=ke(),{is_high_surrogate:_s}=M(),G=(e,r,t)=>{let s=e[t].charCodeAt(0);return _s(s)?[e.codePointAt(t),t,t+2]:[s,t,t+1]},Se=(e,r)=>r===0?[-1,-1,0]:G(e,r,0),us=(e,r=(cd,ci,offset))=>{let t=e.length,s=0,[n,o,a]=Se(e,t);for(r(n,s,o),++s,o=a;o<t;)[n,o,a]=G(e,t,o),r(n,s,o),++s,o=a},fs=e=>{let r=e.length,t=Array.from({length:r}).map(g=>[-1,-1]),s=Array.from({length:r}).map(g=>-1),n=Array.from({length:r}).map(g=>-1),o=Array.from({length:r}).map(g=>-1),a=0,[c,l,u]=Se(e,r);for(t[a][0]=0,t[a][1]=0,n[a]=c,s[a]=l,o[a]=u-l,++a,l=u;l<r;){[c,l,u]=G(e,r,l);let g=t[a-1],A=n[g[0]];c===A?(t[a][0]=g[0]+1,t[a][1]=o[g[0]]):(t[a][0]=0,t[a][1]=0),n[a]=c,s[a]=l,o[a]=o[a-1]+(u-l),++a,l=u}return{mx:t,cd:n,of:s,sz:o}},ds=(e,r,t,s,n)=>t+n-e.mx[s-r-1][1];qr.exports={_fst:Se,_next:G,_while:us,max_cmmn_psfix:fs,mvto:ds}});var we=y((Za,zr)=>{var Vr=e=>{e=e-65536;let r=e&1023|56320;return[e>>10|55296,r]},bs=e=>{if(e<65536){let r=e&255,t=e>>8;return[r,t]}else{let[r,t]=Vr(e),s=r&255,n=r>>8,o=t&255,a=t>>8;return[s,n,o,a]}};zr.exports={MAX_CODE:1114111,_split_to_hilo:Vr,split:bs}});var Hr=y(($a,xr)=>{var ys=we(),me=class{u8a;ei=0;cnt=0;constructor(r){this.u8a=new Uint8Array(r)}get view_(){return this.u8a.subarray(0,this.ei)}input(r){let t=ys.split(r);switch(++this.cnt,t.length){case 2:{this.u8a[this.ei]=t[0],++this.ei;break}case 4:{this.u8a[this.ei]=t[0],++this.ei,this.u8a[this.ei]=t[1],++this.ei,this.u8a[this.ei]=t[2],++this.ei,this.u8a[this.ei]=t[3],++this.ei;break}}return t}reset(){this.ei=0,this.cnt=0}};xr.exports={Mach:me}});var Gr=y((Qa,Xr)=>{Xr.exports={def:we(),mach:Hr()}});var K=y((ei,Kr)=>{var gs=ke(),hs=Nr(),ks=Jr(),ps=Pr(),As=Gr();Kr.exports={cmmd:gs,decd:hs,encd:As,freq:ks,handle:ps}});var Y=y((oi,$r)=>{var Ss=Object.is,{istof:ri,is_num:ws}=H(),{_u:ti,_n:ni,_t:Be,_f:Ee}=I(),ms=X(),si=K(),Es=e=>{let r=0;do r++,e>>=7;while(e);return r},Bs=e=>{for(let r=0;r<e.length;++r)if(e.charCodeAt(r)>255)return!1;return!0},js=e=>{for(let r=0;r<e.length;++r)if(e.charCodeAt(r)>255)return!0;return!1},vs=(e,r)=>{let s=new DataView(e.buffer).getFloat64(r,Be);return Ss(s,NaN)},Is={PACKED_SMI_ELEMENTS:0,HOLEY_SMI_ELEMENTS:1,PACKED_DOUBLE_ELEMENTS:2,HOLEY_DOUBLE_ELEMENTS:3,PACKED_ELEMENTS:4,HOLEY_ELEMENTS:5},Yr=e=>{let r=0;return e.forEach(t=>{++r}),r},Os=e=>Yr(e)!==e.length,Zr=e=>Number.isInteger(e)&&!Object.is(e,-0)&&ms.is_smi(e),Rs=e=>{let r=Be,t=Be,s=0;for(;s<e.length;){if(!(r&&Zr(e[s])))if(ws(e[s]))r=Ee;else{r=Ee,t=Ee;break}++s}return{is_packed_smi:r,is_packed_double:t}},Ts=new TextDecoder,Us=(e,r,t,s)=>{let n=new Uint8Array(e.buffer,r,t);return s?s(n):Ts.decode(n)},Ds=new TextDecoder("latin1"),Ls=(e,r,t)=>Ds.decode(e.subarray(r,r+t)),Ms=new TextDecoder("utf-16"),Ns=(e,r,t)=>Ms.decode(e.subarray(r,r+t));$r.exports={BytesNeededForVarint:Es,IsOneByte:Bs,IsTwoByte:js,IsNaNAt:vs,IsSmi:Zr,kFastElementsKindSequence:Is,GetArrayForEachLength:Yr,IsArrayHasHole:Os,GetArrayPackedInfo:Rs,Utf8U8aToStr:Us,Latin1U8aToStr:Ls,JstrU8aToStr:Ns}});var ve=y((ai,et)=>{var Qr=2**53-1,je=class extends Array{constructor(){super(),this[0]=0}get id(){return this[0]}next(){let r=this[0],t=this[0]+1;return t-1===Qr&&(t=0),this[0]=t,r}},Fs=()=>new je;et.exports={MAX_NID:Qr,creat_nid:Fs}});var $=y((li,nt)=>{var Ws=Array,{_u:tt,_n:ii,_t:Cs,_f:Js}=I(),{creat_nid:qs}=ve(),Z=class extends WeakMap{#e=qs();FindOrInsert(r){let t=this.get(r);if(t===tt){let s=this.#e.next();return this.set(r,s),[Js,s]}else return[Cs,t]}},Ps=()=>new Z,Ie=class{idmap=new Z},Vs=()=>new Ie,Oe=class extends Ws{HasObjectWithID(r){return this[r]!==tt}GetObjectWithID(r){return this[r]}AddObjectWithID(r){this.push(r)}get nid_(){return this.length}},rt=()=>new Oe;nt.exports={creat_widmap:Ps,creat_wctx:Vs,creat_ridmap:rt,creat_rctx:rt}});var ot=y((_i,st)=>{var Re=(e,r,t)=>{if(r<t){for(let s=0;s<e.length;++s){let n=e[s];Array.isArray(n)?Re(n,r+1,t):n===null||typeof n=="object"&&Te(n,r+1,t)}Object.freeze(e)}},Te=(e,r,t)=>{if(r<t){for(let s in e){let n=e[s];Array.isArray(n)?Re(n,r+1,t):n===null||typeof n=="object"&&Te(n,r+1,t)}Object.freeze(e)}};st.exports=(e,r=1/0)=>(Array.isArray(e)?Re(e,0,r):e===null||typeof e=="object"&&Te(e,0,r),e)});var yt=y((ui,bt)=>{var zs=Object.prototype.toString,at=e=>zs.call(e),b=e=>r=>at(r)===e,Q=b("[object Boolean]"),it=b("[object Number]"),lt=b("[object String]"),ct=b("[object BigInt]"),xs=b("[object Date]"),Hs=b("[object RegExp]"),Xs=b("[object ArrayBuffer]"),Gs=b("[object SharedArrayBuffer]"),Ks=b("[object DataView]"),Ys=b("[object Uint8Array]"),Zs=b("[object Uint8ClampedArray]"),$s=b("[object Int8Array]"),Qs=b("[object Uint16Array]"),eo=b("[object Int16Array]"),ro=b("[object Uint32Array]"),to=b("[object Int32Array]"),no=b("[object BigUint64Array]"),so=b("[object BigInt64Array]"),oo=b("[object Float16Array]"),ao=b("[object Float32Array]"),io=b("[object Float64Array]"),lo=e=>ArrayBuffer.isView(e),co=Array.isArray,_o=b("[object Set]"),uo=b("[object Map]"),ut=b("[object WeakSet]"),ft=b("[object WeakMap]"),dt=b("[object WeakRef]"),fo=e=>ut(e)||ft(e)||dt(e),bo=e=>Q(e)&&e.valueOf(),yo=e=>Q(e)&&!e.valueOf(),go=e=>Q(e)||it(e)||lt(e)||ct(e),ho=b("[object Error]"),ko=b("[object EvalError]"),po=b("[object RangeError]"),Ao=b("[object ReferenceError]"),So=b("[object TypeError]"),wo=b("[object URIError]"),mo=b("[object AggregateError]");bt.exports={tag:at,is_dt:xs,is_rgx:Hs,is_ab:Xs,is_dv:Ks,is_sab:Gs,is_abvw:lo,is_u8a:Ys,is_u8ca:Zs,is_i8a:$s,is_u16a:Qs,is_i16a:eo,is_u32a:ro,is_i32a:to,is_u64a:no,is_i64a:so,is_f16a:oo,is_f32a:ao,is_f64a:io,is_ary:co,is_st:_o,is_mp:uo,is_weak:fo,is_wkst:ut,is_wkmp:ft,is_wkref:dt,is_prim_wrap:go,is_blo:Q,is_truo:bo,is_flso:yo,is_numo:it,is_stro:lt,is_bio:ct,is_err:ho,is_eval_err:ko,is_rng_err:po,is_ref_err:Ao,is_typ_err:So,is_uri_err:wo,is_agg_errs:mo}});var Ue=y((fi,kt)=>{var gt=["g","i","m","y","u","s","l","d","v"],ht={g:1,i:2,m:4,y:8,u:16,s:32,l:64,d:128,v:256},Eo=e=>{let r=0;for(let t=0;t<e.length;++t){let s=e[t];ht[s]&&(r=r+ht[s])}return r},Bo=e=>{let r="";for(let t=0;t<gt.length;++t){let s=gt[t];e&1<<t&&(r=r+s)}return r};kt.exports={s2n:Eo,n2s:Bo}});var At=y((di,pt)=>{var te=2n**64n-1n,ee=e=>{let r=0;for(;e;)e=e>>64n,++r;return r},re=e=>8*ee(e),De=e=>{let r=0;e>=0n||(r=1,e=-e);let t=re(e);return[r,t,e]},jo=e=>{let[r,t,s]=De(e);return r|t<<1},vo=e=>{let r=e&1,t=e>>1;return{sign:r,data_blen:t}},Io=function*(e){for(;e;)yield e&te,e=e>>64n},Oo=e=>e>=0n?ee(e):ee(-e),Ro=e=>e>=0n?re(e):re(-e),To=function*(e){for(e=e>=0?e:-e;e;)yield e&te,e=e>>64n},Uo=(e,r,t=0,s)=>{let[n,o,a]=De(e),c=n|o,l=t,u=s(c);for(let p=0;p<u.length;++p)r[t+p]=u[p];t=t+u.length;let g=t,A=new DataView(r.buffer);for(;a;)A.setBigUint64(a&te,t,_t),t=t+8,a=a>>64n;return{sign:n,data:r,head_offset:l,body_offset:g,curr_offset:t}};pt.exports={MASK:te,count_if_pos:ee,data_byte_length_if_pos:re,count:Oo,data_byte_length:Ro,_get_head:De,get_encd_head:jo,decd_encd_head:vo,gen_body_if_pos:Io,gen_body:To,use_with_get_var_int:Uo}});var qt=y((Ai,Jt)=>{var bi=ot(),{_u:Ne,_n:Do,_t:Lo,_f:Fe,is_untf:wt}=I(),yi=H(),ne=yt(),Mo=e=>e[Symbol.toStringTag]==="Promise",No=e=>e[Symbol.toStringTag]==="Generator",Fo=e=>e[Symbol.toStringTag]==="AsyncGenerator",Wo=e=>No(e)||Fo(e),Co=e=>e[Symbol.toStringTag]?e[Symbol.toStringTag].includes("Iterator"):Fe,mt=X(),Jo=K(),qo=Ue(),St=At(),oe=Y(),{SerializationTag:f,ErrorTag:S,ArrayBufferViewTag:gi,IsNodeFastBuffer:hi,kNodeFastBufferSym:ki,ArrayBufferViewIndexToCtor:pi,CreatFakeCantBeSered:Et,arrayBufferViewTypeToIndex:Po}=x(),Vo=$(),Bt=(e,r=15,t)=>{e.push(f.kVersion,r)},d=(e,r,t)=>{e.push(r)},W=(e,r,t)=>{e.push(r)},h=(e,r,t)=>{if(mt.is_smi_can_be_encded(r)){var s;do s=r&127|128,e.push(Number(s)),r=r>>7;while(r);return e[e.length-1]=e[e.length-1]&127,e}else{r=BigInt(r);var s;do s=r&0x7Fn|0x80n,e.push(Number(s)),r=r>>7n;while(r);return e[e.length-1]=e[e.length-1]&127,e}},jt=(e,r,t,s=mt.encd)=>(r=s(r),h(e,r),e),vt=new Float64Array(1),j=new Uint8Array(vt.buffer),q=(e,r,t)=>(vt[0]=r,e.push(j[0],j[1],j[2],j[3],j[4],j[5],j[6],j[7]),e),zo=(e,r,t)=>{h(e,r.length);for(var s=0;s<r.length;++s)e.push(r.charCodeAt(s));return e},It=(e,r,t,s)=>{s=s??new Jo.encd.mach.Mach,h(e,r.length*2);for(var n=0;n<r.length;++n){var o=r.charCodeAt(n),[a,c]=s.input(o);e.push(a),e.push(c)}return e},se=(e,r,t)=>{for(var s=0;s<r.length;++s)e.push(r[s]);return e},xo=new Map([[Ne,f.kUndefined],[Do,f.kNull],[Lo,f.kTrue],[Fe,f.kFalse]]),Ot=(e,r,t)=>(d(e,xo.get(r)),e),ae=(e,r,t)=>(d(e,f.kInt32,t),jt(e,r,t),e),We=(e,r,t)=>(d(e,f.kDouble,t),q(e,r,t),e),R=(e,r,t)=>{r|0;var s=e.length;d(e,f.kOneByteString,t),h(e,r.length);for(var n=!0,o=0;o<r.length;++o){var a=r.charCodeAt(o);if(a>255){n=!1;break}else e.push(a)}if(!n){e.length=s;var c=r.length*2,l=oe.BytesNeededForVarint(c);e.length+1+l&1&&d(e,f.kPadding,t),d(e,f.kTwoByteString,t),It(e,r,t)}return e},Rt=(e,r,t)=>(d(e,f.kDate,t),q(e,r.getTime(),t),e),Tt=(e,r,t)=>{d(e,f.kRegExp,t),R(e,r.source,t);var s=qo.s2n(r.flags);return h(e,s,t),e},Ut=new BigUint64Array(1),v=new Uint8Array(Ut.buffer),Ce=(e,r,t)=>{var[s,n,o]=St._get_head(r),a=s|n<<1;for(h(e,a,t);o;)Ut[0]=o&St.MASK,e.push(v[0],v[1],v[2],v[3],v[4],v[5],v[6],v[7]),o=o>>64n;return e},Je=(e,r,t)=>(d(e,f.kBigInt,t),Ce(e,r,t),e),Ho=(e,r,t)=>(e.push(r),e),Le=(e,r,t)=>(h(e,r,t),e),C=(e,r,t)=>{var s=r.constructor.name;return s==="Boolean"?(r.valueOf()?d(e,f.kTrueObject,t):d(e,f.kFalseObject,t),e):s==="Number"?(d(e,f.kNumberObject,t),q(e,Number(r),t),e):s==="String"?(d(e,f.kStringObject,t),R(e,String(r),t),e):s==="BigInt"?(d(e,f.kBigIntObject,t),Ce(e,BigInt(r),t),e):Ne},Xo={EvalError:S.kEvalErrorPrototype,RangeError:S.kRangeErrorPrototype,ReferenceError:S.kReferenceErrorPrototype,SyntaxError:S.kSyntaxErrorPrototype,TypeError:S.kTypeErrorPrototype,URIError:S.kUriErrorPrototype},Dt=(e,r,t)=>{d(e,f.kError,t);var s=r.name,n=Xo[s];n!==void 0&&W(e,n,t),W(e,S.kMessage,t),R(e,r.message,t);var o=r.cause;return o&&(W(e,S.kCause,t),w(e,o,t)),W(e,S.kStack,t),R(e,r.stack,t),W(e,S.kEnd,t),e},Go={undefined:(e,r,t)=>d(e,f.kUndefined,t),null:(e,r,t)=>d(e,f.kNull,t),true:(e,r,t)=>d(e,f.kTrue,t),false:(e,r,t)=>d(e,f.kFalse,t)},w=(e,r,t)=>{var s=typeof r;if(s==="string")R(e,r,t);else if(s==="bigint")Je(e,r,t);else if(s==="number")oe.IsSmi(r)?ae(e,r,t):We(e,r,t);else if(wt(r))Go[r](e,r,t);else{qe(e,r,t);}return e},Lt=(e,r,t)=>{d(e,f.kBeginJSSet,t);var s=0;for(var n of r)w(e,n,t),++s;return d(e,f.kEndJSSet,t),h(e,s,t),e},Mt=(e,r,t)=>{d(e,f.kBeginJSMap,t);var s=r.size*2;for(var[n,o]of r)w(e,n,t),w(e,o,t);return d(e,f.kEndJSMap,t),h(e,s,t),e},Nt=(e,r,t)=>{var s=Po(r);if(s>-1){d(e,f.kHostObject,t),Le(e,s,t),Le(e,r.byteLength,t);var n=new Uint8Array(r.buffer,r.byteOffset,r.byteLength);return se(e,n,t),e}},Ft=(e,r,t)=>Nt(e,r,t),Me=(e,r,t)=>{var s=Fe;ne.is_sab(r)?s=!!r.growable:s=r.resizable;var n=s?r.maxByteLength:r.byteLength,o=r.byteLength;return s?(d(e,f.kResizableArrayBuffer,t),h(e,o,t),h(e,n,t),se(e,new Uint8Array(r),t)):(d(e,f.kArrayBuffer,t),h(e,o,t),se(e,new Uint8Array(r),t)),e},J=(e,r,t)=>{d(e,f.kBeginJSObject,t);var s=0;for(var n in r)w(e,n,t),w(e,r[n],t),s++;return d(e,f.kEndJSObject,t),h(e,s,t),e},Wt=(e,r,t)=>{var s=r.length,{is_packed_smi:n,is_packed_double:o}=oe.GetArrayPackedInfo(r);if(n){d(e,f.kBeginDenseJSArray,t),h(e,s,t);for(var a=0;a<r.length;++a)ae(e,r[a],t)}else if(o){if(d(e,f.kBeginDenseJSArray,t),h(e,s,t),s!==0)for(var a=0;a<r.length;++a)d(e,f.kDouble,t),q(e,r[a],t)}else{d(e,f.kBeginDenseJSArray,t),h(e,s,t);for(var a=0;a<r.length;++a)w(e,r[a],t)}for(var c=Object.keys(r),l=0,a=r.length;a<c.length;++a){var u=c[a];w(e,u,t),w(e,r[u],t),l++}return d(e,f.kEndDenseJSArray,t),h(e,l,t),h(e,s,t),e},Ko=(e,r,t)=>{var s=Et("Symbol",r.description);J(e,s,t)},Yo=(e,r,t)=>{oe.IsSmi(r)?ae(e,r,t):We(e,r,t)},Ct=(e,r,t)=>{var s=Et(idx,String(r));J(e,s,t)},Zo={string:R,bigint:Je,symbol:Ko,number:Yo,function:Ct},$o={"[object Date]":Rt,"[object RegExp]":Tt,"[object Set]":Lt,"[object Map]":Mt,"[object ArrayBuffer]":Me,"[object SharedArrayBuffer]":Me,"[object Boolean]":C,"[object Number]":C,"[object String]":C,"[object BigInt]":C},qe=(e,r,t)=>{if(ne.is_ary(r))Wt(e,r,t);else if(ne.is_abvw(r)){var s=Ft(e,r,t);s!==Ne||J(e,r,t)}else if(wt(r))Ot(e,r,t);else{var n=typeof r;let l=Zo[n];if(l!==void 0)l(e,r,t);else{var[o,a]=t.idmap.FindOrInsert(r);if(o)d(e,f.kObjectReference,t),h(e,a,t);else{var c=ne.tag(r);let u=$o[c];u!==void 0?u(e,r,t):c.includes("Error")?Dt(e,r,t):Mo(r)||Wo(r)||Co(r)?Ct(e,r,t):J(e,r,t)}}}return e},Qo=(e,r=15)=>{var t=[],s=Vo.creat_wctx();Bt(t,r),qe(t,e,s);var n=new Uint8Array(t);return n.buffer};Jt.exports={WriteHeader:Bt,WriteTag:d,WriteVarint:h,WriteZigZag:jt,WriteDouble:q,WriteOneByteString:zo,WriteTwoByteString:It,WriteRawBytes:se,WriteOddball:Ot,WriteSmi:ae,WriteHeapNumber:We,WriteString:R,WriteJSDate:Rt,WriteJSRegExp:Tt,WriteBigIntContents:Ce,WriteBigInt:Je,WriteByte:Ho,WriteUint32:Le,WriteJSPrimitiveWrapper:C,WriteJSError:Dt,WriteObject:w,WriteJSSet:Lt,WriteJSMap:Mt,WriteHostObject:Nt,WriteJSArrayBufferView:Ft,WriteJSArrayBuffer:Me,WriteJSObject:J,WriteJSArray:Wt,WriteJSReceiver:qe,encd:Qo}});var xt=y((Si,zt)=>{var{istof:ea}=H(),Pe=Error,Pt=e=>new Pe(e),Vt=e=>{throw Pt(e)},ra=e=>ea(e,Pe),ta=e=>Vt("unreachable");zt.exports={_ERR:Pe,creat_err:Pt,thrw_str:Vt,is_err:ra,unreachable:ta}});var Xt=y((wi,ie)=>{var na=(e,r=e.constructor)=>{for(var t=e.byteOffset,s=t+e.byteLength,n=new r(e.buffer),o=n.subarray(t/r.BYTES_PER_ELEMENT,s/r.BYTES_PER_ELEMENT),a="[",c=0;c<o.length-1;++c)typeof o[c]=="bigint"?a+=o[c]+"n,":a+=o[c]+",";return o.length===0||(typeof o[o.length-1]=="bigint"?a+=o[o.length-1]+"n":a+=o[o.length-1]),a+="]",a},Ht=e=>{var r=new Uint8Array(e),t=JSON.stringify(Array.from(r)),s;return e.resizable?s=`new ArrayBuffer(${e.byteLength},{maxByteLength:${e.maxByteLength}})`:s=`new ArrayBuffer(${e.byteLength})`,`(()=>{ var ab = ${s};(new Uint8Array(ab)).set(${t});return(ab);})()`};ie.exports=(e,r="",t)=>{var s=r;return t!==void 0&&(s+=`var ${r} = `),s+=Ht(e),s};ie.exports.ab=Ht;Object.defineProperty(ie.exports,"_creat_desc",{value:na,enumerable:!1})});var $t=y((mi,Zt)=>{var sa=(e,r)=>{if(typeof e=="number")return r!==void 0?new ArrayBuffer(e,{maxByteLength:r}):new ArrayBuffer(e);if(e instanceof ArrayBuffer){var t;e.resizable?t=new ArrayBuffer(e.byteLength,{maxByteLength:e.maxByteLength}):t=new ArrayBuffer(e.byteLength);var s=new Uint8Array(e);return new Uint8Array(t).set(s),t}else if(e.buffer&&e.buffer instanceof ArrayBuffer){var n=e.byteOffset,o=n+e.byteLength;if(r!==void 0)return e.buffer.slice(n,o);var t=new ArrayBuffer(o-n,{maxByteLength:r}),s=new Uint8Array(e.buffer).subarray(n,o);return new Uint8Array(t).set(s),t}else{var a=e.length,t;e.resizable?t=new ArrayBuffer(a,{maxByteLength:e.maxByteLength}):t=new ArrayBuffer(a);for(var c=new Uint8Array(t),l=0;l<a;++l)c[l]=e[l];return t}},oa=Xt().ab,le=(e,r,t,s,n)=>{let o=new Uint8Array(e,r,t);return new Uint8Array(s).set(o,n),s},Gt=(e,r,t,s,n)=>(t=t??0,s=s??e.byteLength,n=n??0,le(e,t,s,r,n)),aa=(e,r,t,s=0)=>Gt(e,r,0,t,s),ia=(e,r,t=0)=>le(e,0,e.byteLength,r,t),la=(e,r)=>le(e,0,e.byteLength,r,0),Kt=(e,...r)=>{let t=r.length,s=new Uint8Array(e.length+t);for(let n=0;n<t;++n)s[e.length+n]=r[n];return s.set(e),e},Yt=(e,...r)=>{let t=r.length,s=new Uint8Array(e.length+t);for(let n=0;n<t;++n)s[n]=r[n];return s.set(e,t),e},ca=(e,...r)=>Kt(new Uint8Array(e),...r).buffer,_a=(e,...r)=>Yt(new Uint8Array(e),...r).buffer;Zt.exports={creat:sa,to_str:oa,_cp:le,cp:Gt,cp_from_src_start:aa,cp_all_if_dst_is_enough:ia,cp_all_if_same_blen:la,dupe_u8a_and_push:Kt,dupe_u8a_and_unshift:Yt,dupe_and_push:ca,dupe_and_unshift:_a}});var dn=y((Bi,fn)=>{var{_u:P,_n:ua,_t:E,_f:T}=I(),{thrw_str:fa}=xt(),da=$t(),ba=X(),Ei=K(),ya=Ue(),xe=Y(),{SerializationTag:_,ErrorTag:m,ArrayBufferViewIndexToCtor:ga,CreatUnknown:ha}=x(),{creat_rctx:ka}=$(),Qt={must_be_str:"must_be_str"},pa=(e,r,t)=>{let s=r,n=0,o=0,a=T;do{let c=e[r];if(a=c&128,o<32)n|=(c&127)<<o,o=o+7;else break;++r}while(a);return[n,r-s,r]},Aa=(e,r,t)=>{let s=r,n=0n,o=0n,a=T;do{let c=BigInt(e[r]);if(a=c&0x80n,o<32n)n|=(c&0x7Fn)<<o,o=o+7n;else break;++r}while(a);return[Number(n),r-s,r]},k=Aa,en=(e,r,t)=>{let s=r;++r;let n=e[r];return++r,[n,r-s,r]},L=(e,r,t)=>{let s=r,n;do n=e[r],++r;while(n===_.kPadding);return[n,r-s,r]},rn=(e,r,t,s=ba.decd)=>{let n=r,o=k(e,r,t),a=o[0];return r=o[2],[s(a),r-n,r]},ce=(e,r,t)=>{let n=new DataView(e.buffer,e.byteOffset,e.byteLength).getFloat64(r,E);return r=r+8,[n,8,r]},He=(e,r,t,s)=>{let n=r,o=new Uint8Array(e.buffer,e.byteOffset+r,t);return r=r+t,[o,t,r]},Sa=(e,r,t)=>(++r,[e[i],1,r]),Ve=(e,r,t)=>k(e,r,t),tn=2n**64n,Xe=(e,r,t)=>{let s=r,n=k(e,r,t),o=n[0],a=o&1,c=o>>1;r=n[2],n=He(e,r,c,t);let l=n[0],u=new DataView(l.buffer,l.byteOffset,l.byteLength),g=0n,A=1n,p=c/8;for(let _e=0;_e<p;++_e){let hn=u.getBigUint64(8*_e,E);g=g+hn*A,A=A*tn}return a===1&&(g=-g),r=n[2],[g,r-s,r]},Ge=(e,r,t)=>{let s=r,n=k(e,r,t),o=n[0];r=n[2];let a=xe.Latin1U8aToStr(e,r,o);return r+=o,[a,r-s,r]},Ke=(e,r,t)=>{let s=r,n=k(e,r,t),o=n[0];r=n[2];let a=xe.JstrU8aToStr(e,r,o);return r+=o,[a,r-s,r]},Ye=(e,r,t)=>{let s=r,n=k(e,r,t),o=n[0];r=n[2];let a=xe.Utf8U8aToStr(e,r,o);return r+=o,[a,r-s,r]},nn=(e,r,t)=>{let s=r,n=ce(e,r,t),o=n[0],a=new Date(o);return r=n[2],t.AddObjectWithID(a),[a,r-s,r]},wa=(e,r,t,s)=>{let n=r,o;switch(t){case _.kTrueObject:{o=new Boolean(E);break}case _.kFalseObject:{o=new Boolean(T);break}case _.kNumberObject:{let a=ce(e,r,s),c=a[0];r=a[2],o=new Number(c);break}case _.kStringObject:{let a=V(e,r,s),c=a[0];r=a[2],o=new String(c);break}case _.kBigIntObject:{let a=Xe(e,r,s),c=a[0];r=a[2],o=CreatFakeCantBeSered("BigInt",c);break}default:}return s.AddObjectWithID(o),[o,r-n,r]},sn=(e,r,t)=>{let s=r,n=P,o=P,a=P,c=T,l=Error;for(;!c;){let g=k(e,r,t),A=g[0];switch(r=g[2],A){case m.kEvalErrorPrototype:{l=EvalError;break}case m.kRangeErrorPrototype:{l=RangeError;break}case m.kReferenceErrorPrototype:{l=ReferenceError;break}case m.kSyntaxErrorPrototype:{l=SyntaxError;break}case m.kTypeErrorPrototype:{l=TypeError;break}case m.kUriErrorPrototype:{l=URIError;break}case m.kMessage:{let p=V(e,r,t);n=p[0],r=p[2];break}case m.kCause:{let p=B(e,r,t);a=p[0],r=p[2];break}case m.kStack:{let p=V(e,r,t);o=p[0],r=p[2];break}case m.kEnd:{c=E;break}default:}}let u;return a?u=new l(n,{cause:a}):u=new l(n),u.stack=o,t.AddObjectWithID(u),[u,r-s,r]},V=(e,r,t)=>{let s=r,n=L(e,r,t),o=n[0];switch(r=n[2],o){case _.kOneByteString:return n=Ge(e,r,t),r=n[2],[n[0],r-s,r];case _.kTwoByteString:return n=Ke(e,r,t),r=n[2],[n[0],r-s,r];case _.kUtf8String:return n=Ye(e,r,t),r=n[2],[n[0],r-s,r];default:fa(Qt.must_be_str)}},on=(e,r,t)=>{let s=r,n=V(e,r,t),o=n[0];r=n[2],n=k(e,r,t);let a=n[0];a=ya.n2s(a),r=n[2];let c=new RegExp(o,a);return t.AddObjectWithID(c),[c,r-s,r]},an=(e,r,t)=>{let s=r,n=new Set;t.AddObjectWithID(n);let o=0;for(;E;){let c=r,l=L(e,r,t),u=l[0];if(r=l[2],u===_.kEndJSSet)break;r=c,l=B(e,r,t),n.add(l[0]),r=l[2],o++}let a=k(e,r,t);return r=a[2],[n,r-s,r,a[0]]},ln=(e,r,t)=>{let s=r,n=new Map;t.AddObjectWithID(n);let o=0;for(;E;){let c=r,l=L(e,r,t);if(r=l[2],l[0]===_.kEndJSMap)break;{r=c,l=B(e,r,t);let g=l[0];r=l[2],l=B(e,r,t);let A=l[0];r=l[2],n.set(g,A),o=o+2}}let a=k(e,r,t);return r=a[2],[n,r-s,r,a[0]]},Ze=(e,r,t)=>{let s=r,n=Ve(e,r,t),o=n[0],a=ga[o],c=a.BYTES_PER_ELEMENT;r=n[2],n=Ve(e,r,t);let l=n[0];r=n[2];let u=r;n=He(e,r,l,t);let g;return(e.byteOffset+r)%c===0?g=new a(n[0].buffer,e.byteOffset+r,l/c):g=new a(n[0].buffer.slice(r,r+l)),r=n[2],t.AddObjectWithID(g),[g,r-s,r]},ma=Ze,ze=(e,r,t,s)=>{let n=r,o=k(e,r,s),a=o[0];r=o[2];let c=a,l;if(t){let u=k(e,r,s);c=u[0],l=new ArrayBuffer(a,{maxByteLength:c}),r=u[2],da._cp(e.buffer,e.byteOffset+r,a,l,0),r=r+a}else l=e.buffer.slice(e.byteOffset+r,e.byteOffset+r+a),r=r+a;return s.AddObjectWithID(l),[l,r-n,r]},$e=(e,r,t,s,n,o)=>{let a=r,c=0;for(;E;){let l=r,u=L(e,r,o),g=u[0];if(r=u[2],g!==s){r=l,u=B(e,r,o);let A=u[0];r=u[2],u=B(e,r,o);let p=u[0];r=u[2],t[A]=p,++c}else return[c,r-a,r]}},cn=(e,r,t)=>{let s=r,n={};t.AddObjectWithID(n);let o=$e(e,r,n,_.kEndJSObject,T,t),a=o[0];return r=o[2],o=k(e,r,t),r=o[2],[n,r-s,r]},_n=(e,r,t,s)=>{let n=r,o=k(e,r,s),a=o[0];r=o[2];let c=[];s.AddObjectWithID(c);for(let u=0;u<a;++u)o=B(e,r,s),c.push(o[0]),r=o[2];let l=t===_.kBeginDenseJSArray?_.kEndDenseJSArray:_.kEndSparseJSArray;return o=$e(e,r,c,l,E,s),r=o[2],o=k(e,r,s),r=o[2],o=k(e,r,s),r=o[2],[c,r-n,r]},un=(e,r,t)=>{let s=r,n=L(e,r,t),o=n[0];switch(r=n[2],o){case _.kTheHole:return[P,r-s,r];case _.kUndefined:return[P,r-s,r];case _.kNull:return[ua,r-s,r];case _.kTrue:return[E,r-s,r];case _.kFalse:return[T,r-s,r];case _.kInt32:return n=rn(e,r,t),r=n[2],[n[0],r-s,r];case _.kUint32:return n=k(e,r,t),r=n[2],[n[0],r-s,r];case _.kDouble:return n=ce(e,r,t),r=n[2],[n[0],r-s,r];case _.kBigInt:return n=Xe(e,r,t),r=n[2],[n[0],r-s,r];case _.kOneByteString:return n=Ge(e,r,t),r=n[2],[n[0],r-s,r];case _.kTwoByteString:return n=Ke(e,r,t),r=n[2],[n[0],r-s,r];case _.kUtf8String:return n=Ye(e,r,t),r=n[2],[n[0],r-s,r];case _.kBeginJSObject:return n=cn(e,r,t),r=n[2],[n[0],r-s,r];case _.kBeginDenseJSArray:case _.kBeginSparseJSArray:return n=_n(e,r,o,t),r=n[2],[n[0],r-s,r];case _.kDate:return n=nn(e,r,t),r=n[2],[n[0],r-s,r];case _.kBeginJSMap:return n=ln(e,r,t),r=n[2],[n[0],r-s,r];case _.kBeginJSSet:return n=an(e,r,t),r=n[2],[n[0],r-s,r];case _.kObjectReference:{n=k(e,r,t);let a=n[0];return r=n[2],[t.GetObjectWithID(a),r-s,r]}case _.kRegExp:return n=on(e,r,t),r=n[2],[n[0],r-s,r];case _.kSharedArrayBuffer:case _.kArrayBuffer:return n=ze(e,r,T,t),r=n[2],[n[0],r-s,r];case _.kResizableArrayBuffer:return n=ze(e,r,E,t),r=n[2],[n[0],r-s,r];case _.kError:return n=sn(e,r,t),r=n[2],[n[0],r-s,r];case _.kArrayBufferView:case _.kHostObject:return n=Ze(e,r,t),r=n[2],[n[0],r-s,r];case _.kTrueObject:case _.kFalseObject:case _.kNumberObject:case _.kBigIntObject:case _.kStringObject:return n=wa(e,r,o,t),r=n[2],[n[0],r-s,r];default:return console.log("why unknown",o,r,e),[ha(),r-s,r]}},B=(e,r,t)=>un(e,r,t),Ea=e=>{let r=e.buffer!==void 0?e:new Uint8Array(e),t=ka(),s=0,n=en(r,s,t);return s=n[2],n=B(r,s,t),n[0]};fn.exports={ERRD:Qt,ReadVarintLoopIfLshiftWork:pa,ReadVarint:k,ReadHeader:en,ReadTag:L,ReadZigZag:rn,ReadDouble:ce,ReadRawBytes:He,ReadByte:Sa,ReadUint32:Ve,ReadBigInt:Xe,BI_MUL:tn,ReadOneByteString:Ge,ReadTwoByteString:Ke,ReadUtf8String:Ye,ReadJSDate:nn,ReadString:V,ReadJSRegExp:on,ReadJSError:sn,ReadJSSet:an,ReadJSMap:ln,ReadHostObject:Ze,ReadJSArrayBufferView:ma,ReadJSArrayBuffer:ze,ReadJSObjectProperties:$e,ReadObjectInternal:un,ReadObject:B,ReadJSObject:cn,ReadJSArray:_n,decd:Ea}});var Ta=y((ji,gn)=>{var Ba=nr(),ja=or(),va=x(),Ia=Y(),Oa=ve(),Ra=$(),bn=qt(),yn=dn();gn.exports={fixed_cfg:Ba,restrict:ja,const:va,misc:Ia,zero_nid:Oa,ctx:Ra,w:bn,r:yn,ser:bn.encd,der:yn.decd}});return Ta();})();
|
|
25
25
|
//!id_map_.Find
|
package/TODO
ADDED
|
@@ -0,0 +1,473 @@
|
|
|
1
|
+
const {_u,_n,_t,_f,is_untf} = require("nv-facutil-untf");
|
|
2
|
+
|
|
3
|
+
const _typis = require("nv-facutil-typis");
|
|
4
|
+
const _istis = require("./istis");
|
|
5
|
+
const is_prms = (o) => o[Symbol.toStringTag] === "Promise";
|
|
6
|
+
const is_sg = (o) => o[Symbol.toStringTag] ==='Generator';
|
|
7
|
+
const is_ag = (o) => o[Symbol.toStringTag] ==='AsyncGenerator';
|
|
8
|
+
const is_g = (o) => is_sg(o) || is_ag(o);
|
|
9
|
+
const is_iter = (o) => o[Symbol.toStringTag]?(o[Symbol.toStringTag].includes("Iterator")): _f;
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
const _zigzag = require("nv-number-zigzag");
|
|
20
|
+
const _utf16 = require("nv-buf-jstr");
|
|
21
|
+
const _rgx_flag = require("nv-regexp-flags");
|
|
22
|
+
const _buf_bi = require("nv-buf-bi");
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
const _misc = require("./misc");
|
|
26
|
+
const {
|
|
27
|
+
SerializationTag,
|
|
28
|
+
ErrorTag,
|
|
29
|
+
ArrayBufferViewTag,
|
|
30
|
+
IsNodeFastBuffer,
|
|
31
|
+
kNodeFastBufferSym,
|
|
32
|
+
ArrayBufferViewIndexToCtor,
|
|
33
|
+
CreatFakeCantBeSered,
|
|
34
|
+
arrayBufferViewTypeToIndex,
|
|
35
|
+
} = require("./const");
|
|
36
|
+
|
|
37
|
+
const _ctx = require("./ctx");
|
|
38
|
+
|
|
39
|
+
////----
|
|
40
|
+
|
|
41
|
+
const WriteHeader = (a,kLatestVersion=15,ctx) =>2;
|
|
42
|
+
const WriteTag = (a,tag,ctx) =>1;
|
|
43
|
+
const WriteOddball = (a,o,ctx) =>1;
|
|
44
|
+
const WriteDouble = (a,v,ctx) =>8;
|
|
45
|
+
const WriteRawBytes = (a,byts,ctx) => byts.length;
|
|
46
|
+
|
|
47
|
+
const WriteVarint = (a,v,ctx) => {
|
|
48
|
+
if(_zigzag.is_smi_can_be_encded(v)){
|
|
49
|
+
let c=0;
|
|
50
|
+
do {++c; v = v>>7;} while(v);
|
|
51
|
+
return(c)
|
|
52
|
+
} else {
|
|
53
|
+
v = BigInt(v);
|
|
54
|
+
let c=0;
|
|
55
|
+
do { ++c;v = v>>7n;} while(v);
|
|
56
|
+
return(c)
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
const WriteZigZag = (a,v,ctx,encode=_zigzag.encd) => {
|
|
61
|
+
v = encode(v);
|
|
62
|
+
return WriteVarint(a,v);
|
|
63
|
+
}
|
|
64
|
+
const WriteOneByteString = (a,s,ctx) => {
|
|
65
|
+
var c =0;
|
|
66
|
+
c += WriteVarint(a,s.length);
|
|
67
|
+
c += s.length;
|
|
68
|
+
return(c)
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
const WriteTwoByteString = (a,s,ctx,mach) => {
|
|
72
|
+
var c =0;
|
|
73
|
+
c += WriteVarint(a,s.length*2);
|
|
74
|
+
c += s.length*2;
|
|
75
|
+
return(c)
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
const WriteSmi = (a,smi,ctx)=> {
|
|
79
|
+
var c=0;
|
|
80
|
+
c += WriteTag(a,SerializationTag.kInt32,ctx);
|
|
81
|
+
c += WriteZigZag(a,smi,ctx);
|
|
82
|
+
return(c);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
const WriteHeapNumber = (a,number,ctx) => {
|
|
86
|
+
var c=0;
|
|
87
|
+
c += WriteTag(a,SerializationTag.kDouble,ctx);
|
|
88
|
+
c += WriteDouble(a,number,ctx);
|
|
89
|
+
return(c);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
const WriteString = (a,s,ctx)=>{
|
|
94
|
+
var c=0;
|
|
95
|
+
////-------------------------------------------------------------------
|
|
96
|
+
if (_misc.IsOneByte(s)) {
|
|
97
|
+
c += WriteTag(a,SerializationTag.kOneByteString,ctx);
|
|
98
|
+
c += WriteOneByteString(a,s,ctx);
|
|
99
|
+
} else {
|
|
100
|
+
let byte_length = s.length * 2;
|
|
101
|
+
let head_byte_len = _misc.BytesNeededForVarint(byte_length);
|
|
102
|
+
if((a.length + 1+ head_byte_len & 1)===0) {
|
|
103
|
+
//no need padding TAG | X0 X1 X2 | ....data
|
|
104
|
+
} else {
|
|
105
|
+
//need padding TAG | X0 X1 X2 X3| ...data
|
|
106
|
+
// PAD TAG | X0 X1 X2 X3|
|
|
107
|
+
//to make len(PAD TAG | X0 X1 X2 X3|) is even
|
|
108
|
+
c += WriteTag(a,SerializationTag.kPadding,ctx);
|
|
109
|
+
}
|
|
110
|
+
c += WriteTag(a,SerializationTag.kTwoByteString,ctx);
|
|
111
|
+
c += WriteTwoByteString(a,s,ctx);
|
|
112
|
+
}
|
|
113
|
+
return(c);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
const WriteJSDate = (a,dt,ctx) => {
|
|
117
|
+
var c = 0;
|
|
118
|
+
c += WriteTag(a,SerializationTag.kDate,ctx);
|
|
119
|
+
c += WriteDouble(a,dt.getTime(),ctx);
|
|
120
|
+
return(c);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
const WriteJSRegExp = (a,rgx,ctx)=> {
|
|
124
|
+
WriteTag(a,SerializationTag.kRegExp,ctx);
|
|
125
|
+
WriteString(a,rgx.source,ctx);
|
|
126
|
+
let ui32_flags = _rgx_flag.s2n(rgx.flags);
|
|
127
|
+
WriteVarint(a,ui32_flags,ctx);
|
|
128
|
+
return(a);
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
const U64A = new BigUint64Array(1);
|
|
132
|
+
const BIU8A = new Uint8Array(U64A.buffer);
|
|
133
|
+
|
|
134
|
+
const WriteBigIntContents = (a,obi,ctx) => {
|
|
135
|
+
let [sign,blen,bi] = _buf_bi._get_head(obi);
|
|
136
|
+
let encd_head = (sign | (blen<<1));
|
|
137
|
+
WriteVarint(a,encd_head,ctx);
|
|
138
|
+
while(bi) {
|
|
139
|
+
U64A[0] = bi & _buf_bi.MASK;
|
|
140
|
+
a.push(BIU8A[0],BIU8A[1],BIU8A[2],BIU8A[3],BIU8A[4],BIU8A[5],BIU8A[6],BIU8A[7])
|
|
141
|
+
bi = bi>>64n;
|
|
142
|
+
}
|
|
143
|
+
return(a);
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
const WriteBigInt = (a,bi,ctx)=> {
|
|
147
|
+
WriteTag(a,SerializationTag.kBigInt,ctx);
|
|
148
|
+
WriteBigIntContents(a,bi,ctx);
|
|
149
|
+
return(a);
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
const WriteByte = (a,u8,ctx) => { a.push(u8); return(a);}
|
|
153
|
+
const WriteUint32 = (a,u32,ctx) => { WriteVarint(a,u32,ctx) ; return(a);}
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
const WriteJSPrimitiveWrapper = (a,v,ctx) => {
|
|
157
|
+
var nm = v.constructor.name;
|
|
158
|
+
if (nm === "Boolean") {
|
|
159
|
+
if(v.valueOf()) { WriteTag(a,SerializationTag.kTrueObject,ctx);} else { WriteTag(a,SerializationTag.kFalseObject,ctx);}
|
|
160
|
+
return(a);
|
|
161
|
+
} else if (nm === "Number") {
|
|
162
|
+
WriteTag(a,SerializationTag.kNumberObject,ctx);
|
|
163
|
+
WriteDouble(a,Number(v),ctx);
|
|
164
|
+
return(a);
|
|
165
|
+
} else if (nm === "String") {
|
|
166
|
+
WriteTag(a,SerializationTag.kStringObject,ctx);
|
|
167
|
+
WriteString(a,String(v),ctx);
|
|
168
|
+
return(a);
|
|
169
|
+
} else if (nm === "BigInt") {
|
|
170
|
+
// this is impossible in js-layer
|
|
171
|
+
WriteTag(a,SerializationTag.kBigIntObject,ctx);
|
|
172
|
+
WriteBigIntContents(a,BigInt(v),ctx);
|
|
173
|
+
return(a);
|
|
174
|
+
} else {
|
|
175
|
+
return(_u); // this is a unmatch-flag
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
const WriteJSError = (a,e,ctx) => {
|
|
181
|
+
|
|
182
|
+
WriteTag(a,SerializationTag.kError,ctx);
|
|
183
|
+
let name = e.name;
|
|
184
|
+
switch(name) {
|
|
185
|
+
case("EvalError" ): {WriteVarint(a,ErrorTag.kEvalErrorPrototype,ctx ); break;}
|
|
186
|
+
case("RangeError"): {WriteVarint(a,ErrorTag.kRangeErrorPrototype,ctx ); break;}
|
|
187
|
+
case("ReferenceError"): {WriteVarint(a,ErrorTag.kReferenceErrorPrototype,ctx); break;}
|
|
188
|
+
case("SyntaxError"): {WriteVarint(a,ErrorTag.kSyntaxErrorPrototype,ctx ); break;}
|
|
189
|
+
case("TypeError"): {WriteVarint(a,ErrorTag.kTypeErrorPrototype,ctx ); break;}
|
|
190
|
+
case("URIError"): {WriteVarint(a,ErrorTag.kUriErrorPrototype,ctx ); break;}
|
|
191
|
+
default: {
|
|
192
|
+
//do nothing
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
let message = String(e.message);
|
|
197
|
+
WriteVarint(a,ErrorTag.kMessage,ctx);
|
|
198
|
+
WriteString(a,message,ctx);
|
|
199
|
+
|
|
200
|
+
let cause = e.cause;
|
|
201
|
+
if(cause) {
|
|
202
|
+
WriteVarint(a,ErrorTag.kCause,ctx);
|
|
203
|
+
WriteObject(a,cause,ctx);
|
|
204
|
+
} else {}
|
|
205
|
+
|
|
206
|
+
let stack = String(e.stack);
|
|
207
|
+
WriteVarint(a,ErrorTag.kStack,ctx);
|
|
208
|
+
WriteString(a,stack,ctx);
|
|
209
|
+
|
|
210
|
+
WriteVarint(a,ErrorTag.kEnd,ctx);
|
|
211
|
+
return(a);
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
const _UNTF_FMP = {
|
|
215
|
+
"undefined": (a,o,ctx)=>WriteTag(a,SerializationTag.kUndefined,ctx),
|
|
216
|
+
"null" : (a,o,ctx)=>WriteTag(a,SerializationTag.kNull,ctx),
|
|
217
|
+
"true" : (a,o,ctx)=>WriteTag(a,SerializationTag.kTrue,ctx),
|
|
218
|
+
"false" : (a,o,ctx)=>WriteTag(a,SerializationTag.kFalse,ctx)
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
const WriteObject = (a,o,ctx) => {
|
|
222
|
+
var tnm = typeof(o);
|
|
223
|
+
if(tnm === "string") { WriteString(a,o,ctx);
|
|
224
|
+
} else if(tnm === "bigint") { WriteBigInt(a,o,ctx);
|
|
225
|
+
} else if(tnm === "number") {
|
|
226
|
+
if(_misc.IsSmi(o)) {
|
|
227
|
+
WriteSmi(a,o,ctx);
|
|
228
|
+
} else {
|
|
229
|
+
WriteHeapNumber(a,o,ctx);
|
|
230
|
+
}
|
|
231
|
+
} else {
|
|
232
|
+
if(is_untf(o)){
|
|
233
|
+
_UNTF_FMP[o](a,o,ctx);
|
|
234
|
+
} else {
|
|
235
|
+
WriteJSReceiver(a,o,ctx); //!id_map_.Find
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
return(a);
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
const WriteJSSet = (a,st,ctx) => {
|
|
242
|
+
WriteTag(a,SerializationTag.kBeginJSSet,ctx);
|
|
243
|
+
let sz = 0;
|
|
244
|
+
for(let e of st) {
|
|
245
|
+
WriteObject(a,e,ctx);
|
|
246
|
+
++sz;
|
|
247
|
+
}
|
|
248
|
+
WriteTag(a,SerializationTag.kEndJSSet,ctx);
|
|
249
|
+
WriteVarint(a,sz,ctx);
|
|
250
|
+
return(a);
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
const WriteJSMap = (a,mp,ctx) => {
|
|
254
|
+
WriteTag(a,SerializationTag.kBeginJSMap,ctx);
|
|
255
|
+
let sz = mp.size * 2;
|
|
256
|
+
for(let [k,v] of mp) {
|
|
257
|
+
WriteObject(a,k,ctx);
|
|
258
|
+
WriteObject(a,v,ctx);
|
|
259
|
+
}
|
|
260
|
+
WriteTag(a,SerializationTag.kEndJSMap,ctx);
|
|
261
|
+
WriteVarint(a,sz,ctx);
|
|
262
|
+
return(a);
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
|
|
266
|
+
//compatible with node delegate
|
|
267
|
+
const WriteHostObject = (a,o,ctx) => {
|
|
268
|
+
let abvw_sub_type = arrayBufferViewTypeToIndex(o);
|
|
269
|
+
if(abvw_sub_type>-1) {
|
|
270
|
+
WriteTag(a,SerializationTag.kHostObject,ctx);
|
|
271
|
+
WriteUint32(a, abvw_sub_type, ctx);
|
|
272
|
+
WriteUint32(a, o.byteLength, ctx);
|
|
273
|
+
let u8a = new Uint8Array(o.buffer,o.byteOffset,o.byteLength);
|
|
274
|
+
WriteRawBytes(a,u8a,ctx);
|
|
275
|
+
return(a);
|
|
276
|
+
} else {
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
const WriteJSArrayBufferView = (a,o,ctx) => WriteHostObject(a,o,ctx);
|
|
281
|
+
|
|
282
|
+
const WriteJSArrayBuffer = (a,o,ctx) => {
|
|
283
|
+
let is_resizable = _f;
|
|
284
|
+
if(_istis.is_sab(o)) {
|
|
285
|
+
is_resizable = Boolean(o.growable); // compatible to nodejs version < 20
|
|
286
|
+
} else {
|
|
287
|
+
is_resizable = o.resizable
|
|
288
|
+
}
|
|
289
|
+
let max_byte_length = (is_resizable)?o.maxByteLength:o.byteLength;
|
|
290
|
+
let byte_length = o.byteLength;
|
|
291
|
+
if (is_resizable) {
|
|
292
|
+
WriteTag(a,SerializationTag.kResizableArrayBuffer,ctx);
|
|
293
|
+
WriteVarint(a,byte_length,ctx);
|
|
294
|
+
WriteVarint(a,max_byte_length,ctx);
|
|
295
|
+
WriteRawBytes(a,new Uint8Array(o),ctx);
|
|
296
|
+
} else {
|
|
297
|
+
WriteTag(a,SerializationTag.kArrayBuffer,ctx);
|
|
298
|
+
WriteVarint(a,byte_length,ctx);
|
|
299
|
+
WriteRawBytes(a,new Uint8Array(o),ctx);
|
|
300
|
+
}
|
|
301
|
+
return(a)
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
const WriteJSObject = (a,o,ctx) => {
|
|
305
|
+
WriteTag(a,SerializationTag.kBeginJSObject,ctx);
|
|
306
|
+
let properties_written = 0; // kv-pair length NOT entries length
|
|
307
|
+
for(let k in o) {
|
|
308
|
+
WriteObject(a,k,ctx);
|
|
309
|
+
WriteObject(a,o[k],ctx);
|
|
310
|
+
properties_written++;
|
|
311
|
+
}
|
|
312
|
+
WriteTag(a,SerializationTag.kEndJSObject,ctx);
|
|
313
|
+
WriteVarint(a,properties_written,ctx);
|
|
314
|
+
return(a)
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
|
|
318
|
+
const WriteJSArray = (a,o,ctx) => {
|
|
319
|
+
let length = o.length;
|
|
320
|
+
let {is_packed_smi,is_packed_double} = _misc.GetArrayPackedInfo(o);
|
|
321
|
+
if(is_packed_smi) {
|
|
322
|
+
WriteTag(a,SerializationTag.kBeginDenseJSArray,ctx);
|
|
323
|
+
WriteVarint(a,length,ctx);
|
|
324
|
+
for(let i=0;i<o.length;++i) {
|
|
325
|
+
WriteSmi(a,o[i],ctx);
|
|
326
|
+
}
|
|
327
|
+
} else if(is_packed_double) {
|
|
328
|
+
WriteTag(a,SerializationTag.kBeginDenseJSArray,ctx);
|
|
329
|
+
WriteVarint(a,length,ctx);
|
|
330
|
+
if(length !==0) {
|
|
331
|
+
for(let i=0;i<o.length;++i) {
|
|
332
|
+
WriteTag(a,SerializationTag.kDouble,ctx);
|
|
333
|
+
WriteDouble(a,o[i],ctx);
|
|
334
|
+
}
|
|
335
|
+
} else {}
|
|
336
|
+
} else {
|
|
337
|
+
WriteTag(a,SerializationTag.kBeginDenseJSArray,ctx);
|
|
338
|
+
WriteVarint(a,length,ctx);
|
|
339
|
+
for(let i=0;i<o.length;++i) {
|
|
340
|
+
WriteObject(a,o[i],ctx);
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
////-------must use this slow method
|
|
344
|
+
let ks = Object.keys(o);
|
|
345
|
+
let properties_written = 0;
|
|
346
|
+
for(let i=o.length;i<ks.length;++i) {
|
|
347
|
+
let k = ks[i];
|
|
348
|
+
WriteObject(a,k,ctx);
|
|
349
|
+
WriteObject(a,o[k],ctx);
|
|
350
|
+
properties_written++;
|
|
351
|
+
}
|
|
352
|
+
WriteTag(a,SerializationTag.kEndDenseJSArray,ctx);
|
|
353
|
+
WriteVarint(a,properties_written,ctx);
|
|
354
|
+
WriteVarint(a,length,ctx);
|
|
355
|
+
return(a);
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
|
|
359
|
+
const WriteSymbol = (a,o,ctx)=>{
|
|
360
|
+
let phantom = CreatFakeCantBeSered("Symbol",o.description);
|
|
361
|
+
WriteJSObject(a,phantom,ctx);
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
const WriteNumber = (a,o,ctx)=>{
|
|
365
|
+
if(_misc.IsSmi(o)) { WriteSmi(a,o,ctx); } else { WriteHeapNumber(a,o,ctx);}
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
const WriteUnsupported = (a,o,ctx)=>{
|
|
369
|
+
let phantom = CreatFakeCantBeSered(idx,String(o));
|
|
370
|
+
WriteJSObject(a,phantom,ctx);
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
const _FMP0 = {
|
|
374
|
+
"string" : WriteString,
|
|
375
|
+
"bigint" : WriteBigInt,
|
|
376
|
+
"symbol" : WriteSymbol,
|
|
377
|
+
"number" : WriteNumber,
|
|
378
|
+
"function": WriteUnsupported,
|
|
379
|
+
}
|
|
380
|
+
|
|
381
|
+
const _FMP1 = {
|
|
382
|
+
"[object Date]":WriteJSDate,
|
|
383
|
+
"[object RegExp]":WriteJSRegExp,
|
|
384
|
+
"[object Set]":WriteJSSet,
|
|
385
|
+
"[object Map]":WriteJSMap,
|
|
386
|
+
"[object ArrayBuffer]":WriteJSArrayBuffer,
|
|
387
|
+
"[object SharedArrayBuffer]":WriteJSArrayBuffer,
|
|
388
|
+
"[object Boolean]":WriteJSPrimitiveWrapper,
|
|
389
|
+
"[object Number]":WriteJSPrimitiveWrapper,
|
|
390
|
+
"[object String]":WriteJSPrimitiveWrapper,
|
|
391
|
+
"[object BigInt]":WriteJSPrimitiveWrapper,
|
|
392
|
+
}
|
|
393
|
+
|
|
394
|
+
const WriteJSReceiver = (a,o,ctx) => {
|
|
395
|
+
if(_istis.is_ary(o)) {
|
|
396
|
+
WriteJSArray(a,o,ctx);
|
|
397
|
+
} else if(_istis.is_abvw(o)) {
|
|
398
|
+
let r = WriteJSArrayBufferView(a,o,ctx);
|
|
399
|
+
if(r!==_u) { } else { WriteJSObject(a,o,ctx); }
|
|
400
|
+
} else if(is_untf(o)) {
|
|
401
|
+
WriteOddball(a,o,ctx);
|
|
402
|
+
} else {
|
|
403
|
+
var tnm = typeof(o);
|
|
404
|
+
const W0 = _FMP0[tnm];
|
|
405
|
+
if(W0 !== undefined) {
|
|
406
|
+
W0(a,o,ctx);
|
|
407
|
+
} else {
|
|
408
|
+
let [already_exists,idx] = ctx.idmap.FindOrInsert(o);
|
|
409
|
+
if (already_exists) {
|
|
410
|
+
WriteTag(a,SerializationTag.kObjectReference,ctx);
|
|
411
|
+
WriteVarint(a,idx,ctx);
|
|
412
|
+
} else {
|
|
413
|
+
var ttag = _istis.tag(o);
|
|
414
|
+
const W1 = _FMP1[ttag];
|
|
415
|
+
if(W1 !== undefined) {
|
|
416
|
+
W1(a,o,ctx);
|
|
417
|
+
} else if(ttag.includes("Error")) {
|
|
418
|
+
WriteJSError(a,o,ctx);
|
|
419
|
+
} else if(is_prms(o) || is_g(o) || is_iter(o)) {
|
|
420
|
+
WriteUnsupported(a,o,ctx);
|
|
421
|
+
} else {
|
|
422
|
+
WriteJSObject(a,o,ctx);
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
}
|
|
426
|
+
}
|
|
427
|
+
return(a)
|
|
428
|
+
}
|
|
429
|
+
|
|
430
|
+
const encd = (o,kLatestVersion=15) => {
|
|
431
|
+
let a = [];
|
|
432
|
+
let ctx = _ctx.creat_wctx();
|
|
433
|
+
WriteHeader(a,kLatestVersion);
|
|
434
|
+
WriteJSReceiver(a,o,ctx);
|
|
435
|
+
let u8a = new Uint8Array(a);
|
|
436
|
+
return(u8a.buffer)
|
|
437
|
+
}
|
|
438
|
+
|
|
439
|
+
module.exports = {
|
|
440
|
+
WriteHeader,
|
|
441
|
+
WriteTag,
|
|
442
|
+
WriteVarint,
|
|
443
|
+
WriteZigZag,
|
|
444
|
+
WriteDouble,
|
|
445
|
+
WriteOneByteString,
|
|
446
|
+
WriteTwoByteString,
|
|
447
|
+
WriteRawBytes,
|
|
448
|
+
WriteOddball,
|
|
449
|
+
WriteSmi,
|
|
450
|
+
WriteHeapNumber,
|
|
451
|
+
WriteString,
|
|
452
|
+
WriteJSDate,
|
|
453
|
+
WriteJSRegExp,
|
|
454
|
+
WriteBigIntContents,
|
|
455
|
+
WriteBigInt,
|
|
456
|
+
WriteByte,
|
|
457
|
+
WriteUint32,
|
|
458
|
+
WriteJSPrimitiveWrapper,
|
|
459
|
+
WriteJSError,
|
|
460
|
+
////
|
|
461
|
+
WriteObject,
|
|
462
|
+
WriteJSSet,
|
|
463
|
+
WriteJSMap,
|
|
464
|
+
WriteHostObject,
|
|
465
|
+
WriteJSArrayBufferView,
|
|
466
|
+
WriteJSArrayBuffer,
|
|
467
|
+
WriteJSObject,
|
|
468
|
+
WriteJSArray,
|
|
469
|
+
////
|
|
470
|
+
WriteJSReceiver,
|
|
471
|
+
////
|
|
472
|
+
encd
|
|
473
|
+
}
|
package/misc.js
CHANGED
|
@@ -21,7 +21,12 @@ const IsOneByte = (s) => {
|
|
|
21
21
|
}
|
|
22
22
|
return true;
|
|
23
23
|
};
|
|
24
|
-
const IsTwoByte = (s) =>
|
|
24
|
+
const IsTwoByte = (s) => {
|
|
25
|
+
for (let i = 0; i < s.length; ++i) {
|
|
26
|
+
if (s.charCodeAt(i) > 0xFF) return true;
|
|
27
|
+
}
|
|
28
|
+
return false;
|
|
29
|
+
};
|
|
25
30
|
|
|
26
31
|
const IsNaNAt = (u8a,si) => {
|
|
27
32
|
let dv = new DataView(u8a.buffer);
|
package/package.json
CHANGED
|
@@ -3,16 +3,15 @@
|
|
|
3
3
|
"nv-buf-bi": "^1.0.5",
|
|
4
4
|
"nv-buf-jstr": "^1.0.14",
|
|
5
5
|
"nv-facutil-ab": "^1.0.0",
|
|
6
|
-
"nv-facutil-
|
|
6
|
+
"nv-facutil-deep-freeze-j": "^1.0.0",
|
|
7
7
|
"nv-facutil-thrw": "^1.0.2",
|
|
8
8
|
"nv-number-zigzag": "^1.0.1",
|
|
9
9
|
"nv-regexp-flags": "^1.0.1"
|
|
10
10
|
},
|
|
11
|
-
"version": "1.0.
|
|
11
|
+
"version": "1.0.6",
|
|
12
12
|
"name": "nv-buf-serde",
|
|
13
13
|
"description": "nv-buf-serde ======================= - rewrite v8/src/objects/value-serializer.cc to JS - to let you use nodejs'v8.serialize AND nodejs'v8.deserialize in browser, - similiar to structuredClone AND MessageChannel-transfer, but can be used to send/recv data to server-side",
|
|
14
14
|
"main": "index.js",
|
|
15
|
-
"devDependencies": {},
|
|
16
15
|
"scripts": {
|
|
17
16
|
"test": "echo \"Error: no test specified\" && exit 1"
|
|
18
17
|
},
|
package/w.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
const FRZ = require("nv-facutil-deep-freeze-j");
|
|
1
2
|
const {_u,_n,_t,_f,is_untf} = require("nv-facutil-untf");
|
|
2
3
|
|
|
3
4
|
const _typis = require("nv-facutil-typis");
|
|
@@ -38,16 +39,13 @@ const _ctx = require("./ctx");
|
|
|
38
39
|
|
|
39
40
|
////----
|
|
40
41
|
|
|
41
|
-
const WriteHeader
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
const WriteTag = (a,tag,ctx) => { a.push(tag)}
|
|
42
|
+
const WriteHeader = (a,kLatestVersion=15,ctx) => {a.push(SerializationTag.kVersion,kLatestVersion);}
|
|
43
|
+
const WriteTag = (a,tag,ctx) => { a.push(tag);}
|
|
44
|
+
const WriteLe127VarInt = (a,v,ctx) => { a.push(v);}
|
|
47
45
|
|
|
48
46
|
const WriteVarint = (a,v,ctx) => {
|
|
49
47
|
if(_zigzag.is_smi_can_be_encded(v)){
|
|
50
|
-
|
|
48
|
+
var next_byte;
|
|
51
49
|
do {
|
|
52
50
|
next_byte = (v & 0x7F) | 0x80 ;
|
|
53
51
|
a.push(Number(next_byte)) ;
|
|
@@ -57,7 +55,7 @@ const WriteVarint = (a,v,ctx) => {
|
|
|
57
55
|
return(a)
|
|
58
56
|
} else {
|
|
59
57
|
v = BigInt(v);
|
|
60
|
-
|
|
58
|
+
var next_byte;
|
|
61
59
|
do {
|
|
62
60
|
next_byte = (v & 0x7Fn) | 0x80n ;
|
|
63
61
|
a.push(Number(next_byte)) ;
|
|
@@ -74,20 +72,18 @@ const WriteZigZag = (a,v,ctx,encode=_zigzag.encd) => {
|
|
|
74
72
|
return(a)
|
|
75
73
|
}
|
|
76
74
|
|
|
75
|
+
const F64A = new Float64Array(1);
|
|
76
|
+
const F64AU8A = new Uint8Array(F64A.buffer);
|
|
77
77
|
|
|
78
|
-
const WriteDouble = (a,v,ctx
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
let u8a = new Uint8Array(f64a.buffer);
|
|
82
|
-
for(let i=0;i<8;++i) {
|
|
83
|
-
a.push(u8a[i])
|
|
84
|
-
}
|
|
78
|
+
const WriteDouble = (a,v,ctx) => {
|
|
79
|
+
F64A[0] = v;
|
|
80
|
+
a.push(F64AU8A[0],F64AU8A[1],F64AU8A[2],F64AU8A[3],F64AU8A[4],F64AU8A[5],F64AU8A[6],F64AU8A[7]);
|
|
85
81
|
return(a)
|
|
86
82
|
}
|
|
87
83
|
|
|
88
84
|
const WriteOneByteString = (a,s,ctx) => {
|
|
89
85
|
WriteVarint(a,s.length);
|
|
90
|
-
for(
|
|
86
|
+
for(var i=0;i<s.length;++i) {
|
|
91
87
|
a.push(s.charCodeAt(i))
|
|
92
88
|
}
|
|
93
89
|
return(a)
|
|
@@ -96,9 +92,9 @@ const WriteOneByteString = (a,s,ctx) => {
|
|
|
96
92
|
const WriteTwoByteString = (a,s,ctx,mach) => {
|
|
97
93
|
mach = mach?? (new _utf16.encd.mach.Mach());
|
|
98
94
|
WriteVarint(a,s.length*2);
|
|
99
|
-
for(
|
|
100
|
-
|
|
101
|
-
|
|
95
|
+
for(var i =0;i<s.length;++i) {
|
|
96
|
+
var cd = s.charCodeAt(i);
|
|
97
|
+
var [fst,snd] = mach.input(cd);
|
|
102
98
|
a.push(fst);
|
|
103
99
|
a.push(snd)
|
|
104
100
|
}
|
|
@@ -107,31 +103,20 @@ const WriteTwoByteString = (a,s,ctx,mach) => {
|
|
|
107
103
|
|
|
108
104
|
|
|
109
105
|
const WriteRawBytes = (a,byts,ctx) => {
|
|
110
|
-
for(
|
|
106
|
+
for(var i=0;i<byts.length;++i) {
|
|
111
107
|
a.push(byts[i])
|
|
112
108
|
}
|
|
113
109
|
return(a)
|
|
114
110
|
}
|
|
115
111
|
|
|
116
|
-
const
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
break;
|
|
125
|
-
case _t:
|
|
126
|
-
tag = SerializationTag.kTrue;
|
|
127
|
-
break;
|
|
128
|
-
case _n:
|
|
129
|
-
tag = SerializationTag.kNull;
|
|
130
|
-
break;
|
|
131
|
-
}
|
|
132
|
-
WriteTag(a,tag);
|
|
133
|
-
return(a);
|
|
134
|
-
}
|
|
112
|
+
const _ODD_BALL_MP = new Map([
|
|
113
|
+
[_u,SerializationTag.kUndefined],
|
|
114
|
+
[_n,SerializationTag.kNull],
|
|
115
|
+
[_t,SerializationTag.kTrue],
|
|
116
|
+
[_f,SerializationTag.kFalse]
|
|
117
|
+
]);
|
|
118
|
+
|
|
119
|
+
const WriteOddball = (a,o,ctx)=> {WriteTag(a,_ODD_BALL_MP.get(o));return(a);}
|
|
135
120
|
|
|
136
121
|
const WriteSmi = (a,smi,ctx)=> {
|
|
137
122
|
WriteTag(a,SerializationTag.kInt32,ctx);
|
|
@@ -149,12 +134,24 @@ const WriteHeapNumber = (a,number,ctx) => {
|
|
|
149
134
|
const WriteString = (a,s,ctx)=>{
|
|
150
135
|
s | 0; // String::Flattern
|
|
151
136
|
////-------------------------------------------------------------------
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
137
|
+
var old_offset = a.length;
|
|
138
|
+
WriteTag(a,SerializationTag.kOneByteString,ctx);
|
|
139
|
+
WriteVarint(a,s.length);
|
|
140
|
+
var is_one_byte = true;
|
|
141
|
+
for(var i=0;i<s.length;++i) {
|
|
142
|
+
var cd = s.charCodeAt(i);
|
|
143
|
+
if(cd >0xff) {
|
|
144
|
+
is_one_byte = false;
|
|
145
|
+
break;
|
|
146
|
+
} else {
|
|
147
|
+
a.push(cd);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
if(is_one_byte) {
|
|
151
|
+
} else {
|
|
152
|
+
a.length = old_offset;
|
|
153
|
+
var byte_length = s.length * 2;
|
|
154
|
+
var head_byte_len = _misc.BytesNeededForVarint(byte_length);
|
|
158
155
|
if((a.length + 1+ head_byte_len & 1)===0) {
|
|
159
156
|
//no need padding TAG | X0 X1 X2 | ....data
|
|
160
157
|
} else {
|
|
@@ -178,20 +175,21 @@ const WriteJSDate = (a,dt,ctx) => {
|
|
|
178
175
|
const WriteJSRegExp = (a,rgx,ctx)=> {
|
|
179
176
|
WriteTag(a,SerializationTag.kRegExp,ctx);
|
|
180
177
|
WriteString(a,rgx.source,ctx);
|
|
181
|
-
|
|
178
|
+
var ui32_flags = _rgx_flag.s2n(rgx.flags);
|
|
182
179
|
WriteVarint(a,ui32_flags,ctx);
|
|
183
180
|
return(a);
|
|
184
181
|
}
|
|
185
182
|
|
|
183
|
+
const U64A = new BigUint64Array(1);
|
|
184
|
+
const BIU8A = new Uint8Array(U64A.buffer);
|
|
185
|
+
|
|
186
186
|
const WriteBigIntContents = (a,obi,ctx) => {
|
|
187
|
-
|
|
188
|
-
|
|
187
|
+
var [sign,blen,bi] = _buf_bi._get_head(obi);
|
|
188
|
+
var encd_head = (sign | (blen<<1));
|
|
189
189
|
WriteVarint(a,encd_head,ctx);
|
|
190
|
-
let bui64a = new BigUint64Array(1);
|
|
191
|
-
let u8a = new Uint8Array(bui64a.buffer);
|
|
192
190
|
while(bi) {
|
|
193
|
-
|
|
194
|
-
a.push(
|
|
191
|
+
U64A[0] = bi & _buf_bi.MASK;
|
|
192
|
+
a.push(BIU8A[0],BIU8A[1],BIU8A[2],BIU8A[3],BIU8A[4],BIU8A[5],BIU8A[6],BIU8A[7])
|
|
195
193
|
bi = bi>>64n;
|
|
196
194
|
}
|
|
197
195
|
return(a);
|
|
@@ -230,69 +228,70 @@ const WriteJSPrimitiveWrapper = (a,v,ctx) => {
|
|
|
230
228
|
}
|
|
231
229
|
}
|
|
232
230
|
|
|
231
|
+
////
|
|
233
232
|
|
|
234
|
-
const
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
case("SyntaxError"): {WriteVarint(a,ErrorTag.kSyntaxErrorPrototype,ctx ); break;}
|
|
243
|
-
case("TypeError"): {WriteVarint(a,ErrorTag.kTypeErrorPrototype,ctx ); break;}
|
|
244
|
-
case("URIError"): {WriteVarint(a,ErrorTag.kUriErrorPrototype,ctx ); break;}
|
|
245
|
-
default: {
|
|
246
|
-
//do nothing
|
|
247
|
-
}
|
|
248
|
-
}
|
|
233
|
+
const _ERR_SUB_TYPE_MP = {
|
|
234
|
+
"EvalError": ErrorTag.kEvalErrorPrototype,
|
|
235
|
+
"RangeError":ErrorTag.kRangeErrorPrototype,
|
|
236
|
+
"ReferenceError":ErrorTag.kReferenceErrorPrototype,
|
|
237
|
+
"SyntaxError":ErrorTag.kSyntaxErrorPrototype,
|
|
238
|
+
"TypeError":ErrorTag.kTypeErrorPrototype,
|
|
239
|
+
"URIError":ErrorTag.kUriErrorPrototype
|
|
240
|
+
}
|
|
249
241
|
|
|
250
|
-
let message = String(e.message);
|
|
251
|
-
WriteVarint(a,ErrorTag.kMessage,ctx);
|
|
252
|
-
WriteString(a,message,ctx);
|
|
253
242
|
|
|
254
|
-
let cause = e.cause;
|
|
255
|
-
if(cause) {
|
|
256
|
-
WriteVarint(a,ErrorTag.kCause,ctx);
|
|
257
|
-
WriteObject(a,cause,ctx);
|
|
258
|
-
} else {}
|
|
259
243
|
|
|
260
|
-
let stack = String(e.stack);
|
|
261
|
-
WriteVarint(a,ErrorTag.kStack,ctx);
|
|
262
|
-
WriteString(a,stack,ctx);
|
|
263
244
|
|
|
264
|
-
|
|
245
|
+
const WriteJSError = (a,e,ctx) => {
|
|
246
|
+
WriteTag(a,SerializationTag.kError,ctx);
|
|
247
|
+
var name = e.name;
|
|
248
|
+
var subt = _ERR_SUB_TYPE_MP[name];
|
|
249
|
+
if(subt!== undefined) {WriteLe127VarInt(a,subt,ctx ); } else {}
|
|
250
|
+
////
|
|
251
|
+
WriteLe127VarInt(a,ErrorTag.kMessage,ctx);
|
|
252
|
+
WriteString(a,e.message,ctx);
|
|
253
|
+
////
|
|
254
|
+
var cause = e.cause;
|
|
255
|
+
if(cause) {WriteLe127VarInt(a,ErrorTag.kCause,ctx);WriteObject(a,cause,ctx);} else {}
|
|
256
|
+
////
|
|
257
|
+
WriteLe127VarInt(a,ErrorTag.kStack,ctx);
|
|
258
|
+
WriteString(a,e.stack,ctx);
|
|
259
|
+
////
|
|
260
|
+
WriteLe127VarInt(a,ErrorTag.kEnd,ctx);
|
|
265
261
|
return(a);
|
|
266
262
|
}
|
|
267
263
|
|
|
264
|
+
const _UNTF_FMP = {
|
|
265
|
+
"undefined": (a,o,ctx)=>WriteTag(a,SerializationTag.kUndefined,ctx),
|
|
266
|
+
"null" : (a,o,ctx)=>WriteTag(a,SerializationTag.kNull,ctx),
|
|
267
|
+
"true" : (a,o,ctx)=>WriteTag(a,SerializationTag.kTrue,ctx),
|
|
268
|
+
"false" : (a,o,ctx)=>WriteTag(a,SerializationTag.kFalse,ctx)
|
|
269
|
+
}
|
|
268
270
|
|
|
269
271
|
const WriteObject = (a,o,ctx) => {
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
} else if(
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
WriteTag(a,SerializationTag.kFalse,ctx);
|
|
280
|
-
} else if(_typis.is_num(o)) {
|
|
281
|
-
WriteHeapNumber(a,o,ctx);
|
|
282
|
-
} else if(_typis.is_bi(o)) {
|
|
283
|
-
WriteBigInt(a,o,ctx);
|
|
284
|
-
} else if(_typis.is_str(o)) {
|
|
285
|
-
WriteString(a,o,ctx);
|
|
272
|
+
var tnm = typeof(o);
|
|
273
|
+
if(tnm === "string") { WriteString(a,o,ctx);
|
|
274
|
+
} else if(tnm === "bigint") { WriteBigInt(a,o,ctx);
|
|
275
|
+
} else if(tnm === "number") {
|
|
276
|
+
if(_misc.IsSmi(o)) {
|
|
277
|
+
WriteSmi(a,o,ctx);
|
|
278
|
+
} else {
|
|
279
|
+
WriteHeapNumber(a,o,ctx);
|
|
280
|
+
}
|
|
286
281
|
} else {
|
|
287
|
-
|
|
282
|
+
if(is_untf(o)){
|
|
283
|
+
_UNTF_FMP[o](a,o,ctx);
|
|
284
|
+
} else {
|
|
285
|
+
WriteJSReceiver(a,o,ctx); //!id_map_.Find
|
|
286
|
+
}
|
|
288
287
|
}
|
|
289
288
|
return(a);
|
|
290
289
|
}
|
|
291
290
|
|
|
292
291
|
const WriteJSSet = (a,st,ctx) => {
|
|
293
292
|
WriteTag(a,SerializationTag.kBeginJSSet,ctx);
|
|
294
|
-
|
|
295
|
-
for(
|
|
293
|
+
var sz = 0;
|
|
294
|
+
for(var e of st) {
|
|
296
295
|
WriteObject(a,e,ctx);
|
|
297
296
|
++sz;
|
|
298
297
|
}
|
|
@@ -303,8 +302,8 @@ const WriteJSSet = (a,st,ctx) => {
|
|
|
303
302
|
|
|
304
303
|
const WriteJSMap = (a,mp,ctx) => {
|
|
305
304
|
WriteTag(a,SerializationTag.kBeginJSMap,ctx);
|
|
306
|
-
|
|
307
|
-
for(
|
|
305
|
+
var sz = mp.size * 2;
|
|
306
|
+
for(var [k,v] of mp) {
|
|
308
307
|
WriteObject(a,k,ctx);
|
|
309
308
|
WriteObject(a,v,ctx);
|
|
310
309
|
}
|
|
@@ -316,12 +315,12 @@ const WriteJSMap = (a,mp,ctx) => {
|
|
|
316
315
|
|
|
317
316
|
//compatible with node delegate
|
|
318
317
|
const WriteHostObject = (a,o,ctx) => {
|
|
319
|
-
|
|
318
|
+
var abvw_sub_type = arrayBufferViewTypeToIndex(o);
|
|
320
319
|
if(abvw_sub_type>-1) {
|
|
321
320
|
WriteTag(a,SerializationTag.kHostObject,ctx);
|
|
322
321
|
WriteUint32(a, abvw_sub_type, ctx);
|
|
323
322
|
WriteUint32(a, o.byteLength, ctx);
|
|
324
|
-
|
|
323
|
+
var u8a = new Uint8Array(o.buffer,o.byteOffset,o.byteLength);
|
|
325
324
|
WriteRawBytes(a,u8a,ctx);
|
|
326
325
|
return(a);
|
|
327
326
|
} else {
|
|
@@ -331,14 +330,14 @@ const WriteHostObject = (a,o,ctx) => {
|
|
|
331
330
|
const WriteJSArrayBufferView = (a,o,ctx) => WriteHostObject(a,o,ctx);
|
|
332
331
|
|
|
333
332
|
const WriteJSArrayBuffer = (a,o,ctx) => {
|
|
334
|
-
|
|
333
|
+
var is_resizable = _f;
|
|
335
334
|
if(_istis.is_sab(o)) {
|
|
336
335
|
is_resizable = Boolean(o.growable); // compatible to nodejs version < 20
|
|
337
336
|
} else {
|
|
338
337
|
is_resizable = o.resizable
|
|
339
338
|
}
|
|
340
|
-
|
|
341
|
-
|
|
339
|
+
var max_byte_length = (is_resizable)?o.maxByteLength:o.byteLength;
|
|
340
|
+
var byte_length = o.byteLength;
|
|
342
341
|
if (is_resizable) {
|
|
343
342
|
WriteTag(a,SerializationTag.kResizableArrayBuffer,ctx);
|
|
344
343
|
WriteVarint(a,byte_length,ctx);
|
|
@@ -354,8 +353,8 @@ const WriteJSArrayBuffer = (a,o,ctx) => {
|
|
|
354
353
|
|
|
355
354
|
const WriteJSObject = (a,o,ctx) => {
|
|
356
355
|
WriteTag(a,SerializationTag.kBeginJSObject,ctx);
|
|
357
|
-
|
|
358
|
-
for(
|
|
356
|
+
var properties_written = 0; // kv-pair length NOT entries length
|
|
357
|
+
for(var k in o) {
|
|
359
358
|
WriteObject(a,k,ctx);
|
|
360
359
|
WriteObject(a,o[k],ctx);
|
|
361
360
|
properties_written++;
|
|
@@ -367,19 +366,19 @@ const WriteJSObject = (a,o,ctx) => {
|
|
|
367
366
|
|
|
368
367
|
|
|
369
368
|
const WriteJSArray = (a,o,ctx) => {
|
|
370
|
-
|
|
371
|
-
|
|
369
|
+
var length = o.length;
|
|
370
|
+
var {is_packed_smi,is_packed_double} = _misc.GetArrayPackedInfo(o);
|
|
372
371
|
if(is_packed_smi) {
|
|
373
372
|
WriteTag(a,SerializationTag.kBeginDenseJSArray,ctx);
|
|
374
373
|
WriteVarint(a,length,ctx);
|
|
375
|
-
for(
|
|
374
|
+
for(var i=0;i<o.length;++i) {
|
|
376
375
|
WriteSmi(a,o[i],ctx);
|
|
377
376
|
}
|
|
378
377
|
} else if(is_packed_double) {
|
|
379
378
|
WriteTag(a,SerializationTag.kBeginDenseJSArray,ctx);
|
|
380
379
|
WriteVarint(a,length,ctx);
|
|
381
380
|
if(length !==0) {
|
|
382
|
-
for(
|
|
381
|
+
for(var i=0;i<o.length;++i) {
|
|
383
382
|
WriteTag(a,SerializationTag.kDouble,ctx);
|
|
384
383
|
WriteDouble(a,o[i],ctx);
|
|
385
384
|
}
|
|
@@ -387,15 +386,15 @@ const WriteJSArray = (a,o,ctx) => {
|
|
|
387
386
|
} else {
|
|
388
387
|
WriteTag(a,SerializationTag.kBeginDenseJSArray,ctx);
|
|
389
388
|
WriteVarint(a,length,ctx);
|
|
390
|
-
for(
|
|
389
|
+
for(var i=0;i<o.length;++i) {
|
|
391
390
|
WriteObject(a,o[i],ctx);
|
|
392
391
|
}
|
|
393
392
|
}
|
|
394
393
|
////-------must use this slow method
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
for(
|
|
398
|
-
|
|
394
|
+
var ks = Object.keys(o);
|
|
395
|
+
var properties_written = 0;
|
|
396
|
+
for(var i=o.length;i<ks.length;++i) {
|
|
397
|
+
var k = ks[i];
|
|
399
398
|
WriteObject(a,k,ctx);
|
|
400
399
|
WriteObject(a,o[k],ctx);
|
|
401
400
|
properties_written++;
|
|
@@ -408,7 +407,7 @@ const WriteJSArray = (a,o,ctx) => {
|
|
|
408
407
|
|
|
409
408
|
|
|
410
409
|
const WriteSymbol = (a,o,ctx)=>{
|
|
411
|
-
|
|
410
|
+
var phantom = CreatFakeCantBeSered("Symbol",o.description);
|
|
412
411
|
WriteJSObject(a,phantom,ctx);
|
|
413
412
|
}
|
|
414
413
|
|
|
@@ -417,7 +416,7 @@ const WriteNumber = (a,o,ctx)=>{
|
|
|
417
416
|
}
|
|
418
417
|
|
|
419
418
|
const WriteUnsupported = (a,o,ctx)=>{
|
|
420
|
-
|
|
419
|
+
var phantom = CreatFakeCantBeSered(idx,String(o));
|
|
421
420
|
WriteJSObject(a,phantom,ctx);
|
|
422
421
|
}
|
|
423
422
|
|
|
@@ -446,7 +445,7 @@ const WriteJSReceiver = (a,o,ctx) => {
|
|
|
446
445
|
if(_istis.is_ary(o)) {
|
|
447
446
|
WriteJSArray(a,o,ctx);
|
|
448
447
|
} else if(_istis.is_abvw(o)) {
|
|
449
|
-
|
|
448
|
+
var r = WriteJSArrayBufferView(a,o,ctx);
|
|
450
449
|
if(r!==_u) { } else { WriteJSObject(a,o,ctx); }
|
|
451
450
|
} else if(is_untf(o)) {
|
|
452
451
|
WriteOddball(a,o,ctx);
|
|
@@ -456,7 +455,7 @@ const WriteJSReceiver = (a,o,ctx) => {
|
|
|
456
455
|
if(W0 !== undefined) {
|
|
457
456
|
W0(a,o,ctx);
|
|
458
457
|
} else {
|
|
459
|
-
|
|
458
|
+
var [already_exists,idx] = ctx.idmap.FindOrInsert(o);
|
|
460
459
|
if (already_exists) {
|
|
461
460
|
WriteTag(a,SerializationTag.kObjectReference,ctx);
|
|
462
461
|
WriteVarint(a,idx,ctx);
|
|
@@ -479,15 +478,16 @@ const WriteJSReceiver = (a,o,ctx) => {
|
|
|
479
478
|
}
|
|
480
479
|
|
|
481
480
|
const encd = (o,kLatestVersion=15) => {
|
|
482
|
-
|
|
483
|
-
|
|
481
|
+
var a = [];
|
|
482
|
+
var ctx = _ctx.creat_wctx();
|
|
484
483
|
WriteHeader(a,kLatestVersion);
|
|
485
484
|
WriteJSReceiver(a,o,ctx);
|
|
486
|
-
|
|
485
|
+
var u8a = new Uint8Array(a);
|
|
487
486
|
return(u8a.buffer)
|
|
488
487
|
}
|
|
489
488
|
|
|
490
489
|
module.exports = {
|
|
490
|
+
////
|
|
491
491
|
WriteHeader,
|
|
492
492
|
WriteTag,
|
|
493
493
|
WriteVarint,
|